Alternatives to Pulumi logo

Alternatives to Pulumi

Terraform, Ansible, Serverless, Helm, and AWS CloudFormation are the most popular alternatives and competitors to Pulumi.
147
228
+ 1
14

What is Pulumi and what are its top alternatives?

Pulumi is a cloud development platform that makes creating cloud programs easy and productive. Skip the YAML and just write code. Pulumi is multi-language, multi-cloud and fully extensible in both its engine and ecosystem of packages.
Pulumi is a tool in the Infrastructure Build Tools category of a tech stack.
Pulumi is an open source tool with 12.4K GitHub stars and 676 GitHub forks. Here’s a link to Pulumi's open source repository on GitHub

Top Alternatives to Pulumi

  • Terraform
    Terraform

    With Terraform, you describe your complete infrastructure as code, even as it spans multiple service providers. Your servers may come from AWS, your DNS may come from CloudFlare, and your database may come from Heroku. Terraform will build all these resources across all these providers in parallel. ...

  • Ansible
    Ansible

    Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s goals are foremost those of simplicity and maximum ease of use. ...

  • Serverless
    Serverless

    Build applications comprised of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster. The Framework uses new event-driven compute services, like AWS Lambda, Google CloudFunctions, and more. ...

  • Helm
    Helm

    Helm is the best way to find, share, and use software built for Kubernetes.

  • AWS CloudFormation
    AWS CloudFormation

    You can use AWS CloudFormation’s sample templates or create your own templates to describe the AWS resources, and any associated dependencies or runtime parameters, required to run your application. You don’t need to figure out the order in which AWS services need to be provisioned or the subtleties of how to make those dependencies work. ...

  • Packer
    Packer

    Packer automates the creation of any type of machine image. It embraces modern configuration management by encouraging you to use automated scripts to install and configure the software within your Packer-made images. ...

  • AWS Cloud Development Kit
    AWS Cloud Development Kit

    It is an open source software development framework to model and provision your cloud application resources using familiar programming languages. It uses the familiarity and expressive power of programming languages for modeling your applications. It provides you with high-level components that preconfigure cloud resources with proven defaults, so you can build cloud applications without needing to be an expert. ...

  • Yocto
    Yocto

    It is an open source collaboration project that helps developers create custom Linux-based systems regardless of the hardware architecture. It provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices that can be used to create tailored Linux images for embedded and IOT devices, or anywhere a customized Linux OS is needed. ...

Pulumi alternatives & related posts

Terraform logo

Terraform

15.1K
10K
327
Describe your complete infrastructure as code and build resources across providers
15.1K
10K
+ 1
327
PROS OF TERRAFORM
  • 113
    Infrastructure as code
  • 73
    Declarative syntax
  • 44
    Planning
  • 27
    Simple
  • 24
    Parallelism
  • 7
    Well-documented
  • 7
    Cloud agnostic
  • 6
    It's like coding your infrastructure in simple English
  • 5
    Platform agnostic
  • 4
    Immutable infrastructure
  • 4
    Automates infrastructure deployments
  • 3
    Automation
  • 3
    Extendable
  • 3
    Portability
  • 2
    Lightweight
  • 2
    Scales to hundreds of hosts
CONS OF TERRAFORM
  • 1
    Doesn't have full support to GKE

related Terraform posts

Context: I wanted to create an end to end IoT data pipeline simulation in Google Cloud IoT Core and other GCP services. I never touched Terraform meaningfully until working on this project, and it's one of the best explorations in my development career. The documentation and syntax is incredibly human-readable and friendly. I'm used to building infrastructure through the google apis via Python , but I'm so glad past Sung did not make that decision. I was tempted to use Google Cloud Deployment Manager, but the templates were a bit convoluted by first impression. I'm glad past Sung did not make this decision either.

Solution: Leveraging Google Cloud Build Google Cloud Run Google Cloud Bigtable Google BigQuery Google Cloud Storage Google Compute Engine along with some other fun tools, I can deploy over 40 GCP resources using Terraform!

Check Out My Architecture: CLICK ME

Check out the GitHub repo attached

See more
Praveen Mooli
Engineering Manager at Taylor and Francis · | 17 upvotes · 2.3M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more
Ansible logo

Ansible

