OpenHack – DevOps (OHDO)

 

Course Overview

Please note attendees work together in teams of 5 as a minimum and the pricing advertised is per team of 5.

Course Content

This OpenHack enables attendees to use DevOps practices to achieve zero downtime deployment for a micro-service based application running in an Azure App Service. The OpenHack simulates a real-world scenario where developers from an insurance company have to “keep the lights on” while evolving their containerized application – collecting relevant usage data and minimizing downtime.

Technologies: GitHub, Azure DevOps or Jenkins (team choice), Azure App Service, Log Analytics, Application Insights, Azure Monitor, Azure SQL Database, Azure Container Registry, Azure Container Instances

Technical Scenarios

  • "Keeping the lights on”- implementing a production pipeline that alleviates the problem of high downtime when making new development changes to your application
  • Testing – Unit, Integration and Load testing to reduce the risk of “breaking production” and ensuring that new code will integrate properly with current code
  • Phased rollout – gradual code change implementation and ability to “rollback” to add a layer of security to production

Who should attend

  • App Developers
  • Enterprises and ISVs looking to deploy containerized based workloads in the cloud
  • Customers looking forward to use containers for dev-ops
  • Customers looking forward to microservices architecture for their existing or new solutions
  • Customers looking to deepen their overall DevOps maturity

Prerequisites

Knowledge Prerequisites Be prepared to roll up your sleeves, learn, and participate in an interactive team environment. Development Environment Configuration To avoid any delays with downloading or installing tooling, have the following ready to go ahead of the OpenHack:

Language-Specific Prerequisites The sample application that is used throughout the event is composed from numerous Apis, each coded in a different language which offers coverage for teams with proficiency in a number of different programming languages. Teams may opt to interact with the content using one or more of the following programming languages

  • C#
  • Java
  • Node
  • Go

Links & Resources To be successful and get the most out of this OpenHack, participants should have existing knowledge of the benefits of adopting DevOps practices as well as Azure App Service and have good conceptual knowledge of DevOps. We recommend you read the following:

Because you will be working in teams, a good overview of pair programming is useful. We recommend you read the following:

Course Objectives

Sound DevOps fundamental upskilling and developing Zero-downtime deployment strategies which translates to reduced friction in production deployments, ensuring that deployments of new features can occur more frequently and safely without requiring system downtime. During the “hacking” attendees will focus on:

  • 1. Building a CI/CD pipeline from scratch that accommodates basic testing and deployment.
  • 2. Building out and improving the pipeline to implement monitoring, integration testing, and phased rollout.

By the end of the OpenHack, attendees will have built out a technical solution that is a complete development workflow using modern compute resources

Outline: OpenHack – DevOps (OHDO)

Challenges Challenge 1: Establish your plan In order to have a successful DevOps strategy, your team needs to have a plan. In this challenge, teams will learn about the basics of DevOps and foster an understanding of a team development model.

Learning objectives:

  • Adopt a DevOps “mindset” in the team.
  • The participants are asked to get to know themselves better, organize the team and define how and where they will handle work items.

Challenge 2: Setting up the Development Workflow In this challenge, teams will select tools to meet the planning objectives as it relates to continuous integration Learning objectives:

  • The participants will learn the fundamentals of Planning and Continuous Integration using the tooling of their choice.
  • They will be asked to demonstrate that they organized their work items and are able to associate work items with code changes.
  • By utilizing Branch Protection teams can enforce code quality policies for incoming changes ensuring that each service has a code owner
  • responsible for reviewing Pull requests before those changes are merged into the main code base.

Challenge 3: Implement Continuous Testing In this challenge, teams will improve the reliability of their code by introducing testing Learning objectives:

  • Participants will learn to integrate unit tests into a build pipeline to provide rapid feedback and augment thorough code reviews designed to only accept changes into master when all tests pass.
  • They will be asked to run unit tests automatically and integrate them in the pipeline they are building.

Challenge 4: Implement Continuous Deployment (CD) In this challenge, teams will focus on release management automation Learning objectives:

  • The participants will learn the fundamentals of Release Management by automatically deploying an updated version of their application to an Azure App Service.
  • They will be asked to demonstrate that they can perform an update to the application, link a work item with the associated code changes and reference the deployment of this feature with its corresponding work items.
  • They will also be asked to demonstrate that the respective container images are only updated when changes are successfully merged into the master branch

Challenge 5: Implement a Blue/Green deployment strategy In this challenge, teams will learn how to perform a zero down time deployment using a Blue/Green deployment strategy Learning objectives:

  • Building on the previous challenges, participants will learn how to implement a blue/green deployment strategy.
  • They will be asked to articulate the blue/green logic and demonstrate its implementation for one of the APIs of the provided application, that they are able roll out code changes without causing application downtime.

Challenge 6: Implement a monitoring solution with alerting In this challenge, teams will learn about configuring a monitoring and alerting solution Learning objectives:

  • The participants will learn how to close the DevOps loop by adding monitoring and alerting.
  • They will be asked to demonstrate a view aggregating the monitoring of the application and infrastructure. They also will have to implement alerting in the case of application performance degradation. Alerts should also generate a work item in the team work tracking system.

Challenge 7: Integrating quality and security gates In this challenge, teams will learn how to enhance their testing strategy through integration with external tools focused on improving the quality of the software that is released into production. Learning objectives:

  • The participants will be required to improve the automated testing capabilities of their pipelines to incorporate more sophisticated quality and security gates that integrate with external tools.
  • They will also be required to demonstrate one or more of the following enhancements to their pipeline: Dependency scanning, Code coverage, Static analysis, Variant analysis, Integration tests, Load tests and Manual Approval prior to deployment.

Challenge 8: Implement phased rollout with rollback In this challenge, teams will learn how to enhance their Blue/Green Deployment strategy by performing a gradual release of software into production with a rollback strategy Learning objectives:

  • The participants will revise their deployment strategy and learn how to perform a blue/green deployment with gradual rollout and how to implement a “rollback” mechanism.
  • They will be asked to add several phases to their existing pipeline to support a gradual rollout/rollback of a new version of the application. They will be asked to implement gates to validate the behavior of the application and implement a rollback mechanism.

Prices & Delivery methods

Online Training

Duration
3 days

Price
  • Online Training: CAD 13,500
  • Online Training: US$ 10,000
Classroom Training

Duration
3 days

Price
  • Canada: CAD 13,500

Schedule

Currently there are no training dates scheduled for this course.