-
CYF+01 Prep Workbook
Details
Prep
The CYF+ Immersive Engineering Programme is an intensive three month course. There’s a lot to get through and you’ll need to hit the ground running. To prepare for this exciting opportunity, you will:
Linux
- Take this Unix 101 course (and then try 102)
- Print out this Linux-Cheat-Sheet
Go
- Learn the basics of the Go programming language: Get Started - The Go Programming Language
- Read this, you might find it useful for working through your first projects: How to use the fmt package in Golang
- And optionally Learn Go with tests
Projects
Complete the prep and first two projects from the Immersive Go course
Reading
Dip in to some longer books — but don’t feel you need to read the whole lot!
Fun
- Play the Bandit
-
CYF+01 Sprint 1
Details
Study
- Distributed Systems: Reliable RPCs
- Troubleshooting Primer
- Linux process Intro
- Linux Process and Signals - This doc has some commands to give you an insight on how to view processes and pass signals to a process; we recommend running those commands and documenting your learning.
Projects
- Servers & databases
- Multiple Servers
- Docker & Cloud Deployment
- gRPC
- Troubleshooting project #1 TOADD
Product
https://github.com/orgs/CodeYourFuture/projects/19/views/6?filterQuery=+-status%3ABacklog%2CDone+
-
CYF+01 Sprint 2
-
CYF+01 Sprint 3
Details
Study
- Distributed Systems: State
- Troubleshooting Primer
- Linux Bash I & Linux Bash II (There are other blog posts in the same series that could be useful to go through in spare time, would recommend running the commands that the blog post suggests for better understanding.)
- PHP fastcgi - https://www.php.net/manual/en/install.fpm.php Systemctl - https://www.freedesktop.org/software/systemd/man/systemctl.html and then https://www.redhat.com/sysadmin/linux-systemctl-manage-services
- Nginx https://nginx.org/en/docs/ https://nginx.org/en/docs/http/request_processing.html https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
Projects
- Multiple servers Revisit
- Troubleshooting project #3 TOADD
Optional (but recommended) software ops tutorials:
- Do this HashiCorp tutorial. It will give you hands-on experience with seeing health checks can be used to manage failure. https://learn.hashicorp.com/tutorials/consul/introduction-chaos-engineering?in=consul/resiliency
- Demonstrate circuit breaking with this HashiCorp tutorial: https://learn.hashicorp.com/tutorials/consul/service-mesh-circuit-breaking?in=consul/resiliency
- See different kinds of load-balancing algorithms in use with this HashiCorp tutorial: https://learn.hashicorp.com/tutorials/consul/load-balancing-envoy?in=consul/resiliency
- Do this tutorial which demonstrates autoscaling with minikube (you will need to install minikube on your computer if you don’t have it). It will give you hands-on experience in configuring autoscaling, plus some exposure to Kubernetes configuration.
You may need to run this command first: minikube addons enable metrics-server https://learndevops.novalagung.com/kubernetes-minikube-deployment-service-horizontal-autoscale.html
Product
https://github.com/orgs/CodeYourFuture/projects/19/views/6?filterQuery=+-status%3ABacklog%2CDone+
-
CYF+01 Sprint 4
Details
Study
Projects
- Kafka Cron - Distributed Cron system with Prometheus monitoring
- Troubleshooting project #4 TOADD
Product
https://github.com/orgs/CodeYourFuture/projects/19/views/6?filterQuery=+-status%3ABacklog%2CDone+
-
CYF+01 Sprint 5
Details
Study
Projects
- RAFT OTEL Do the raft-otel project. This large project explores a distributed consensus protocol using distributed tracing.
Product
https://github.com/orgs/CodeYourFuture/projects/19/views/6?filterQuery=+-status%3ABacklog%2CDone+