#DevOps Posts

The Toptal Engineering Blog is a hub for in-depth development tutorials and new technology announcements created by professional software engineers in the Toptal network.
Dmitriy Kononov
What Is Kubernetes? A Guide to Containerization and Deployment

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

Continue reading →
Amin Shah Gilani
How to Build an Effective Initial Deployment Pipeline

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.

Continue reading →
Jonathan Bethune
Risk vs. Reward: A Guide to Understanding Software Containers

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.

Continue reading →
Luke Sapan
Ramping up Software Deployment - A Docker Swarm Tutorial

Docker itself has been around for years and is composed of many inter-operating pieces. One of them is Docker Swarm, which allows you to declare your applications as stacks of services, and let Docker handle the rest.

In this article, Toptal Freelance Software Engineer Luke Sapan explains how to use Docker Swarm to deploy your own self-managing stack, followed by a quick example.

Continue reading →
Lucas Mancini
Guide: Software Release Management For Small Teams

Small teams frequently have to compete with bigger, more structured organizations who are capable of allocating more resources to project management, and software release management in particular. This means that small teams, or even individual developers, need to properly organize and execute their release process in order to keep up.

In this article, Toptal Freelance Software Engineer Lucas Mancini focuses specifically on small startups, teams that don’t have, or can’t afford, DevOps support, or teams that don’t have a formal process defined for releasing new versions of their product. The author provides a suggested checklist method to manage releases, tailored to match his past experience working on different projects, together with some recommended best practices and guidelines.

Continue reading →
José Maldonado
The Art of War Applied To Software Development

The Art of War is an ancient military treatise, but despite its age, the text is still included in the syllabus at many military schools. Sun Tzu’s principles and teachings also have practical applications in politics, business, sports, and, believe it or not, software development. In fact, you might just be applying some of these principles in your daily routine, without even knowing.

In this post, Toptal Freelance Software Engineer Jose F. Maldonado explains why many of these ancient teachings still matter, and what you can do to make them work for you and your team.

Continue reading →
Radek Ostrowski
Getting Started with Docker: Simplifying DevOps

Docker, an open source tool, has changed the way we think about deploying applications to servers. By leveraging some amazing resource isolation features of the Linux kernel, Docker makes it possible to easily isolate server applications into containers, control resource allocation, and design simpler deployment pipelines. Moreover, Docker enables all of this without the additional overhead of full-fledged virtual machines.

Continue reading →
Mahmud Ridwan
Deploy Web Applications Automatically Using GitHub Webhooks

Deploying instances of a web application to one or more servers manually can often be a monotonous process, and take up a significant amount of your time. With little effort, it is possible to automate the process of deploying your web application with almost zero human intervention. This article outlines a simple approach to automating web application deployments using GitHub webhooks, buildpacks, and Procfiles.

Continue reading →
Ilya Sanosyan
Getting the Most Out of Your PHP Log Files: A Practical Guide

Log files may very well be one of the most underestimated and underutilized tools at a developer’s disposal. Beyond their value for debugging, with a bit of creativity and forethought, logs files can be leveraged to serve as a valuable source of usage information and analytics. In this article, In this article, Toptal engineer Ilya Sanosyan provides a practical guide to maximizing the value we get from our logs.

Continue reading →