All Projects → groovy-sky → devops-101

groovy-sky / devops-101

Licence: Apache-2.0 license
Intro to DevOps from scratch.

Projects that are alternatives of or similar to devops-101

Concourse
Concourse is a container-based continuous thing-doer written in Go.
Stars: ✭ 6,070 (+10549.12%)
Mutual labels:  pipelines, ci-cd
Werf
The CLI tool gluing Git, Docker, Helm, and Kubernetes with any CI system to implement CI/CD and Giterminism
Stars: ✭ 2,814 (+4836.84%)
Mutual labels:  ci-cd, iac
Transmogrifai
TransmogrifAI (pronounced trăns-mŏgˈrə-fī) is an AutoML library for building modular, reusable, strongly typed machine learning workflows on Apache Spark with minimal hand-tuning
Stars: ✭ 2,084 (+3556.14%)
Mutual labels:  pipelines
DevSecOps
Ultimate DevSecOps library
Stars: ✭ 4,450 (+7707.02%)
Mutual labels:  ci-cd
openshift-starter-guides
Getting Started with OpenShift for Developers Workshop
Stars: ✭ 35 (-38.6%)
Mutual labels:  pipelines
Sparktorch
Train and run Pytorch models on Apache Spark.
Stars: ✭ 195 (+242.11%)
Mutual labels:  pipelines
ggshield
Find and fix 360+ types of hardcoded secrets and 70+ types of infrastructure-as-code misconfigurations.
Stars: ✭ 1,272 (+2131.58%)
Mutual labels:  iac
Fluentmediator
🔀 FluentMediator is an unobtrusive library that allows developers to build custom pipelines for Commands, Queries and Events.
Stars: ✭ 128 (+124.56%)
Mutual labels:  pipelines
aziona-cli
azionaventures.github.io/aziona-cli/
Stars: ✭ 14 (-75.44%)
Mutual labels:  ci-cd
Magento-2-aws-cluster-terraform
Magento 2 AWS autoscaling cluster with Terraform and Packer or ImageBuilder. Adobe Commerce Cloud alternative. The best ecommerce infrastructure. Drive more sales online. Transparent billing. Developer-friendly. No hidden bottlenecks.
Stars: ✭ 107 (+87.72%)
Mutual labels:  iac
myprofile
Generate your resume easily from Github actions ✅ using discussion section 📃 🚀
Stars: ✭ 19 (-66.67%)
Mutual labels:  pipelines
Psi
Platform for Situated Intelligence
Stars: ✭ 249 (+336.84%)
Mutual labels:  pipelines
Hydro Serving
MLOps Platform
Stars: ✭ 213 (+273.68%)
Mutual labels:  pipelines
cb-spider
CB-Spider provides a unified view and single interface for multi-cloud management.
Stars: ✭ 26 (-54.39%)
Mutual labels:  iac
Logrange
High performance data aggregating storage
Stars: ✭ 181 (+217.54%)
Mutual labels:  pipelines
mleap
R Interface to MLeap
Stars: ✭ 24 (-57.89%)
Mutual labels:  pipelines
Airbyte
Airbyte is an open-source EL(T) platform that helps you replicate your data in your warehouses, lakes and databases.
Stars: ✭ 4,919 (+8529.82%)
Mutual labels:  pipelines
Mkdkr
Make + Docker + Shell = CI Pipeline
Stars: ✭ 225 (+294.74%)
Mutual labels:  pipelines
terraform-github-organization
A Terraform module to manage GitHub Organizations. https://github.com/
Stars: ✭ 53 (-7.02%)
Mutual labels:  iac
Nietzsche
Scrap quotes from Goodreads and schedule random tweets.
Stars: ✭ 44 (-22.81%)
Mutual labels:  iac

DevOps-101

Introduction

This repository is designed to help anyone with very little or no computing background learn the basics of DevOps. Course is self-paced and when you’re finished with it, you’ll know how to manage resouces in Azure Cloud, using Infrastructure as Code approach.

Learning path is just a collection of publicly available courses, grouped by a specific topic. Some section have homework part - you can use it for a self-evalution.

if you have any questions regarding this tutorial, please do not hesitate to contact me (using Reddit,Linkedin or by pushing pull request to this repository).

Prerequisites

Accounts:

Software:

Learning Path

DevOps

  1. The Origins of DevOps
  2. Guide to DevOps
  3. DevOps Model from Amazon

Linux

  1. Running Windows Subsystem for Linux
  2. Linux Fundametals

Linux Homework

  1. Deploy a Linux environmet (could be a Virtual Machine, Container Instance, Windows Subsystem for Linux etc.)
  2. Install some webserver and reconfigure it so it would run on a custom port (like 8088)
  3. Configure and apply a custom response page for the webserver (something like "Hello World!")

Git

  1. Introduction to Git
  2. Learn Git Branching
  3. Introduction to GitHub in Visual Studio Code
  4. Working with Git in Visual Studio Code

