Devops Mentoring
Originally posted on twitter
An ongoing thread on tasks I give people to do, when I mentor for devops or such engineering roles..Inputs welcome.
Note: All the estimated times are approximated with my experience. Might vary largely. Get a mentor (You can DM me!) to help you with each task.
Task 1: Setup github pages blog using jekyll.
Learned: Static vs Dynamic websites, git, github account, html/css, cli.
Typical time: 2 hours.
Task 2: Introduction to CI/CD via gitlab pages. This is similar to above task with a slight modification on moving GitHub to gitlab pages.
Learned: Continuous integration, Continuous Deployment, Gitlab (reuse git knowledge here)
Typical time: 1 hour.
Task 3: Add custom domain to above website and use cloudflare to offload ssl.
Learned: http, https, tcp handshake, ssl handshake, how ssl works, how dns works, what's CDN and how does it work
Typical time: 1-2 hours.
Task 4: Learn Python syntax and beginner concepts.
Learned: What's a programming language and why we need one, usage of an editor like sublime, command line interface to run programs, python shell.
Typical time: 5-6 hours. Don't try to learn everything in single day.
Task 6: Deploy a ghostjs website on your localhost. Do some changes of theme+configurations. Push code to gitlab, ci/cd configure to deploy on AWS.
Learned: AWS concepts like EC2 instance, security group, subnets, public/private IPs, ssh, CI/CD.
Typical time: 8 hours.
Task 7: Monitor the application. Give a report on how's it working, do load testing and see what breaks at what point, debug and fix it.
Learned: Debugging, what to monitor, what metrics are fine, what's abnormal.
Typical time: 4 hours.
Task 8: Alerts and feedback loops. Setup alerts on when things are going to break, and what's the appropriate fix.
Learned: Managing alerts, automating fixes.
Typical time: 3 hours.
Task 9: Automate everything done so far. Destroy everything in AWS account and recreate it with automation tool..
Learned: Infrastructure as a code (terraform/cloudformation) and other config management tools like ansible, python, bash/aws-cli scripts.
Typical time: 6 hours.
Task 10: Put your servers behind load balancer and start autoscaling.
Learned: Load balancers, autoscaling, launch templates/configurations.
Typical time: 3 hours.
Task 11: Send logs to central server.. Use some tool which is free for certain limit.
Learned: The need of centralised logging, how to filter/search, backup of logs.
Typical time: 2 hours.
Task 12: Automate simple things like increase disk space when it reaches 90%
Learned: How to invoke automations on multiple servers, making sure it doesn't break any existing service, how linux disk resize works.
Typical time: 4 hours.
Task 13: Install netdata on a single server.. observe the metrics for a few days and blog about learnings and what you've understood.
Note: This is too much information to consume.
Learned: Deep dive into linux, what're the various things to monitor.
Typical time: 3-4 days