CYF+02 Sprint 3


Provisional start date: 6 May 2024


  • Multiple servers Revisit this project and deploy it with Docker and GH Actions

Managing state at scale

Command line familiarity

  • 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.)


  • Troubleshooting Primer
  • Troubleshooting project #3
    • This project is designed to get you familiar with upstream service failure.
    • You’ll be given 2 instances today. \o/ A www host (www=webserver), and a db host (db=database).
    • To log in: ssh -i </path/to/the/ssh-private-key> <username>@<IP>
      • You have sudo access on both hosts, please give a shout if that doesn’t work. (You’ll need it.)
    • The goal of the exercise is:
      • When you run lynx -dump http://localhost/, you will see a cute image of a cat on your terminal.
      • (Unlike in the previous exercise, today we don’t care that the database password is exposed in ps, so don’t worry about that.)
      • Along the way, we expect you’ll be able to answer:
        • What kind of failures do you see when talking to an upstream service? (Do you know about upstream and downstream services? It’s useful jargon.)
        • The webserver doesn’t start. Can you explain why?
    • Some knowledge to get you started:
      • httpurr makes a return. Code has changed a bit from previous exercise, if you need it, source code is in /httpurr-source/ on the www host.
      • Unlike previous time, we don’t use docker this time.
      • The database is postgresql. (Unlike previous time, when it was mysql.) It’s a lovely database.
    • While doing the exercise, I would recommend logging what you do.


You’re starting to learn efficiencies and optimisations. How will you apply them to your product work?