While studying DevOps methodologies, we encounter many technologies, and it is often challenging to stay updated. Comprehensive research and concrete examples are essential.
Ideally, a sample would encompass everything at once and be functionally interesting. Although assembling everything in one project is not feasible, it is possible to cover as many technologies as possible.
We have prepared such a project to consolidate theoretical knowledge in the field of DevOps. At first glance, it appears to be a simple web application, but it encompasses the maximum number of technologies for this project.
*The course is based on live classes at TENTEK DevOps Bootcamp. Visit our profile for more info.
About the instructor
Ernest Ramirez is a dedicated DevOps Engineer with a comprehensive background in DevOps and software development Over the past two years, he has also been sharing his expertise as an instructor at TENTEK DevOps School, teaching Docker, Kubernetes and various hands-on projects.
Project Overview
This educational project is designed for the practical application of knowledge in cloud technology and DevOps, as well as the deployment of web applications using best practices. The stack aims to cover the maximum number of technologies while also carrying a functional and meaningful load.
The project adopts a declarative approach to infrastructure building and demonstrates the deployment automation process for the entire stack. All components of the project and their interrelationships are examined in detail to understand how the application and its operational services function in the actual cloud environment.
The core of this project is a specially designed web application deployed on AWS infrastructure. The application features a microservice architecture, interacts with various types of databases, resides in a Kubernetes (K8s) cluster, and is optimized for high loads.
The project includes CI/CD tools and instructions, as well as operational services for managing configuration, logging, and monitoring. The infrastructure is described declaratively, with a strong emphasis on this aspect.
Everything is packaged into manifests for deployment automation, and the installation process is illustrated in the course.
Scope Statement
Let's define the scope covered by the documentation provided in the course. It includes a description of the project's entire stack and details for all its components at the functionality level. It also outlines the process of infrastructure deployment and step-by-step application installation.
This course does not address the application development process. Fundamental theory is not included.
Objectives
Understand the stack and all its elements.
Deploy infrastructure on AWS using Terraform/Terraform Cloud.
Deploy the app to AWS EKS cluster using GitHub Actions and ArgoCD.
Test the application and its operational services.
Make changes to the codebase and trigger CI/CD.
Set up logging, monitoring and alerting with DataDog and PagerDuty.
Prerequisites
Essential skills and theoretical knowledge in the following areas are required:
AWS at the cloud practitioner level.
Infrastructure as Code (Terraform).
Kubernetes and Helm charts.
SQL and NoSQL database theory.
Linux Operating System.
Tools: Git, GitHub Actions, ArgoCD, DataDog, PagerDuty.