Andrew has been coding for 40 years and has expertise in software development, product management, systems design and team leadership across a range of industries including science, technology, engineering, health, automotive, transport, mobile phone, and travel.
From 2009 - 2017 Andrew ran the Software development group at NIWA focussed on creating products and applications for climate, water, biodiversity and data science. I have run my own company and led a start-up mobile phone company software team through a high growth period. I have created and developed multiple agile cross functional teams, managed DevOps processes and modernised IT platforms including migration to cloud services.
Deploying applications in load balanced environments can be quite a challenge, especially when "zero downtime" is a requirement. Updates require repeatedly draining traffic from part of a cluster, upgrading software and bringing hosts back online. The goal, of course, is to do all of this in such a way that the user does not notice anything.
The complexity involved in this process makes doing all of this manually extremely error prone and therefore highly impractical. Automation tools like Ansible make this process easier by taking care of all the tedious, error-prone stuff for us.
This workshop will provide a "hands-on" experience in using Ansible to manage a load balanced web application. We will see how to use modules for provisioning hosts and installing software dependencies. We will explore how to use inventories, groups, delegation and handlers to configure and orchestrate all the components of a running application. We will then look at strategies for upgrading applications and demonstrate how to perform rolling upgrades with zero downtime.
Linux or Mac laptop (can run a terminal and use SSH) Basic knowledge of Ansible and main concepts (playbooks, tasks, templates, variables, inventories) Comfortable editing YAML files