Skip to content

starkmatt/academy

 
 

Repository files navigation

DevOps Academy

This non-profit repository intention is to help the community to learn the DevOps methodology and culture throughout a series of classes and hands-on laboratories and become ready to start working as Automation/Cloud/DevOps Engineer.

Feel free to contribute with content (PR), help peer reviewing code or just going through the exercises!

If you want to make part of the team behind this, get in touch on help@devopsacademy.com.au.

Table of Content

How it Works

To complete the DevOps Academy, you will have to go through 8 classes with hands-on exercises. For each exercise, you will have to submit your code via pull requests to this repository as per instructions. The last two labs are complete projects based on current industry needs.

You will also be required to peer review at least 5 pull requests from other students to finish this course.

Requirements

Please find below the requirements to complete this course:

  • Slack
  • Github Account
  • AWS Account
  • AWS cli
  • Terraform
  • Visual Studio Code
  • Docker

If you need help in any of these topics, a tutorial is available on the pre-class:

Content

  • Version Control (GIT)
    • What is it?
    • Benefits
    • Basic commands
    • How to clone/fork/pr this repository
  • Agile methodology
    • Frameworks
    • Scrum
    • Kanban
  • Infrastructure as Code
    • Concepts
    • Terraform introduction
  • Containers
    • Concepts
    • Docker images
    • Docker Compose
    • 3Musketeers
  • CI/CD
    • What is CI
    • What is CD
    • Pipelines
  • Amazon Web Services (AWS)
    • Cloud concepts
    • Identity and Access Management (IAM) / CloudTrail / CloudWatch
    • VPC / Subnet / route table / network acl / security group
    • EC2 / auto-scaling group / load-balancer
    • Simple Storage Service (S3)
    • RDS / DynamoDB
    • Cloudfront / WAF
    • Route53 / Certificate Manager (ACM)
    • Elastic Container Service (ECS) / Elastic Container Registry (ECR)
    • Lambda

The content can be accessed through each specific README link below.

Classes

  • Class 01
    • DevOps Academy Introduction
    • Introduction to AWS
    • Git
  • Class 02
    • Agile Methodologies
    • AWS Network Deep Dive
  • Class 03
    • AWS EC2
      • Load Balancing
      • Auto Scaling Group
    • AWS Route 53
    • Container - Docker
      • Repositories
      • Images
      • Dockerfile
      • AWS ECS
  • Class 04
    • Project #1 Kick-off
    • AWS - IAM
    • AWS - CLI
    • AWS - S3
    • AWS - RDS
    • IaC - Terraform
    • MakeFile
  • Class 05
    • CI/CD Concepts
    • Pipelines
    • 3 Musketeers
  • Class 06
    • Project #1 Delivery
    • Project #2 Kick-off
  • Class 07
    • Serverless
  • Class 08
    • Project #2 Delivery

Exercises

For each class exercise:

  1. Clone this repository
git clone <repo-url>
  1. Switch to master branch and pull it

  2. Create a new branch from master with branch name containing exercise number and your name, e.g <github-username>/<exercise-number>

git checkout -b caiocezart/c01-e01
  1. create a folder with your <github-username> (e.g. denstorti, kikobr82, ...)
cd <repo-name>

mkdir classes/01class/exercises/c01-e01/<my-username>
  1. Add your work on a folder like classes/<class name>/exercises/<exercise-number>/<github-username>/.

Exercise submissions can be textual like a simple .txt file or more complex containing several files and folders.

Example: classes/01class/exercises/c01-e01/caiocezart/<my-files>

  1. Create one or more commits with changes for this exercise
  2. Push it to the remote repo regularly
  3. Only open a Pull Request with the name <github-username>/<exercise-number> when your work is ready to be reviewed
  4. Once you have the approvals, we will merge your code to master branch and complete the exercise. Congrats!
  5. Upon completion of your first exercise, you will be given permission to start/help peer reviewing other community members code!

Example of the submission process

# starting with exercise1
git checkout master
git pull
git checkout -b "my_github_username/exercise1"
# code code code 
# Remember to add files inside the correct folder
# e.g. .../classes/01class/exercises/exercise1/<my_github_username>
git add file1 file2
git commit -m "comment about the changes on this commit"
# ... several commits later
git push origin "my_github_username/exercise1"
# ... several pushes later, when you are ready for a review
# Open a PR via Github website with the name 

# now, doing exercise2
git checkout master
# update your work directory from remote repo
git pull 
git checkout -b "my_github_username/exercise2"
...
...

Available labs

Projects

More info to come..

Projects will be submitted in the respective project submissions folder via PRs.

Example: projects/project01/submissions/caiocezart/<my-files>

Contributors and Instructors

Presentation format

  • We are using plain README.md files with markdown or GitPitch for slideshow presentations
  • For GitPitch, use PITCHME.md files and subfolders using query string "p=FOLDERNAME" with the class name
  • GitPitch can run either online (out-of-the-box for Github public repos):
    • Online: access https://gitpitch.com/${ORG_NAME}/${REPO_NAME}/${BRANCH_NAME}?p=${FOLDER_NAME}. Folder must contain a PITCHME.md file.
    • Offline: use a Docker container, run make presentation and open http://localhost:9000/${ORG_NAME}/${REPO_NAME}/${BRANCH_NAME}?p=${FOLDER_NAME} For running in a specific folder: FOLDER_NAME=class2 make presentation

Authors

Caio Trevisan

Denis Storti

Francisco Collet

Sponsors

ITBR Australia Community

www.itbr.com.au

Contino

https://www.contino.io

About

DevOps content, classes and exercises

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • JavaScript 40.5%
  • Shell 16.1%
  • CSS 9.9%
  • Dockerfile 9.8%
  • Python 8.4%
  • HTML 8.3%
  • Other 7.0%