DevOps is a new practice emerging from the combination of practices in both Development and Systems Operations. It is a software development and delivery practice that spans both practices and is concerned with fast delivery and deployment of new software by taking an agile approach to systems management. Systems as well as software should be test drive by design, and processed should be automated as much as possible.
The DevOps Practitioner course is designed to give delegates from both the developer and sysops practices experience of a selection of the tools that have emerged as part of the DevOps tool chain. We focus on the idea of deploying large-scale complex systems in the cloud. In five days the course covers the basics of virtualisation and the cloud, continuous integration and continuous deployment systems, containerisation, configuration management, monitoring and maintenance and finally ends with a workshop based on a given scenario giving delegates hands on experience of setting up the full end-to-end DevOps tool chain.
Day one starts with a brief introduction to what DevOps is and how the tools we use can help in its realisation. We then look at cloud based systems and the virtualisation we will be using throughout the course.
Day two is concerned with CI/CD, starting with looking at briefly looking at git repository management, alongside build managers and Jenkins for build automation.
Day three then looks at containerisation, including what containers are and why we want to use them. We focus on using Docker for this section, going through installing and using Docker to create containers for the projects we have been building previously.
Day four then touches on orchestration tools. We use Puppet to provision new servers in the cloud and link together Jenkins, Docker and Puppet to get a single project building and deploying without any need for human interference.
Finally, we look at monitoring tools, specifically Nagios, and how we can use this to keep an eye on the health of our system and servers.
This course is aimed at people both on the developer and operations side of the DevOps movement.
- Introduction to DevOps - the pillars of the movement
- Devops Tools
- Introduction to cloud computing and AWS
- Introduction to build managers with maven
- Building projects based on archetypes
- Creating our own archetypes
- Introduction to CI/CD
- Using Jenkins to build projects
- Linking Jenkins to git repositories
- Scaling Jenkins and using slave systems
- What is containerisation
- Introduction to Docker
- Using Jenkins to set off Docker containerisation
- Deploying Docker containers
- Orchestration and Automation
- Introduction to Puppet
- Using Puppet to launch servers
- Combining Jenkins, Docker and Puppet
- Monitoring and optimisation
- Introduction to Nagios
- Installing and using Nagios
- Registering new servers with Nagios
- Case Study
- Some experience as either a developer, operations or DevOps
- Comfortable with basic terminal commands in Linux - delegates must have knowledge to the level of the Linux Fundamentals course
- Understand the concepts of source control
- Experience using git
- Experience of using the windows command line
- Programming experience