Cloud computing has become very popular recently. Part of the reason for this popularity is that it provides great flexibility allowing complete control of the computing environment. In addition the environment can be copied, backed up, created and recreated in an automated way. In these lessons we will start you on the path towards making use of the great flexibility and power of cloud computing.
One of the more interesting use cases for the cloud is its ability to provide web services. To explore the flexibility and power of cloud computing we will use the popular WordPress software as an example. WordPress is free as in ‘free beer’ and also as in ‘free speech’ since it is OpenSource software. WordPress allows you you build great looking websites without the need to write all the code your self. It what is referred to as a Content Management System CMS. There are other CMS out there (e.g. Mediawiki, Drupal, Omeka) but WordPress is among one of the most popular and the methods learnt for setting up WordPress will also be applicable to other CMS software.
Prerequisites
- Very strongly encouraged to have a Compute Canada Cloud account well before the course. It can take several business days to obtain an account (see the setup for more details) and having an account means you can continue to use what you have learnt after the course concludes.
- Bring your own laptop to work on. Working on your own laptop makes it that much easier to continue using what you learnt in the course after the course has concluded.
- Students should be comfortable working with computer file systems. They should know how to create and delete directories and files on their own personal computer.
- Familiarity with a Unix style command line environment is strongly encouraged but not required.
- Programming experience is an asset but also not required.
Day 1 | 00:00 | Introduction |
Who are we?
Who are you? What will we do in this course? |
00:15 | How the Internet works |
What is an IP address?
What is a LAN? What are ports and what do they do? What is a domain name? |
|
00:45 | Introduction to cloud computing |
What is a cloud?
What does “virtual” mean when applied to a computer? Why use Compute Canada’s cloud? What is OpenStack? |
|
01:20 | Creating a keypair |
What is a shell?
What is SSH? What are key-pairs and how do you create one? How do you view and set file permissions? |
|
01:35 | Creating a virtual machine |
How do you create a virtual machine?
What is an OpenStack flavor? What is a floating IP? How can I allow SSH traffic into my virtual machine? |
|
02:05 | Creating a persistent virtual machine |
What makes a virtual machine persistent?
What are the differences between ‘p’ and ‘c’ flavors? What is CPU oversubscription? Why are ‘p’ flavors oversubscribed? |
|
02:35 | Applying updates |
How can can you keep a Linux software updated?
How can I fix the ‘sudo: unable to resolve host’ message? |
|
02:50 | Creating a web server |
What is Apache?
What is LAMP? How do we install and configure Apache? How do we check that our web server is running? Where do we put our first web page? |
|
03:20 | Installing MySQL |
What is MySQL?
How can MySQL databases and tables be viewed? How can MySQL tables be modified? How do we install it securely? How do we set the MySQL root user’s password? |
|
04:10 | Installing PHP | What is PHP? | |
04:50 | Creating a Self-Signed SSL Certificate |
What is a Self-Signed SSL Certificate?
How can we create one? What is a Trusted Certificate Authority? What is a Diffie-Hellman group? How do we configure Apache to use our certificate? How do we test to ensure that encryption is working? |
|
05:35 | Creating a WordPress site |
How do we download the WordPress software?
How do we install the WordPress software? How do we finalie the WordPress installation? |
|
06:30 | Installing OpenStack CL client |
Why use OpenStacks command line client?
How do we start using the CL client? |
|
06:45 | Using the OpenStack CL client |
How do we see what OpenStack CL commands are available?
How can we find out how to use OpenStack CL commands? How do we backup our persistent virtual machine? How do we download/upload images to the cloud? |
|
07:45 | Automating with cloud-init |
What does cloud-init do?
How can I specify a cloud-config file when creating a new VM? How can I verify that the setup worked? |
|
08:15 | Bash Scripting |
What is Bash scripting?
Why use Bash? How does Bash scripting relate to cloud-init? How can passwords be automatically generated? |
|
09:00 | YAML |
What is YAML?
How do you create a YAML file? How can a YAML file be validated? |
|
09:15 | Cloud-config | What does cloud-init do? | |
09:45 | Using Heat Orchestration Templates (HOT) |
What do HOTs do?
How can I use HOTs? |
|
10:15 | Creating HOTs |
What do HOT templates do?
Can I use HOT templates with cloudInit scripts? |
|
12:45 | Coffee break | Break | |
13:00 | Lunch break | Break | |
14:00 | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.