15.5K
12.5K
1.3K
Radically simple configuration-management, application deployment, task-execution, and multi-node orchestration engine
15.5K
12.5K
+ 1
1.3K
PROS OF ANSIBLE
  • 278
    Agentless
  • 205
    Great configuration
  • 195
    Simple
  • 173
    Powerful
  • 151
    Easy to learn
  • 66
    Flexible
  • 54
    Doesn't get in the way of getting s--- done
  • 34
    Makes sense
  • 29
    Super efficient and flexible
  • 27
    Powerful
  • 11
    Dynamic Inventory
  • 8
    Backed by Red Hat
  • 7
    Works with AWS
  • 6
    Cloud Oriented
  • 6
    Easy to maintain
  • 4
    Because SSH
  • 4
    Multi language
  • 4
    Easy
  • 4
    Simple
  • 4
    Procedural or declarative, or both
  • 4
    Simple and powerful
  • 3
    Consistency
  • 3
    Vagrant provisioner
  • 2
    Fast as hell
  • 2
    Masterless
  • 2
    Well-documented
  • 2
    Merge hash to get final configuration similar to hiera
  • 2
    Debugging is simple
  • 1
    Work on windows, but difficult to manage
  • 1
    Certified Content
CONS OF ANSIBLE
  • 7
    Dangerous
  • 5
    Hard to install
  • 3
    Doesn't Run on Windows
  • 3
    Bloated
  • 3
    Backward compatibility
  • 2
    No immutable infrastructure

related Ansible posts

Tymoteusz Paul
Devops guy at X20X Development LTD · | 23 upvotes · 5.1M views

Often enough I have to explain my way of going about setting up a CI/CD pipeline with multiple deployment platforms. Since I am a bit tired of yapping the same every single time, I've decided to write it up and share with the world this way, and send people to read it instead ;). I will explain it on "live-example" of how the Rome got built, basing that current methodology exists only of readme.md and wishes of good luck (as it usually is ;)).

It always starts with an app, whatever it may be and reading the readmes available while Vagrant and VirtualBox is installing and updating. Following that is the first hurdle to go over - convert all the instruction/scripts into Ansible playbook(s), and only stopping when doing a clear vagrant up or vagrant reload we will have a fully working environment. As our Vagrant environment is now functional, it's time to break it! This is the moment to look for how things can be done better (too rigid/too lose versioning? Sloppy environment setup?) and replace them with the right way to do stuff, one that won't bite us in the backside. This is the point, and the best opportunity, to upcycle the existing way of doing dev environment to produce a proper, production-grade product.

I should probably digress here for a moment and explain why. I firmly believe that the way you deploy production is the same way you should deploy develop, shy of few debugging-friendly setting. This way you avoid the discrepancy between how production work vs how development works, which almost always causes major pains in the back of the neck, and with use of proper tools should mean no more work for the developers. That's why we start with Vagrant as developer boxes should be as easy as vagrant up, but the meat of our product lies in Ansible which will do meat of the work and can be applied to almost anything: AWS, bare metal, docker, LXC, in open net, behind vpn - you name it.

We must also give proper consideration to monitoring and logging hoovering at this point. My generic answer here is to grab Elasticsearch, Kibana, and Logstash. While for different use cases there may be better solutions, this one is well battle-tested, performs reasonably and is very easy to scale both vertically (within some limits) and horizontally. Logstash rules are easy to write and are well supported in maintenance through Ansible, which as I've mentioned earlier, are at the very core of things, and creating triggers/reports and alerts based on Elastic and Kibana is generally a breeze, including some quite complex aggregations.

If we are happy with the state of the Ansible it's time to move on and put all those roles and playbooks to work. Namely, we need something to manage our CI/CD pipelines. For me, the choice is obvious: TeamCity. It's modern, robust and unlike most of the light-weight alternatives, it's transparent. What I mean by that is that it doesn't tell you how to do things, doesn't limit your ways to deploy, or test, or package for that matter. Instead, it provides a developer-friendly and rich playground for your pipelines. You can do most the same with Jenkins, but it has a quite dated look and feel to it, while also missing some key functionality that must be brought in via plugins (like quality REST API which comes built-in with TeamCity). It also comes with all the common-handy plugins like Slack or Apache Maven integration.

