Why Standards in DevOps Deployments is Important
For most, prior exposure to on-prem engineering and operations supports a practical deployment reality that we consider normal in so far as infrastructure is concerned. The jack of all trades and master of non mentally meant we had to be aware of a staggeringly wide set of tasks, processes and issues in supporting development, pre-prod and prod environments. For this reason, we as infrastructure engineers can be forgiven for thinking that the chaos of custom solutions often implemented under critical constraints should be implementable in the cloud. After all, we got it to work on-prem we can get it to work in the cloud, right? As cloud technology has matured especially over the last 5 years, this 'lift and shift' mentality whilst understandable could not be further from the truth.
One of the biggest pain points for digital businesses migrating to the cloud is deployment failures making the DevOps world of CI/CD and standardization via infrastructure as code its proverbial knight in shining armour. This has taken many forms but standardization can be seen in cloud-agnostic terms as follows:
- code no longer deployed locally but in shared repositories that are version controlled, extendable and compatible with a CI/CD pipeline, e.g. Github.
- cloud platform access via automating the access stage of deployment with platform access through abstracted managed libraries ensuring consistency of managed platform access.
- code repositories auditable and feature-rich around intra-branch connectivity and peer-reviewing.
- automation and pipeline integration able use of static tools covering code vulnerability and known security issues.
- code testing via unit and integration test suites ingested into the CI/CD build stages.
- a rollback feature available in event of deployment failure to the start (recommended).
- deployment code for the above stored in templates thus is reusable with ease making code promotion less likely than a fresh deployment.
- the division between build and release stages is structured into a CI/CD pipeline making repointing fresh code deploys where appropriate a streamlined and much safer process via CI/CD pipeline.
- deployment event logging ongoing through a CI/CD deployment making detection of errors a more streamlined process.
I think we can all agree these points make a good argument for (cloud) deployment automation. Also noted is cloud vendor agreement on this point with the addition of CDK (Cloud Development Kits) for infrastructure as code aka IaC. So, if my manager asked me why should the company invest in such standards, my answer would include the following points:
- deployments that are automated with CI/CD pipelines and approved templates are less likely to suffer errors when compared to their manual deployment counterparts.
- deployment rollbacks can be automated.
- deployments that use cloud-native features like CDKs, deployment templates and secure access objects in the cloud are more definable, thus more controllable, auditable and reusable.
- structured and documented deployments ensure DevOps engineers tailor their approach to a management sanctioned process that elevates user-driven derivation that can be centred around one engineer. Such tribal knowledge can walk out the door with the engineer to a competitor exposing the process to failure risk.
- experienced DevOps engineers can offer more value in the design and not the deployment of pipelines allowing more junior engineers to gain valuable experience in cloud-savvy DevOps practices and pipeline designs.
- major cloud providers are focusing on DevOps orientated product development that for the cloud-savvy company can mean shorter concept to market timelines, safer deployments and a more cost-effective configuration of deployments across all cloud platform environments.
So bearing all this in mind, applying consistency to a standard around deployments that is reusable will influence the complete SDLC process and with buy-in from Development, Operations and Management alike can scale with modern cloud provider offerings, which is as near to infinite as it gets.
Stay tuned for more on DevOps in this blog along with articles on other areas of interest in the Writing and Infrastructure arenas. To not miss out on any updates on my availability, tips on related areas or anything of interest to all, sign up for one of my newsletters in the footer of any page on Maolte. I look forward to us becoming pen pals!