Externalize, or not your DevOps?

...

When we try to determine all the advantages and disadvantages of an IT strategy, we may be confronted with different aspects of the chosen solution, today it is about DevOps...


So you are the one who decides the IT strategy in the company. Have you ever asked yourself questions like, should you externalize your DevOps team, or should you keep it inside? Is the DevOps externalization secure and safe? What is it you eventually gain by externalizing your DevOps team?


Exactly these questions we will discuss here.


I bet you all have an idea about what DevOps is. So, just let’s skip the introductory explanation of what DevOps is, how it works and why you should implement it. What I do want to discuss here is, how we can save money, keep secure and deploy faster our applications.


So in order to make things clearer we will examine two scenarios that depict the probable state of things and question marks that arise along.


First scenario. You decide to have a DevOps team internally.


Out of all the available options, this alternative is the most frequent and will usually be the evident approach. This is the most expensive, longest to deploy, but the most transparent way to do DevOps in regards to security issues and flow control. The root difference of this approach is that, you would have to hire people internally, most of the times train them and deploy the needed infrastructure on your own, but you do get full hands on the infrastructure, which eventually does not mean you would have a more secure system.


Second scenario. You decide to save money and externalize your DevOps team.


The second option is usually not that popular, way less expensive, faster to deploy, but requires a higher doze of your attention when it comes to security. The key point here is that, you don’t need to hire people and thus you are not obliged to maintain a constant salary for your team. When it comes to infrastructure, an external company will have a all-set infrastructure ready to absorb your projects in a matter of a few days. What you do need to be careful about though is, where your data is stored and if the infrastructure is secure enough.


After running through the two possible ways, we shall examine the three key factors that will be the decision makers: Security, Speed and Money.


I would like to start with the security. Today security is too precious to not accord the proper attention to it. So let’s compare the security cons and pros of the two models. We mistakenly think that by having an internal DevOps we have the control over the security and thus we are safer. We tend to forget though that, having the deployment infrastructure on-premise does not always mean having a fully secure system. So, before externalizing your DevOps you need to be sure whether the outsourcing company has the good security specialists and procedures in its arsenal. In fact, this is not rare to find out that the security measures of the externalized infrastructure are more complex and safer than those we deploy on-premise or control internally. Having a secure system and being conform with the legislation will impose you to hire a security specialist, which eventually leads to one of the corner stones of all businesses – money. Good outsourcing companies will use the cloud providers in order to deploy and secure production environment. So eventually you externalize your team, but not the product itself, because most of the times, whether it’s internally, or externally, you will deploy your applications on the cloud.


Now let’s speak about speed. Speed and agility are the essential parts of a software application, especially for smaller companies where changes tend to take place daily. We will compare the speed of the infrastructure roll-out and the speed of the continuous integration and deployment. The infrastructure roll-out is the deployment of your initial base that would be ready to run and maintain your development, building, testing, monitoring and scaling procedures as well as different environments needed to run all the phases of your application. In that case externalized DevOps is the obvious winner, most of the times outsourcing companies will have the needed infrastructure ready to deploy your applications. The continuous integration and deployment speed on the contrary can differ. This is important to be sure that the outsourcing company has a well built dashboard with all the necessary controls over the application life-cycle, as well as a reactive customer support in order to minimize the interaction time between the operation’s decision and execution.


And lastly, we will discuss money. If you ever had to build a team you will quickly realize how expensive and tedious this process can be. First of all, it is the time needed to gather the right professionals, which will usually take you no less than months. Secondly, the wages and the taxes that come along can become 5 zeros annualy. You don’t need to be a book keeper to realize that maintaining your own team is expensive and slow to gather.


So, externalize or not?


Both options are viable and each company will choose the most appropriate solution for themselves. So, in case you need fast deployment, you do not want to deal with HR and you prefer saving money, externalizing DevOps would be your most suited choice, but you have to take closer attention to the security issues and automation controls. In case you need to fully control your staff and your own security, if you are ready to pay times more and wait weeks longer, second option would be your way to go.