The exact flow between CI and CD varies too greatly from one application to another to describe, so I will outline a few rules that guide me in it: 1. Make build steps as small as possible. This way when something breaks, we know exactly where, without needing to dig and root around. 2. All security credentials besides development environment must be sources from individual Vault instances. Keys to those containers should exist only on the CI/CD box and accessible by a few people (the less the better). This is pretty self-explanatory, as anything besides dev may contain sensitive data and, at times, be public-facing. Because of that appropriate security must be present. TeamCity shines in this department with excellent secrets-management. 3. Every part of the build chain shall consume and produce artifacts. If it creates nothing, it likely shouldn't be its own build. This way if any issue shows up with any environment or version, all developer has to do it is grab appropriate artifacts to reproduce the issue locally. 4. Deployment builds should be directly tied to specific Git branches/tags. This enables much easier tracking of what caused an issue, including automated identifying and tagging the author (nothing like automated regression testing!).

Speaking of deployments, I generally try to keep it simple but also with a close eye on the wallet. Because of that, I am more than happy with AWS or another cloud provider, but also constantly peeking at the loads and do we get the value of what we are paying for. Often enough the pattern of use is not constantly erratic, but rather has a firm baseline which could be migrated away from the cloud and into bare metal boxes. That is another part where this approach strongly triumphs over the common Docker and CircleCI setup, where you are very much tied in to use cloud providers and getting out is expensive. Here to embrace bare-metal hosting all you need is a help of some container-based self-hosting software, my personal preference is with Proxmox and LXC. Following that all you must write are ansible scripts to manage hardware of Proxmox, similar way as you do for Amazon EC2 (ansible supports both greatly) and you are good to go. One does not exclude another, quite the opposite, as they can live in great synergy and cut your costs dramatically (the heavier your base load, the bigger the savings) while providing production-grade resiliency.

See more
Sebastian Gębski

Heroku was a decent choice to start a business, but at some point our platform was too big, too complex & too heterogenic, so Heroku started to be a constraint, not a benefit. First, we've started containerizing our apps with Docker to eliminate "works in my machine" syndrome & uniformize the environment setup. The first orchestration was composed with Docker Compose , but at some point it made sense to move it to Kubernetes. Fortunately, we've made a very good technical decision when starting our work with containers - all the container configuration & provisions HAD (since the beginning) to be done in code (Infrastructure as Code) - we've used Terraform & Ansible for that (correspondingly). This general trend of containerisation was accompanied by another, parallel & equally big project: migrating environments from Heroku to AWS: using Amazon EC2 , Amazon EKS, Amazon S3 & Amazon RDS.

See more
Serverless logo

Serverless

1.4K
1.1K
23
The most widely-adopted toolkit for building serverless applications
1.4K
1.1K
+ 1
23
PROS OF SERVERLESS
  • 12
    API integration
  • 7
    Supports cloud functions for Google, Azure, and IBM
  • 2
    Lower cost
  • 1
    Openwhisk
  • 1
    Auto scale
