Skip to content

This repository contains free labs for setting up an entire workflow and DevOps environment from a real-world perspective in Azure

License

Notifications You must be signed in to change notification settings

thomast1906/DevOps-The-Hard-Way-Azure

 
 

Repository files navigation

DevOps the Hard Way on Azure

Welcome to the DevOps the Hard Way on Azure tutorial! 🚀

This comprehensive guide provides a real-world solution for implementing DevOps practices and technologies to deploy applications and cloud services/infrastructure on Microsoft Azure.

🌟 What's Inside?

  • Free labs
  • Detailed documentation
  • Step-by-step guides

All designed to help you set up a complete DevOps environment from a real-world perspective in Azure.

🎭 The DevOps Scenario

Imagine this: You've just joined a company stuck in the past. They're drowning in:

  • Bare metal servers
  • Manual deployments
  • Outdated IT practices

Your mission, should you choose to accept it:
Modernise everything. Make the organisation not just succeed, but lead the pack.

💡 The DevOps Solution

We're going to deploy the thomasthornton.cloud application, transforming it from a bare-metal application to a DevOps masterpiece.

🔍 Note: As a DevOps/Platform Engineer, your focus is on deployment, not application development. That's why we're using an existing app for this tutorial.

🛠️ Technology Stack

Get ready to utilise a range of cutting-edge technologies and platforms to establish your DevOps environment:

Technology Purpose
Azure Cloud hosting and services
GitHub Code repository
Python Application and automation
Terraform Infrastructure as Code
Docker Containerisation
Kubernetes (AKS) Container orchestration
GitHub Actions CI/CD
Checkov Automated testing

🧪 Labs

[ ] Check boxes have been added to each lab to help you keep track of your progress.

Prerequisites

Before you start, ensure you have the following prerequisites in place

  1. Create a Storage Account for Terraform State file
  2. Set up an Azure AD Group for AKS Admins

Main Sections

  1. Terraform - Create all the Azure cloud services needed to run the thomasthornton.cloud application.

  2. Docker - Containerise the thomasthornton.cloud application and store it in Azure Container Registry (ACR).

  3. Kubernetes - Deploy application to AKS and expose the thomasthornton.cloud application to the internet.

  4. Automated Testing Ensure code quality

  5. CICD - Automatically update AKS cluster with CICD using GitHub Actions

🎓 Learning Checkpoints

After each section, test your understanding:

- [ ] Can you explain why we're using a remote state for Terraform?
- [ ] What's the significance of containerising the app?
- [ ] How does AKS simplify Kubernetes management?
- [ ] Why is automated testing crucial in a DevOps pipeline?
- [ ] How does CI/CD improve the deployment process?

Conclusion

By following this tutorial, you'll not only deploy an example app on Azure but also gain valuable insights into modern DevOps practices and tools.

Let's embark on this journey to transform your organisation into a lean, agile, and competitive force in the digital landscape. Happy deploying! 🚀🔧

By completing this tutorial, you'll:

  • Deploy a real-world app on Azure
  • Master essential DevOps tools and practices
  • Transform your organisation's IT landscape

Are you ready to embark on this DevOps journey? Let's turn that monolithic infrastructure into a lean, mean, deploying machine! 💪🚀 📣

I value your feedback! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request.

About

This repository contains free labs for setting up an entire workflow and DevOps environment from a real-world perspective in Azure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HCL 77.7%
  • Shell 20.0%
  • Python 1.4%
  • Dockerfile 0.9%