Overview

Course Week 1 - Open Stack and CSCloud

Watch course intro below, read the Study Guide and make sure you are registered for the course in Ladok.

Start working and getting acquainted with our cloud environment.

Goal for course week:

  • Be acquinted with the Cloud environment
  • Be able to create a machine (incl. network, router and security groups) in the University Cloud
  • Install a web server on that machine that answeres on a port (80 or 8080 for example)
  • Make sure that you can reach the web page from your browser

Even though you should never use http alone without also setting up certificates to be able to use https, in this week we stop on the milestone of having a webserver listening

Course Week 2 - Automated Provisioning and configuration

Stand up/Morning lecture:

Goals

Theory

  • Understand the benefits of automating the deployment and management of computing infrastructure. Infrastructure as Code (IaC)
    • What is “Infrastructure as Code” (IaC)
    • Motivation. Benefits of using IaC.
    • Languages for IaC.
    • Properties of infrastructure code (e.g., idempotency)

Practice

  • Get familiarity with a tool that automates and manages the creation of computing infrastructure. (manually created previous week)
    • Install OpenTofu or Terraform (they offer the same functionality for our week purposes)
    • Create a .tf-file used for creating the same infrastructure as course week 1 (helping material).

Course Week 3 - Automated configuration

This week we had a guest lecture on Google Cloud Platform and IaC with Jonas Ahnstedt from Imeto

Theory

  • If you have not yet completed last week's material, please ensure you review it, as it provides the foundational principles and benefits of IaC. Review reading material.

  • This week, we continue with Infrastructure as Code (IaC). The focus is on transitioning from manual to automated server configuration. Instead of running commands in the terminal, you will now learn to "program" your servers using Ansible. This method ensures a reliable and consistent configuration of your infrastructure, just like with your application code.

Practice

  • Get familiarity with a tool that automates and manages the software provisioning and configuration of the computing infrastructure.

    • Install Ansible
    • Install nginx or apache2, change the default listening prot and put our website on the Ubuntu machine created with Terraform/OpenTofu last week (helping material).
  • Presentation material

Course Week 4 - CI/CD Pipelines

TBA

Theory

  • Understand the concept, principles, and benefits of Continuous Integration/Delivery/Deployment (CI/CD). Understand the concept of a Deployment Pipeline and its relation to the CI/CD
  • CI/CD is now available earlier in your educational program, see materials in 1dv613: CI/CD intro

Practice

  • Get familiar with a tool that supports CI/CD and create our first Deployment Pipeline, which will automatically execute every time that we do a change (push) to our software project.
  • Create a CI/CD pipeline
    • After every change in our application that is pushed to the repository, our CI/CD pipeline will automatically execute a series of operations.
    • Taking advantage of our experience last week with Ansible, we will focus on automating the operations that deploy the newest version of our application in a staging environment (pre-production). helping material.

Course Week 5 - 6 - Assignment 1

Lectures

TBA

Practice

It is time to start working on Assignment 1. Read more about the assignment here.

Reading Material

Devops book cover Chapter 2: How to Manage Your Infrastructure as Code; Chapter 4: How to Version, Build, and Test Your Code; Chapter 7. How to Set Up Networking: Domain Name System (DNS), Virtual networks in orchestration frameworks

IaC book cover Part I. Foundations, Chapter 1-4: What Is Infrastructure as Code?, Principles of Cloud Age Infrastructure, Infrastructure Platforms, Core Practice: Define Everything as Code

Supporting videos (in English)

What is “Infrastructure as Code” (IaC)
Terraform explained
Ansible vs. Terraform: What's the difference?