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 static website generator Jekyll. Static website generators offer many security benefits and simplifies and reduces the maintenance burden associated with well known dynamic CMSes such as WordPress and Drupal required to maintain their security.
This is an intense workshop for users with no prior cloud experience, at the end of which you will have a live Jekyll website.
Prerequisites
- Make sure you have performed the required setup before the workshop begins.
- You will need to have your own laptop or desktop on which you can install the required software (see the setup for more details).
- 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.
- Software Carpentry’s Unix Shell, or similar experience is required.
- Programming experience is an asset but not required.
Day 1 | 13:00 | Introduction |
Who are we?
Who are you? What will we do in this course? |
13:20 | Why static websites? |
What is a static website?
What is a dynamic website? Why might I want my website to be static? |
|
13:35 | First Jekyll site |
Why use Jekyll?
How does Jekyll work? What is YAML? What is an IP address? How do you use ready made themes? How do you configure your site? |
|
14:05 | Break | Break | |
14:15 | Page front matter |
How does Jekyll know a file should be processed?
How does Jekyll know how it should process a file? Can files in the source directory be omitted from the generated site? |
|
14:45 | Site configuration | How do you set site wide settings? | |
15:15 | Break | Break | |
15:25 | Pages and markdown I |
How do you create pages for your Jekyll site?
What is markdown? How do you create section Headers? Is there a way to get Jekyll to automatically rebuild my site? How do you create lists? |
|
15:55 | Finish | ||
Day 2 | 13:00 | Pages and markdown II |
How do you emphasis text?
How do you create paragraphs? How do you create line breaks? How do you create links? |
13:30 | Pages and markdown III |
How do you create block quotes?
How do you include images? How can I find content online that is safe to use on my site? How an you embed Youtube videos in your page? How can I learn more about markdown? |
|
14:00 | Break | Break | |
14:10 | Posts and assets |
What is a post and how is it different from a page?
Can I store images on my VM to use with my site? What is the assets directory? Where to go to learn more about creating static websites? |
|
14:40 | How the Internet works |
What is a LAN?
What are ports and what do they do? What is a domain name? What is a hostname? |
|
15:10 | Break | Break | |
15:20 | Introduction to cloud computing |
What is a cloud?
What does “virtual” mean when applied to a computer? Why use the Alliance’s cloud? What is OpenStack? |
|
15:55 | Finish | ||
Day 3 | 13:00 | 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? |
13:35 | Creating a persistent 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? |
|
14:05 | Applying updates |
How do you perform administrative tasks on a Linux server?
How do you keep a Linux server updated? |
|
14:25 | Break | Break | |
14:35 | Creating a web server |
What is Apache?
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? |
|
15:05 | Break | Break | |
15:15 | Installing Jekyll |
What software does Jekyll depend on?
What are Gems? How is Jekyll installed? |
|
15:30 | Moving your jekyll site | ||
16:00 | Hosting a site on github | ||
16:15 | Finish | ||
Day 4 | 13:00 | Remote desktop primer/outline |
What is a remote desktop?
What kinds of software can we use on a remote desktop? What is VNC? What ports does VNC use? Is VNC traffic secure? What is an SSH tunnel? |
13:35 | Remote desktop foundation |
What is a window manager?
What packages are needed to run a remote desktop? What VNC packages are there? |
|
14:10 | VNC viewer | What software do you need on your machine to connect to VNC? | |
14:45 | Break | Break | |
14:55 | VNC, the wrong way |
What is the wrong way?
Why is this the wrong way? How do you open unnecessary ports on a VM? How do you expose your VNC server to every hacker on the internet? |
|
15:30 | VNC through a tunnel |
What is an SSH tunnel?
What problems are solved by using a tunnel? |
|
16:05 | Remote Desktop Applications | What are some programs we can run on our remote desktop? | |
16:40 | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.