Who Am I ? - DevOps or Cloud DevOps ?

Amit Maheshwari
4 min readAug 20, 2022

--

Cloud migration is an important part of core strategy for most of the organisations jumping on Digital Business Transformation bandwagon. For some industries like Financial firms & Banks, scale of these cloud migration programs are huge, migrating hundreds of application from on-prim to multi-cloud.

These migrations involves hybrid strategy of rehosting, replatforming or re-architecting, depending on factors like organisation’s cloud maturity & readiness, individual App design considerations, cost and time constraints laid out by business.

For such a scale & varied complexities, it is important that Cloud Infrastructure team defines reference architectures or blue prints which application teams can readily use to best fit their application in cloud. It requires Infrastructure & resources to be created as IaC (Infrastructure as Code), fully automated from github repo to deployment in cloud, and clearly defined Security Guardrails enforced automatically at various levels in cloud.

Part of the challenge to deliver these programs successfully is to build Cloud DevOps capability by hiring and training internal people on relevant tools and technologies. Existing DevOps team who owns the application CI-CD pipeline might not have the skills and experience to build such cloud Infrastructure. What is needed is the expertise with Cloud DevOps capability. I have seen people involved in hiring and trainings dealing with this dichotomy, majority not understanding it for a while and ending up spending time & energy interviewing wrong candidates.

I would also like to differentiate Cloud DevOps from CloudOps because it’s still a ‘ developer’ kind of job, writing code to automate the cloud Infrastructure whereas Ops is more of managing operational aspects in prod, be it monitoring, alerting, L1/L2 type support, tuning and optimisation, maintaining resiliency, failover, performance etc. It’s sort of SRE role for Cloud Infra. Some of you may differ on this and would be happy to see in comments how, in your organisation, you separate out Cloud Ops activity from Cloud DevOps.

Lets talk about the differences now…

DevOps — or call it Application DevOps, helps us streamline the process of getting software from source control to deployment in production through automation. DevOps practice is now quite mature in many organisations and probably we all know what a DevOps pipeline is and plethora of tooling available for each of stages in CI-CD pipeline. So I will not go into much detail but here is a typical CI-CD pipeline for application deployment looks like -

DevSecOps Pipeline

Cloud DevOps — is about building Cloud Infrastructure as code (IaC), be it creating resources, applying security policies, building vm images etc. Below are subset of tasks that are needed to be build as part of a large cloud migration program -

Build,Configure & Provision Cloud Resources — using Terraform, Pulumi & Ansible.

Fully automated Deployment of Cloud Resources — using Github Actions and Workflows

Enforce Security Policies & Compliance Guardrails — using Terraform Sentinel, Prisma Cloud Defenders, Chef InSpec

Authentication & Authorization — create Service Accounts, Certificates for OAuth, Key Management for Encryption/Decryption & Secret Management

Artefact Repo Management — management of binaries and artefacts needed for cloud deployment

Image Bakery — for creating machine images for multiple platform as per organisations guidelines using Packer Pipeline

Cloud Infra Testing — using Chef Kitchen Terraform, TerraTest

Scripting to Glue stuff — Python, Go lang , Ruby Scripting (used in Pulumi, Chef InSpec etc)

There is no single continuous CI/CD pipeline for Cloud DevOps because its group of different IaC pipelines working together to deliver an automated Cloud Deployment.

Terraform Sentinel pipeline for Security Policy checks
Chef InSpec Pipeline for Security & Compliance Scans
Image Bakery using Packer Pipeline

For any Cloud Migration project, you would need both Application DevOps and Cloud DevOps capabilities. DevOps is needed because there would be many applications which you would like to Re-Architect for application to fully leverage cloud native features and hence you would need to build a DevOps pipeline to deploy application in Cloud.

Given the pace of change of tools and technology and hype around these skillset, it is harder for one to chase the moving target. It makes life easier for both types of people by sticking to one area and focus on niche tooling and packages and set their career goals accordingly. Of course, some may decide to hop over from one skill to another to meet their personal goals but its a lot to take on:-)

Pick your poison :-)

--

--

Amit Maheshwari

Don't follow my views | Seeking contrarian ideas | Equity Investor | Passionate Technologist