These PDFs are not final. They are not the reference material for this course. Course material will change until the end of the semester. The only up-to-date material is what is on this site.

Architecture & Deployment

On this page
Table of contents
Welcome to the Architecture & Deployment course!
In this course you will learn:
- How to deploy applications on a Linux server on an IaaS platform (Microsoft Azure).
- How to deploy applications on a PaaS platform (Render).
In pursuit of this goal, you will learn:
- How to use the command line and version control.
- The basics of Unix system administration and cloud computing architectures.
- Good security practices related to system administration and web applications.
This course is a Media Engineering web development course taught at HEIG-VD.
What you will need
- A Unix CLI
- Linux/macOS users can use their standard Terminal
- Windows users should install the Windows Subsystem for Linux (WSL)
-
Git
- macOS users should install the command-line tools
- Windows users should install Git for Windows
- Linux users on Debian/Ubuntu-based systems can install Git with the
sudo apt install git
command, or with their other distributionsβ package managers.
- A free GitHub account
-
Google Chrome (recommended, any browser with developer tools will do)
- Firefox (optional, required for one network exercise)
- A free Render account
Resources
- Last yearβs course which contains most of the material at this time. We have not yet finished migrating to this site.
- All the courseβs subjects, slides & cheatsheets as PDF
Warning
References
These are the main references used throughout this course. More detailed and additional links to various online articles and documentation can be found at the end of each subject.
- The Linux Documentation Project
- Building the Future of the Command Line
- SSH, The Secure Shell: The Definitive Guide - Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes
- The Git Book
- Open Web Application Security Project
- Ops School Curriculum
- The Internet Explained From First Principles
- The Twelve-Factor App
- Systemd Manual
- nginx documentation
- Render Documentation
Wikipedia is also often referenced, namely these and related articles:
- Secure Shell
- Cloud Computing
- Internet Protocol
- Domain Name System
- Environment Variable
- Reverse Proxy
- Public Key Certificate
Credits & thanks
- Me
- Simon Pinkas contributed the Docker subject, the Hello Shell command line exercise and various other material. He sometimes teaches parts of the course when I feel too lazy (his words), and helps students navigate through this mess along with me during exercise sessions.
- My
test subjectsearly adopters: students who helped test, debug and improve the course. - David Goetschmann, my current boss at Square Services, who encourages me to continue to teach this course.
- Daniel Rappo, director of the Media Engineering Institute, allowed me to work a lot more time than I was supposed to on the material for this course when developing the initial version while I was working there.
- Mathias Oberson, former colleague at MEI and Square Services, wrote the command line subject and various other material.
- Sarah Composto reread the material, suggested a significant amount of corrections and improvements, and hand-pixelated the funny logo.
- All my former colleagues at MEI who suggested various improvements.
- Nicolas Chabloz and the Helpdesk & IT team at HEIG-VD who helped me debug last-minute issues.
- All the teachers who taught me.
- All the students of the Media Engineering classes who participated in the course since 2019 and suggested various fixes and improvements.
- All the giants who built great things, whose shoulders I stand on.
- Douglas Adams, who taught us the meaning of life.
- My laptop, who is currently dying, but still compiles the course every day.
- My coffee machine, who never stopped supporting me, and provided all the raw material that was turned into code.
- All the people I undoubtedly forgot to mention (let me know).