Alternatives to Pulumi logo

Alternatives to Pulumi

Terraform, Ansible, Serverless, Helm, and AWS CloudFormation are the most popular alternatives and competitors to Pulumi.
98
178
+ 1
8

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 9.4K GitHub stars and 516 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. ...

  • GeoEngineer

    GeoEngineer

    GeoEngineer uses Terraform to plan and execute changes, so the DSL to describe resources is similar to Terraform's. GeoEngineer's DSL also provides programming and object oriented features like inheritance, abstraction, branching and looping. ...

  • 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. ...

Pulumi alternatives & related posts

Terraform logo

Terraform

9.8K
7.4K
300
Describe your complete infrastructure as code and build resources across providers
9.8K
7.4K
+ 1
300
PROS OF TERRAFORM
  • 104
    Infrastructure as code
  • 71
    Declarative syntax
  • 43
    Planning
  • 26
    Simple
  • 23
    Parallelism
  • 6
    Cloud agnostic
  • 5
    It's like coding your infrastructure in simple English
  • 4
    Well-documented
  • 3
    Platform agnostic
  • 3
    Automates infrastructure deployments
  • 3
    Immutable infrastructure
  • 2
    Portability
  • 2
    Scales to hundreds of hosts
  • 2
    Automation
  • 2
    Extendable
  • 1
    Lightweight
  • 0
    Hhtt
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
Emanuel Evans
Senior Architect at Rainforest QA · | 15 upvotes · 608K 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
Ansible logo

Ansible

13.1K
10.4K
1.3K
Radically simple configuration-management, application deployment, task-execution, and multi-node orchestration engine
13.1K
10.4K
+ 1
1.3K
PROS OF ANSIBLE
  • 275
    Agentless
  • 204
    Great configuration
  • 193
    Simple
  • 173
    Powerful
  • 150
    Easy to learn
  • 66
    Flexible
  • 54
    Doesn't get in the way of getting s--- done
  • 33
    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
    Vagrant provisioner
  • 3
    Consistency
  • 2
    Debugging is simple
  • 2
    Well-documented
  • 2
    Merge hash to get final configuration similar to hiera
  • 2
    Fast as hell
  • 2
    Masterless
  • 1
    Work on windows, but difficult to manage
CONS OF ANSIBLE
  • 5
    Hard to install
  • 4
    Dangerous
  • 3
    Bloated
  • 3
    Backward compatibility
  • 2
    Doesn't Run on Windows
  • 2
    No immutable infrastructure

related Ansible posts

Tymoteusz Paul
Devops guy at X20X Development LTD · | 22 upvotes · 4.4M 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

1K
944
23
The most widely-adopted toolkit for building serverless applications
1K
944
+ 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

    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
    Praveen Mooli
    Engineering Manager at Taylor and Francis · | 14 upvotes · 1.8M 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
    Helm logo

    Helm

    880
    595
    10
    The Kubernetes Package Manager
    880
    595
    + 1
    10
    PROS OF HELM
    • 4
      Infrastructure as code
    • 3
      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 · | 15 upvotes · 608K 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
      Robert Zuber

      Our backend consists of two major pools of machines. One pool hosts the systems that run our site, manage jobs, and send notifications. These services are deployed within Docker containers orchestrated in Kubernetes. Due to Kubernetes’ ecosystem and toolchain, it was an obvious choice for our fairly statically-defined processes: the rate of change of job types or how many we may need in our internal stack is relatively low.

      The other pool of machines is for running our users’ jobs. Because we cannot dynamically predict demand, what types of jobs our users need to have run, nor the resources required for each of those jobs, we found that Nomad excelled over Kubernetes in this area.

      We’re also using Helm to make it easier to deploy new services into Kubernetes. We create a chart (i.e. package) for each service. This lets us easily roll back new software and gives us an audit trail of what was installed or upgraded.

      See more
      AWS CloudFormation logo

      AWS CloudFormation

      1.3K
      1.1K
      87
      Create and manage a collection of related AWS resources
      1.3K
      1.1K
      + 1
      87
      PROS OF AWS CLOUDFORMATION
      • 42
        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
        Automates Infrastructure Deployment
      • 1
        CDK makes it truly infrastructure-as-code
      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 · 131.5K 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

      506
      450
      41
      Create identical machine images for multiple platforms from a single source configuration
      506
      450
      + 1
      41
      PROS OF PACKER
      • 26
        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
        GeoEngineer logo

        GeoEngineer

        52
        63
        0
        Ruby DSL and DSL (geo) to codify then plan and execute changes to cloud resources, by Coinbase
        52
        63
        + 1
        0
        PROS OF GEOENGINEER
          Be the first to leave a pro
          CONS OF GEOENGINEER
            Be the first to leave a con

            related GeoEngineer posts

            AWS Cloud Development Kit logo

            AWS Cloud Development Kit

            48
            33
            0
            A framework for defining cloud infrastructure in code
            48
            33
            + 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