In this course you will learn:
- How to deploy applications on a Linux server on an IaaS platform (Amazon Web Services).
- How to deploy applications on a PaaS platform (Heroku).
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 COMEM+ web development course taught at HEIG-VD.
- Introduction
- Version control
- Security
- Basic deployment
- Advanced deployment
- Automated deployment
- Platform-as-a-Service (PaaS)
- Software development (extra)
- A Unix CLI (Git Bash is included with Git on Windows)
- Git
- A free GitHub account
- Google Chrome (recommended, any browser with developer tools will do)
- A free Heroku account
- The Heroku CLI
- Version control
- Unix
- Basic deployment
- Run your own virtual server on Amazon Web Services (diagram)
- Deploy a PHP application with SFTP (diagram)
- Deploy a PHP application with Git (diagram)
- Configure a PHP application through environment variables (diagram)
- Manage a PHP application with systemd as a Process Manager (diagram)
- Configure a domain name
- Advanced deployment
- Deploy a static site with nginx (diagram)
- Deploy a PHP application with nginx and the FastCGI process manager (diagram)
- Set up an automated deployment with Git hooks (diagram)
- Deploy a web application with a database (graded), not yet available
- Provision a Let's Encrypt TLS certificate with Certbot
- Extra exercises
- End result diagram (assuming the One Chat Room application was deployed)
- Platform-as-a-Service deployment
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
- 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
- Heroku Dev Center
Wikipedia is also often referenced, namely these and related articles: