Cloud Ready Hackathon (CLRHK)

 

Course 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.

Course Objectives

Learning Outcomes

This Hackathon encompasses the modern software development toolbox – from source control, across testing tools to continuous integration and deployment. Each engineer working with software needs to have experience with these to be successful in the modern, cloud-native world.Every attendee will build the following technical skills:

  • Fluency with the basic set of bash commands necessary to work in a Linux/Unix based environment
  • Experience with Git commands to be able to successfully participate in development teams, both from the command line and chosen IDE
  • Familiarity with software testing process, both the writing and executing tests
  • Experience with Docker (creating and running custom images, pushing images to private docker repository)
  • Experience with Kubernetes (running a cluster, deploying, running, and upgrading a microservice app)
  • Working knowledge of chosen CI/CD automation tool (either Jenkins or GitHub actions)

Attendees will also explore the concepts of test-driven development, infrastructure as code, microservice architecture and service mesh.

Cloud Ready Hackathon builds on the concept of learning-by-doing in a highly interactive environment. Solving the real world problem without being told directly what to do will enable attendees to apply acquired skills immediately on their job

Course Content

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

Prices & Delivery methods

Online Training

Duration 5 days

Classroom Training

Duration 5 days

Currently there are no training dates scheduled for this course.