Matt Bishop | 17 June 2015
Introducing AWS DevOps Engineering course
In the other blogs in this series, I’ve been talking about AWS Professional certification. The previous blog covered the Advanced Architecting course, which means there’s currently only one new course left to discuss – DevOps Engineering on AWS.
In days of yore – which in AWS terms means about six months ago – there was a course called “Advanced Operations on AWS”. It was four days long and covered a bit of everything: some auto-scaling, some continuous integration, some big data services, some application services, all sorts of things. Even after it was scaled back to three days, it still looked a bit scattershot, and overlapped with quite a few other courses. Meanwhile, at the last re:Invent conference, AWS announced a bunch of new services related to managing and deploying code, and released the beta of a new exam “AWS Certified DevOps Engineer Professional”.
It should therefore come as no surprise that the old Advanced Ops course is no more, and has been replaced by a new, shiny, and hyper-focused course called “DevOps Engineering on AWS.”
What is DevOps?
Taking a step back and a brief sidebar about DevOps for the uninitiated: it’s a software development method that attempts to encourage better communication and stronger integration between developers and system operators, with the goal of being able to deploy software more frequently and more reliably.
Many organisations are interested in DevOps because it:
- enables companies to get to market faster
- makes deployment more reliablecan improve and automate internal processes
- incorporates a more closely integrated team
AWS and DevOps
With this new, exciting and challenging method to adopt, AWS have created the new DevOps Engineering course and certification path, to offer some guidance and best practices for doing DevOps in the AWS cloud.
If you’re interested in the AWS DevOps Engineer Professional certification, you should be aware that this is not an exam-cram session. The course is designed and intended to be useful to developers and system operators, who are actually implementing a DevOps process. So, in order to pass the exam, you’ll also need to have some real-world experience, and do some background reading.
More about the course
The AWS DevOps Engineering course is a three-day course and builds on previous courses. As a pre-requisite, we strongly recommend attending System Operations on AWS, as well as having prior development experience with AWS. When it comes to lab work, this course cheerfully assumes you’re happiest when working at the command line. There is the occasional group pen-and-paper exercise, just to make absolutely sure you’re exchanging ideas with your fellow delegates, but every day also brings a couple of longer hands-on labs, in which you can dive into the technical details.
I’d like to tell you a bit more about the content, and go into more detail than we can squeeze into the official course outline. As with the previous blog, please understand that the below course details are not contractual. AWS frequently release new versions of courseware, each delivery is different, and potentially making this blog out of date after a period of time. Contact us if you need to be certain of the current course content. That said, at time of writing (June 2015) the course looks like this:
- Introducing DevOps. DevOps culture and practice, including a quick overview of the major concepts.
- Infrastructure as Code, part 1. How to implement DevOps – organisational and architectural considerations. Design and security for DevOps, using IAM permissions, roles and the Security Token Service.
- Infrastructure as Code, part 2. CloudFormation tips and tricks, including bootstrapping hooks, custom resources, creation and deletion policies, and updating/deleting/nesting stacks. The role of Configuration Management tools.
- Continuous Integration. Source code management (Git, CodeCommit, etc.). Using hooks to trigger builds; custom build actions. Continuous integration servers (Jenkins, Travis, etc.). CI workflows and sample architecture.
- Continuous Delivery. Patterns and anti-patterns; building on continuous integration. AWS tools and services for CI/CD. Implementing blue-green and red-black deployments on AWS, and other CD strategies.
- Deploying applications part 1. Introduction to CodeDeploy. Integrating CodeDeploy with CI servers; troubleshooting deployments. Introduction to Elastic Beanstalk; how Elastic Beanstalk fits with DevOps, comparison with CodeDeploy.
- Deploying applications part 2: Introduction to OpsWorks. Stacks, layers and instances. OpsWorks event processing; deploying applications to OpsWorks. Quick overview of Chef, including creating custom OpsWorks layers. How OpsWorks fits with DevOps. Docker and containerisation. Using Docker for DevOps; using the EC2 Container Service; integrating ECS with your CI system.
- Putting it all together: patterns for building AMIs. Application pipelines. SWF and CodePipeline.
- Performance tuning. Load and scale testing. Choosing EC2 instance types. Configuring ELB and autoscaling for performance.
- Administering your infrastructure. AWS CLI tips and tricks. Logging options; configuring logging with CloudFormation. Using AWS Lambda for monitoring.
There’s definitely no slack in this course; it’s three jam-packed days of real content. A lot of interest is drummed up about this course and the emerging DevOps area, and we’re really exciting to be offering this to our customers. Contact us if you’d like to know more.