Duration:
40.00 hours
32.5 CPD hours
Overview:
The Cloud Ready Hackathon prepares the engineers of all flavours for cloud-native development and deployment. It's focus is to give attendees a hands-on experience of working with Linux, Git, Docker, Kubernetes, popular DevOps tools such as GitHub Actions, Jenkins and Terraform. Attendees will work in teams completing a set of gated challenges that will take them on a journey to becoming the stars of today’s modern, cloud-native application world.
Description:
Challenges
The challenges are connected – each of them builds on top of the previous one. The attendees will be given a repo containing the source code of the demo application consisting of several microservices developed using node.js. This
application will be used throughout the Bootcamp, and each challenge will present a piece of the puzzle towards the story of continuous delivery into the Kubernetes environment. Challenges are briefly described below:
Challenge 1: Hello Linux
- A lap around Linux basics (most common bash commands, grep, vi/vim, writing scripts)
Challenge 2: To get or Git the code
- Introduction to Git concept of source control. Tasks include cloning repos, committing, pushing, branching, etc.
Challenge 3: Test, test, test… and then code
- Implement Unit tests for the existing code with Jest.
- Introducing Test-Driven Development. Implement new functionalities in a test-driven manner (first test, then code).
- Create a code-coverage report using SonarQube.
Challenge 4: Pack it and send it to the dock
- Introduction to containers with Docker.
- Creating Dockerfile, building images and pushing to Docker registry.
Challenge 5: Let the orchestration begin!
- Introduction to Kubernetes.
- Creating the first cluster using Google Kubernetes Engine. Deploying first container images to Kubernetes cluster.
Challenge 6: Let’s automate the packaging
- Introduction to CI/CD tools. Creating the continuous integration pipeline with unit testing, branch protection, code-quality gates, and creating and pushing container images.
- The attendee teams will be able to choose between Jenkins and GitHub Actions – whichever works for them
Challenge 7: Putting it all together
- Creating deployment pipeline for Continuous Delivery using Jenkins or GitHub Actions. Zero-downtime deployment using Helm.
Challenge 8: Coding the infrastructure
- Introduction to Terraform. Creating the infrastructure-as-code scripts for deploying the K8s and other services on GCP or Azure.
Challenge 9: What’s up with my application?
- Implementing monitoring solution leveraging Prometheus and Graphana. Deploying a “dirty” application and monitoring the status of the cluster.
- Implementing resource limitations for containers.
- Implementing alerting.
Challenge 10: Now, let’s mesh it up!
- Introduction of Istio as service mesh platform for Kubernetes. Implementing advanced microservices scenarios (advanced routing, retries with exponential backoff, circuit breaker, health checks, mutual TLS, …).
- Canary deployment