Devs and cloud infrastructure management: Weighing up the pros and cons
In this guest post, Rob Greenwood, technical director at Manchester-based cloud consultancy, Steamhaus, sets out why developers might not be best-placed to run your company’s cloud.
Just because they can, doesn’t mean they should. Sure, your devs have the skill set to a run cloud infrastructure, but is it a great idea?
The short answer is… well, no. Too often, however, it’s what we see following an initial cloud build.
In fairness, I’m sure many devs are more than happy to take on this responsibility initially – that’s an understandable instinct. Whether you’re a start-up or a SME migrating to an environment like Amazon Web Services (AWS) for the first time, once the infrastructure is ready, there is an urge to get your hands on it and take control.
And, for a short period of time, this might be fine. But, as companies grow, you start to see why this cannot work in the long term. There are several reasons why this is the case.
1) It creates distractions
Firstly, you do not want your infrastructure to be the main area of focus for devs. And, by asking them to run the infrastructure in addition to other tasks, you will be pulling them away from priority projects.
If you are looking to improve the performance of any business, you will want your devs to concentrate on coding the features that will improve your product – and differentiate your brand.
As far as devs are concerned, this desire for improvement should trump more general support tasks, such as monitoring request response times, which can be handled by an in-house or outsourced support team.
2) You’re introducing risk
It also does not make sense to split your devs’ attention, if one task is likely to take precedent over another. There is the chance your infrastructure will become an afterthought and it gets somewhat neglected. This will increase the danger of downtime at some point in the future, which will hurt the business.
This risk of distraction really intensifies when companies grow quickly. We often see this happening when start-ups are the recipient of investor funding, for example. As the companies scale up their ambitions, resources will become stretched – as it can take time to recruit a team with the right skills to take the business forward. Once again, this can make it harder for a dev to give their attention to running of the infrastructure.
When rapid growth happens organically, after winning a big enterprise scale client for instance, the challenges this creates can be even worse. These contracts usually come with a host of specific SLAs, covering such things as guaranteed uptime – and the need to focus on the infrastructure will add a major strain to the devs’ workload.
3) You’ll quickly reach tipping point
When companies grow like this, it is not fair to keep asking devs to be accountable for the infrastructure, especially when 24/7 monitoring and incident response is required. They are never going to be able to meet those demands without the help of a dedicated support team.
This is the point when organisations have little option but to either invest in a dedicated in-house team or outsource its support requirements to a managed service provider. Given the expense involved in recruiting, training and maintaining a skilled team of engineers, businesses usually opt to outsource at this point.
4) You’ll definitely need support
At whatever point you realise there is a need for outsourced support, it’s important to consider the three main options available. First, you could enlist the help of a generalist managed service provider, that offers cloud services as an option. Second, you could recruit a specialist cloud consultancy to offer an emergency ‘break-fix’ service. Third, you could hire a specialist cloud consultancy to provide proactive support.
It is always preferable to go with a specialist over a generalist. But, given dedicated cloud infrastructure support is a relatively new field and specialists are not so plentiful, some will be tempted choose the latter.
The downside is this will not guarantee the requisite expertise – and when it comes to the deployment of cloud-native technologies capable of increasing speed to market and improving operational efficiency, you will want a partner that thoroughly understands the landscape.
You are also going to want that partner to be proactive too. The problem with ‘break-fix’ ticketing systems, is you’re only ever going to be plastering over the cracks; you are not going to enhance operational performance.
5) Dedication is what you need
Ideally, your outsourced support partner should imitate the behaviour of an in-house team. They would not sit idly by if improvements could be made – they would take action. This is vital as the tech supporting cloud infrastructures is developing so quickly. New tools are constantly emerging that allow us to roll out improvements faster and create more efficient ways of working.
In this respect, a proactive managed service provider can actually deliver savings that release budget for other projects. They will also take the time to understand how your company is growing, and create a roadmap of enhancements that will enable the company to achieve its ambitions.
However, if you do not have a dedicated support team in place, and are asking devs to cover this support role in addition to their other work, you are unlikely to realise those benefits. A far better approach is to let the devs concentrate on the areas where they bring most value, and work with a specialist who will not just offer service level agreement-backed support but will also improve the performance of your infrastructure.