Understanding an App Deployment
If your company produces an app, you are likely familiar with the term “deployment”. A “deployment” is a working instance of your app, running on a computer, and ready for interaction. An app can be deployed in many ways, for many reasons, and every deployment consists of several parts. This post will explain the common types of deployments, and how deployments can be made easier and more reliable.
First, let’s discuss common types of deployments. The most common type is known as the “production”, or “prod” deployment. This is the deployment that your customers use. When you log onto Gmail or Facebook, you are interacting with the production deployment of gmail or Facebook. When prod goes down, getting it back up becomes first priority. This is the kind of thing that gets the CTO out of bed at 3am. Production going down is bad for the company, bad for business, and bad for your reputation. Bottom line: be careful with prod.
Other kinds of deployments are used for the testing and development of your app: for experimenting with new features, testing the app before releasing an update, etc. These kinds of deployments are unsurprisingly known as “test” and “development” deployments. While there is usually only one production deployment at any given time, there can be multiple test and development deployments running at once — allowing multiple people or teams to experiment with different features without stepping on each other’s toes.
Finally, the simplest type of deployment is known as a “local” deployment. Local deployments consist of the app running on a single developer’s computer. This lets the developer write code and see the results in real-time, as the local deployment is updated every time the developer updates the code. Local deployments are used while writing new features or debugging existing ones, as they allow very fast feedback on what code changes are doing.
Managing deployments can be tricky — complex apps have many moving parts, and it can be difficult to make changes while keeping things running smoothly. Fortunately, there are many options available to make deploying apps easier: tools like Amazon OpsWorks, Heroku, and CodeShip are designed to automate the deployment process, so that all the steps necessary to deploy your app happen reliably and automatically whenever you update the code. Other tools, like Travis CI and Jenkins CI, are designed to automatically test your code before it deploys, so that any errors are caught before the deployment goes live.
Deployments are how apps reach customers, so understanding the different kinds and how they can be managed effectively is key to managing a successful app.
Comments are closed