Continuous deployment is the practice of automatically deploying new code to production. Most continuous deployment systems validate that the code to be deployed with tests, and then build and deploy if everything looks good. However, there’s a better way.
In this article, Toptal Freelance DevOps Engineer Antoine Reversat builds an event-driven continuous deployment pipeline that builds first and then runs tests on our final deployment artifact before deploying. This makes test results more reliable, and the CD pipeline easily extendable.

When your app’s next iteration is ready to deploy, you have two choices: either stop the entire application and deploy the new version manually every time or build an automated zero downtime CI/CD deployment pipeline once.
In this article, Toptal Freelance DevOps Engineer Gaurav Kohli demonstrates the latter using the Jenkins-powered continuous deployment pipeline of a three-tier web application built in Node.js, deployed on AWS Cloud, and using Terraform as an infrastructure orchestrator.

The Elastic Stack is constantly releasing new and amazing features, and often delivers two new releases every month. However, even though the Elastic website maintains clear and detailed documentation, every upgrade involves a series of tedious steps. That is why one engineer decided to automate the whole process.
In this article, Toptal Freelance Linux Developer Renato Araujo walks us through a series of Ansible Playbooks he developed to auto-upgrade his Elastic Stack installation.

Writing an application is only part of the story. In order for it to be of value, it needs deploying somewhere it can scale; it has to run with high availability, have backups, and so on. Deployment and infrastructure management isn’t a simple process. And Terraform does nothing to hide the complexity. However, it does make your infrastructure declarative and reproducible, like your code.
In this article, Toptal Freelance DevOps Engineer Radosław Szalski teaches us what Terraform is, how its components work, and how to configure an entire AWS Cloud solution in minutes using its configuration language.

As we start transitioning to microservice-based architectures, a question arises: What should I choose to make my service stable as well as easy to manage and deploy?
The short answer is: Use Docker!
In this article, Toptal Freelance DevOps Engineer Dmitriy Kononov gives you the long answer by introducing you to containers, explaining Kubernetes, and teaching you how to containerize and deploy an app to a Kubernetes cluster using CircleCI

Do you run deployment scripts from your development machine, or find yourself referring to deployments by the day of the week they were deployed, instead of using version numbers? It’s time for a better solution.
In this article, Freelance Ruby Engineer and automation enthusiast Amin Shah Gilani walks you through his perfect deployment pipeline to use at the beginning of your project. With this CI/CD configuration, every push is tested, the master branch is deployed to staging servers with a fresh database dump from the production server, and versioned tags are deployed to production with backups and migrations running automatically.

Software delivery has come a long way. And, somewhere between the transition from physical media to software containers, we have changed the way we try to manage them.
In this article, Toptal Freelance Software Engineer Jonathan Bethune explores how software containers have motivated us to treat servers as more dispensable, and the risks and rewards involved.