Skip to content

Latest commit

 

History

History
51 lines (38 loc) · 4.12 KB

File metadata and controls

51 lines (38 loc) · 4.12 KB

Phase 4: DevOps

Final phase. First off, read some stuff about what DevOps is. Each cloud platform has a suite of DevOps tools, I've linked a few articles here.

I also think it's worth reading The Phoenix Project it's a pretty fun read because it's a fictional story but it explains the importance of DevOps. But if you'd prefer something more like a textbook with similiar ideas, check out The DevOps Handbook.

DevOps practices

  • Continuous integration and continuous delivery (CI/CD)
  • Version Control
  • Infrastructure as Code
  • Configuration management
  • Monitoring (logs, metrics, traces)

You might be thinking that 4 weeks isn't a lot of time to cover all these, and you're right. With DevOps, it's so hard to establish a standard of learning, because every organization implements it differently. However, I think if you spent these 4 weeks learning Version control, CI/CD and Infrastructure as Code, you'll have good foundation. You'll also be exposed to these practices in the resume projects I listed in the cloud projects table.

Resources

Practice Tool
Continuous integration and continuous delivery GitHub actions
Version Control (you should've become familiar with Git in phase 2) Git and GitHub
Infrastructure as Code Terraform
DevOps Engineering Course for Beginners General
GitLab Learning Paths GitLab

Projects

Title Resource
Deploy a VNet (or VPC) and 2 VMs in the cloud with Terraform Make sure you can SSH into both VMs and from vm1 you can ping vm2 and vice-versa.
Remember that NAS project from Phase 1? Deploy it with Terraform
Remember nextcloud project from Phase 1? Deploy it with Terraform to an ec2 instance with github actions

Things you should be familiar with at the end of this phase

  • Working knowledge of at least one continuous integration tool (Github Actions, Jenkins, etc)
  • An understanding of infrastructure as code (why you'd use it, etc).
  • An understanding of containerization (why/when you'd need it / use containers)
  • An understanding of the practice of Continuous Integration (why it's needed) and have at least one project in your github deployed with a pipeline.
  • An appreciation for the ideas behind: "immutable infrastructure"
  • An appreciation for monitoring and the basic ideas of logs, metrics, traces
  • An appreciation for "declarative and imperative infrastructure as code"

Certifications you might want to look into