Git Homework

  1. Fork this repository
  2. Clone forked repository to your local environment (could be PC, Virtual Machine, WSL etc.)
  3. Locally create a new branch and modify README.md file in it (by appending it with "Hello World!" line)
  4. Commit and push all changes to remote Github repository (forked one, not the original)

Python

  1. What is Python?
  2. LearnPython.org interactive Python tutorial
  3. Perform mathematical operations on numeric data in Python
  4. [Optional][Advanced] An Introduction to Interactive Programming in Python

Containerisation

  1. What is virtualization?
  2. What are containers?
  3. What is Docker?
  4. Introduction to Docker containers
  5. Containers for Beginners

Containerisation Homework

  1. Create Dockerfile (base image can be any prefferable Linux image) in which a webserver is installed and started
  2. Build an image from the Dockerfile (for that you'll need installed Docker Engine) and run the container (don't forget to expose port for HTTP)
  3. Validate that you can access the webserver
  4. Publish your image to your Docker Hub Registry (for that you'll need account in Docker Registry)

Continuous Integration (CI)

  1. Continuous Integration Explained
  2. Create your first GitHub Action

Continuous Integration Homework

  1. Create a new Github repository.
  2. Create and configure Github Action, which builds Dockerfile and publishes it in Docker Hub Registry once every day.

Azure

Intro

  1. Introduction to Azure fundamentals
  2. Create an Azure account
  3. Manage services with the Azure portal

Access and Security

  1. Services and identity types of Azure AD
  2. Service Principals vs Managed Identities
  3. Create a service principal
  4. Manage secrets with Azure Key Vault
  5. Azure role-based access control
Access and Security Homework
  1. Register a new application in Azure Active Directory.
  2. Generate and store a secret for the application.
  3. Create a Key Vault and grant access to the application: on resouce level - Contributor role, on Vault level - policy which would allow to create and read secrets.
  4. Using non-GUI approach (Powershell, Azure CLI etc.): authenticate to Azure using application's credentials; create a new secret, read it, delete the whole Key Vault.

ARM Templates

  1. Deploy resources using ARM template
  2. Use Azure Key Vault to pass secure parameters
  3. Deploy ARM templates by using GitHub Actions
ARM Templates Homework
  1. Create a new Key Vault and add a secret with some value, which will be used as virtual machines password
  2. Deploy DNS Forwarder with your own parameters file, which for an user password would use Key Vault refference
  3. Check the result by logging in VM using a password from the Key Vault

Networks

  1. Fundamentals of computer networking
  2. Connect on-prem to Azure using VPN Gateway
  3. Connect on-prem to Azure using ExpressRoute
  4. Design an IP addressing schema
  5. Intro to VNet peering
  6. Hub and Spoke topology
  7. Design and implement private access to Azure Services
Networks Homework
  1. Create two VNets with different IP ranges (which doesn't overlap) and a storage account
  2. Expose storage account's fileshare privately (using private endpoint) on both networks
  3. Establish between networks VNet peering
  4. Create two virtual machines - one in the first network with public IP and another in the second network without public IP
  5. Connect remotely to publicly available machine and using it connect to the privately available VM
  6. From both VMs resolve privately exposed fileshare (using nslookup or any other prefferable way) and validate that in both cases IP is private

Serverless

  1. Choose the right integration and automation services in Azure
  2. Configure Azure Container Instances
  3. Publish Azure Functions by using Azure Functions Core Tools
  4. Create a Python function in Azure from the command line
  5. Monitor GitHub events by using a webhook with Azure Functions
  6. Create a function on Linux using a custom container
Serverless Homework
  1. Deploy function for showing your public IP and check how it works
  2. [Optional][Advanced] Configure the same function but as a custom Docker container, deploy that image to Azure Container Instance with public IP address (with exposed HTTP port) and validate the result

Azure DevOps

  1. Introduction to Azure DevOps
  2. Implement CI/CD with Azure DevOps
  3. Host your own build agent in Azure Pipelines

Azure DevOps Homework

  1. Create a new organization and project in Azure DevOps.
  2. Deploy and configure self-hosted build agent on Azure Container Instance.
  3. Use self-hosted agent for deploying a Python web app.

Ansible

  1. Ansible Introduction
  2. Ansible Review
  3. Run web server using Ansible
  4. Ansible User Guide
  5. Configure Ansible on an Azure VM

Ansible Homework

  1. Install Ansible with Azure modules
  2. Choose some ARM template from Azure Quickstart Templates and deploy it using azure_rm_deployment

Infrastructure as Code

What is Infrastructure as Code (IaC)?

Infrastructure as Code Homework

Configure and deploy your own IaC

Next steps

Congratulations! You have successfully completed this course! Now you can explore Azure by yourself. If you still wondering where to start, check following resources:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].