DevOps is a buzzword that is thrown around far too much these days. Few people actually know what it is, and all these mad terms and phrases can seem so off-putting. Today we’re going to talk about what it means to be an AWS certified DevOps Engineer. After we all understand what DevOps is, you’ll know why you want it!
DevOps is a mash up of Development, and Operations. Development being the code that is written which is what makes up the applications we all use. And Operations being the act of keeping everything online and available for use.
As recently as 10 years ago (which can be a lifetime in IT), these two disciplines were thought of completely separately. Operations technicians, often called System Administrators, or SysAdmins, wanted nothing to do with code. If there was a bug in the code, it would be thrown back to the dark back room where we would keep the developers. Developers are a strange bunch, but if you keep them topped up with coffee and Haribo, they’re usually placid enough.
Similarly, if the servers went down, or there was some other kind of hosting related nightmare, the SysAdmins would be the ones on the front-line, with the developers keeping well out of the way.
DevOps, as the name would suggest, is a melding of these two worlds. A team working with DevOps in mind is more focused on the common goal of delivering features AND reliability to our customers.
What Is DevOps?
There is no one thing that you can do, and then say you’re doing DevOps. DevOps is all about reducing friction between teams, and ultimately making software more agile. And a great way to achieve both of those objectives is to do everything in code.
Everything Should Be Code
If you have never heard of Infrastructure as Code, you can check out our previous post about it here. Defining your networks and servers as code means they’re auditable, repeatable, and can be version controlled. Your infrastructure code can live right alongside the code for your actual application, in a repository in your preferred source control platform.
Patches, fixes and everything should be done with code, and managed centrally. No more logging into servers to tweak a setting quickly. This can be a real culture shift for teams, we know. But the benefits from centrally managing everything are amazing, and will improve the reliability of your service.
Continuous Integration / Continual Delivery (CI/CD)
Another huge part of what makes a system qualify as DevOps is the ability to release features and fixes when you want to. CI/CD means there are tools around your source code which can get your changes into the hands of your users more quickly. These tools can incorporate testing to make sure nothing has been broken, security testing, and different levels of approval.
This is all in stark contrast to the way we used to release software. We would save up a load of changes, test them all manually, and then take a big deep breath when we thought we were ready to release it into the world. Companies embracing DevOps ways of working are now releasing software multiple times per day!
We touched on CI/CD pipelines when we talked about Macs in the AWS cloud.
It shouldn’t all be about the technology. A good DevOps engineer will understand the business implications of releasing new software. As a team, you can agree what kinds of business processes are appropriate. For example, do you have a senior developer who should approve all code before management ever see it? Is a brief outage acceptable when deployments happen? What does a roll back look like for your company? Who should be the one to make that call if a deployment ever does go wrong?
We could use all the fancy toys we like to make the most super-spiffy automated software release pipelines in the land. But toys useless unless they support the business’ objectives.
AWS Certified DevOps Engineer
So what does it mean to be an AWS certified DevOps Engineer? Well a lot like all the other AWS certifications, it means the bearer understands how the subject fits in with building reliable, performant, and cost-effective systems. It all relates back to the AWS Well Architected Framework – which is basically the AWS bible! So for example, an AWS certified DevOps Engineer wouldn’t deploy a CI/CD pipeline for you that would triple your costs. Nor would they advise on a software release schedule which wouldn’t result in an amazing end-user experience, and seamless developer workflow.
The AWS DevOps certification is at the “Professional” tier, which is the highest of the three AWS certification tiers. It is one of the toughest AWS certifications to pass, because you must understand a lot about the lifecycle of software in order to achieve it.
So if you are still holding your breath when developers or operations staff release the latest version of your app, maybe you could seek the help of an AWS Certified DevOps Engineer Professional? What a coincidence – ricky holds just that certification! Well that panned out nicely didn’t it. 🙂