The challenges of DevOps performance are many, among them is the constant learning and the search for the best solutions that benefit the client’s strategy.
Knowing the types of deployment — and finding the one that best fits an application — is an important part of developing and deploying a website, for example.
Deployment has a direct impact on building a solution that runs well and stably. The same can be said for the transition, which should be smooth. This, incidentally, is what any developer wants.
The same can be said about an environment that has no bugs or even inconsistencies since initial deployment. Is it possible?
Check out, in this post, the types of deployment that are most used, in addition to their advantages and disadvantages.
Know the main types of deployment
The number of solutions used as application implementation strategies is increasing. The developer looking for a successful career must be aware of the particularities of some of them. We’ll talk about the main types of deployments below: Rolling, Blue-Green, and Canary.
Rolling is the simplest type of deployment you can implement when developing websites. Therefore, it can be understood as a standard that is suitable for almost all orchestration services.
Deploy Rolling consists of uploading services to a new version and thus replacing the old version of the service. In other words, it’s a process that will happen little by little — it’s not a drastic change.
Therefore, the old version is only deactivated when the new one is 100% functional. It’s what programmers might call turning the switch.
Advantages and Disadvantages of Rolling Deployment
The advantage of this type is that the migration from the old to the new is less traumatizing and less noticeable — it is also more cautious because the change happens gradually.
The downside to Rolling, however, is that until the new version is up and running, both must be managed. This increases the level of complexity of the environment and its administration. So, there might be some problems.
The Blue-Green deployment works like this: there are two identical environments in the infrastructure. In the case of Rolling, there are even moments where there will be two packages of the same service in different versions, but in Blue Green, there is a mirror, or rather, a mirror of your environment — and in front of these environments there is a load balancer that performs directing traffic to the environment you want.
In this scenario, you can test the new environment while the old one still works. Once all tests are correct and as expected, the load balancer can be transitioned to this new environment. As a result, change is virtually instantaneous. Downtime is zero, which favors project management.
Also Read: The Q Family Adventures
Advantages and Disadvantages of Blue-Green Deployment
The main advantage of Blue Green is that it is possible to upload the new version, carry out tests and, only when it is in perfect condition, change direction. Therefore, migration is very smooth — as it is carried out very cautiously.
The downside is that, in order to have both environments the same, it is necessary to use twice as many infrastructure resources, that is, twice as much infrastructure is needed as the company currently has – which generates new costs.
Canary is an application that consists of putting the new version into production but releasing the experiment of that version only to small groups. In other words, access is not given to everyone at the same time.
In Canary, the old environment remains active simultaneously with the new environment. Therefore, a portion of the users can be freed up to access the new environment and see how it behaves with real users. This way it is possible to identify if there are going to be problems daily.
It is common that when the developer is testing a new application internally, everything works and works. With Canary, it is possible to know the ideal moment to make a new version available to everyone. This, by the way, is a good project management strategy.
Advantages and disadvantages of deploying Canary
One advantage is that with the Canary strategy, it is possible to perform isolated tests and follow the transition. This way you can know how the application is reacting, if the user experience is good, if there was a failure and, if it did, it is possible to quickly correct it.
Another benefit is the possibility of gradually releasing the use of the new version, which is only fully available when everything is running 100%.
It is a very conservative type of deployment and very useful because it makes it difficult for errors to appear and reduces the risk of unforeseen events.
The disadvantage of deploying Canary is that, as the release is done gradually, the time to finalize the new version is very long. Also, depending on the size of the infrastructure, the cost can be high.
Know which deployment to use in each situation
Deciding which type of deployment should be used in each situation depends a lot on the criticality level of the environment.
If there is a very large environment, it is dangerous to make a change all at once — as is the case with Rolling, which does not allow the application’s behavior to be evaluated with real users.
In a large environment, however, it may be appropriate to use the Blue-Green deployment. The fact that he has both environments makes it possible to find an ideal balance between the two. With this, the release is done only when there is a certainty that everything is working perfectly.
When the need arises in smaller, less critical environments, Canary with fewer users makes the transition take longer. In any case, there is less risk of having problems — after all, there are already people testing the deployment before the migration happens.
Deploying is simple to understand, but complex to put into practice. The choice is directly linked to the strategic analysis that must be made. There is no formula. The answer depends on evaluating the environment and observing which of these strategies fits best at that moment.
Furthermore, when choosing a type of deployment, it does not mean that another cannot be used later. There isn’t a better one between Rolling, Blue-Green, and Canary. What exists is the application that best adapts to what the developer wants to accomplish.