CONS OF SERVERLESS
    Be the first to leave a con

    related Serverless posts

    Praveen Mooli
    Engineering Manager at Taylor and Francis · | 17 upvotes · 2.3M views

    We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

    To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

    To build #Webapps we decided to use Angular 2 with RxJS

    #Devops - GitHub , Travis CI , Terraform , Docker , Serverless

    See more
    Nitzan Shapira

    At Epsagon, we use hundreds of AWS Lambda functions, most of them are written in Python, and the Serverless Framework to pack and deploy them. One of the issues we've encountered is the difficulty to package external libraries into the Lambda environment using the Serverless Framework. This limitation is probably by design since the external code your Lambda needs can be usually included with a package manager.

    In order to overcome this issue, we've developed a tool, which we also published as open-source (see link below), which automatically packs these libraries using a simple npm package and a YAML configuration file. Support for Node.js, Go, and Java will be available soon.

    The GitHub respoitory: https://github.com/epsagon/serverless-package-external

    See more
    Helm logo

    Helm

    1.1K
    727
    13
    The Kubernetes Package Manager
    1.1K
    727
    + 1
    13
    PROS OF HELM
    • 6
      Infrastructure as code
    • 4
      Open source
    • 2
      Easy setup
    • 1
      Testa­bil­i­ty and re­pro­ducibil­i­ty
    CONS OF HELM
      Be the first to leave a con

      related Helm posts

      Emanuel Evans
      Senior Architect at Rainforest QA · | 17 upvotes · 919.7K views

      We recently moved our main applications from Heroku to Kubernetes . The 3 main driving factors behind the switch were scalability (database size limits), security (the inability to set up PostgreSQL instances in private networks), and costs (GCP is cheaper for raw computing resources).

      We prefer using managed services, so we are using Google Kubernetes Engine with Google Cloud SQL for PostgreSQL for our PostgreSQL databases and Google Cloud Memorystore for Redis . For our CI/CD pipeline, we are using CircleCI and Google Cloud Build to deploy applications managed with Helm . The new infrastructure is managed with Terraform .

      Read the blog post to go more in depth.

      See more
      Ido Shamun
      at The Elegant Monkeys · | 7 upvotes · 304.8K views

      Kubernetes powers our #backend services as it is very easy in terms of #devops (the managed version). We deploy everything using @helm charts as it provides us to manage deployments the same way we manage our code on GitHub . On every commit a CircleCI job is triggered to run the tests, build Docker images and deploy them to the registry. Finally on every master commit CircleCI also deploys the relevant service using Helm chart to our Kubernetes cluster

      See more
      AWS CloudFormation logo

      AWS CloudFormation

      1.6K
      1.2K
      88
      Create and manage a collection of related AWS resources
      1.6K
      1.2K
      + 1
      88
      PROS OF AWS CLOUDFORMATION
      • 43
        Automates infrastructure deployments
      • 21
        Declarative infrastructure and deployment
      • 13
        No more clicking around
      • 3
        Any Operative System you want
      • 3
        Infrastructure as code
      • 3
        Atomic
      • 1
        CDK makes it truly infrastructure-as-code
      • 1
        Automates Infrastructure Deployment
      • 0
        K8s
      CONS OF AWS CLOUDFORMATION
      • 4
        Brittle
      • 2
        No RBAC and policies in templates

      related AWS CloudFormation posts

      Joseph Kunzler
      DevOps Engineer at Tillable · | 9 upvotes · 152.1K views

      We use Terraform because we needed a way to automate the process of building and deploying feature branches. We wanted to hide the complexity such that when a dev creates a PR, it triggers a build and deployment without the dev having to worry about any of the 'plumbing' going on behind the scenes. Terraform allows us to automate the process of provisioning DNS records, Amazon S3 buckets, Amazon EC2 instances and AWS Elastic Load Balancing (ELB)'s. It also makes it easy to tear it all down when finished. We also like that it supports multiple clouds, which is why we chose to use it over AWS CloudFormation.

      See more

      I use Terraform because it hits the level of abstraction pocket of being high-level and flexible, and is agnostic to cloud platforms. Creating complex infrastructure components for a solution with a UI console is tedious to repeat. Using low-level APIs are usually specific to cloud platforms, and you still have to build your own tooling for deploying, state management, and destroying infrastructure.

      However, Terraform is usually slower to implement new services compared to cloud-specific APIs. It's worth the trade-off though, especially if you're multi-cloud. I heard someone say, "We want to preference a cloud, not lock in to one." Terraform builds on that claim.

      Terraform Google Cloud Deployment Manager AWS CloudFormation

      See more
      Packer logo

      Packer

      540
      502
      42
      Create identical machine images for multiple platforms from a single source configuration
      540
      502
      + 1
      42
      PROS OF PACKER
      • 27
        Cross platform builds
      • 9
        Vm creation automation
      • 4
        Bake in security
      • 1
        Good documentation
      • 1
        Easy to use
      CONS OF PACKER
        Be the first to leave a con

        related Packer posts

        John Kodumal

        LaunchDarkly is almost a five year old company, and our methodology for deploying was state of the art... for 2014. We recently undertook a project to modernize the way we #deploy our software, moving from Ansible-based deploy scripts that executed on our local machines, to using Spinnaker (along with Terraform and Packer) as the basis of our deployment system. We've been using Armory's enterprise Spinnaker offering to make this project a reality.

        See more
        AWS Cloud Development Kit logo

        AWS Cloud Development Kit

        111
        57
        0
        A framework for defining cloud infrastructure in code
        111
        57
        + 1
        0
        PROS OF AWS CLOUD DEVELOPMENT KIT
          Be the first to leave a pro
          CONS OF AWS CLOUD DEVELOPMENT KIT
            Be the first to leave a con

            related AWS Cloud Development Kit posts

            Yocto logo

            Yocto

            62
            53
            0
            An open Source embedded Linux build system
            62
            53
            + 1
            0
            PROS OF YOCTO
              Be the first to leave a pro
              CONS OF YOCTO
                Be the first to leave a con

                related Yocto posts