Community Curriculum

Introduction to the Cloud

By Topic

Table of Contents

Updated December 8, 2020 38.9k views

This curriculum is designed to introduce open-source cloud computing to a general audience along with the skills necessary to securely deploy applications and websites to the cloud. In these tutorials, readers will have the opportunity to learn about a wide variety of topics related to cloud computing, including the command line, Linux operating systems, open-source software development, setting up servers and stacks, using version control, following security best practices, and the basics of the Domain Name System. Many of these tutorials include hands-on exercises and will prepare readers to complete an app or website deployment project in the “Deploy an App or Website” section. No prior developer experience is necessary to follow along.

As our tutorials focus on open-source approaches to cloud computing, the skills learned here will be applicable in any open source cloud environment. Note, however, that some hands-on exercises require access to a server, which can be obtained through DigitalOcean’s smallest Droplet offering. Eligible students can sign up to receive free credits for DigitalOcean through the GitHub Student Developer Pack.

1. Introductory Topics

  • tutorial

    A General Introduction to Cloud Computing

    The impact of cloud computing on industry and end users would be difficult to overstate: many aspects of everyday life have been transformed by the omnipresence of software that runs on cloud networks. Through the cloud, businesses, independent developers, community organizations, researchers, and general internet users have greater access to high-powered computing resources than ever before. This unprecedented access has given rise to a new wave of cloud-based businesses, changed IT practices across industries, opened up new opportunities for independent developers, and transformed many everyday computer-assisted practices.

    In this guide, we’ll discuss the definition, history, features, benefits, and risks of cloud computing. We’ll also cover the cloud delivery models infrastructure as a service, platform as a service, and software as a service, along with public, private, and hybrid cloud environments.

    Go to tutorial

2. Cloud Computing and Open Source

  • Open-source software plays a critical role in cloud computing and software development at large. At its core, open-source software is software whose source code is freely available for re-use and modification. Using distribution and version-control tools like Git and GitHub, developers can collaborate on open-source software projects or freely re-use existing source code for new software projects. Many key technologies used by developers and businesses worldwide, such as the family of Linux operating systems, the blogging software WordPress, and programming languages like Python, PHP, and Ruby, are distributed through open-source licenses.

    Open source is important for cloud computing as it offers developers the ability to create cloud environments entirely out of open-source technologies. Unlike proprietary options, an open-source approach enables users to freely customize and control the cloud environment they create.

    This section of the curriculum will provide a conceptual background of the history, philosophy, and licensing of open-source software. With a deeper understanding of the background of open-source software, you will be better prepared to learn about the open-source tools and skills covered in the next sections of the curriculum.

  • tutorial

    The Difference Between Free and Open-Source Software

    Open-source and free software licensing models were developed as alternatives to proprietary, closed-source software models. While open-source and free software practices have many similarities, each movement was motivated by a different set of concerns and has different criteria for participation.

    This guide provides the history and philosophical underpinnings of open-source and free software, discusses their respective licensing options, and gives an overview of how proponents of each model view their benefits.

    Go to tutorial
  • tutorial

    A Brief History of Linux

    Linux is one of the most famous and influential open-source software projects. It also plays a key role in open-source cloud computing and is central to many of the cloud computing skills and tools we’ll discuss in this curriculum.

    Linux is a family of open-source operating systems based on the Linux kernel, which was released by Linus Torvalds as freely-modifiable source code in 1991. Today, there are multiple distributions of Linux operating systems that can be downloaded as freely-available, open-source alternatives to proprietary operating systems. Today, the Linux operating system is used in a wide variety of applications, including cars, mobile phones, and supercomputers. Linux operating systems are also one of the most popular choices for running cloud servers.

    This guide will introduce the history, features, and distributions of Linux to help prepare you for subsequent tutorials on using Linux tools and methods.

    Go to tutorial

3A. Getting Started With Linux and the Command Line

  • If you haven’t used a Linux machine before, you may find some of its methods confusing at first. Unlike operating systems that are designed to be used through a graphical user interface and mouse (such as the macOS and Windows operating systems), Linux operating systems are often interacted with through the command line, also known as the terminal or shell.

    The Linux command line is a textual interface where users type commands to be processed by the operating system. Though using the command line takes some practice, many people find that it is a more powerful and efficient way of interacting with an operating system than a graphical user interface. The command line is also the standard method for interacting with Linux servers.

    In this section, you’ll learn how to use the command line to interact with a Linux operating system and how to navigate the Linux file system. This section will also include tutorials on specific commands to help you practice your command line skills.

  • tutorial

    A Linux Command Line Primer

    In this guide, you will learn how to use the Linux terminal to give commands to a computer operating system. To follow along, you can use the interactive terminal embedded in this tutorial or use the terminal on a Linux or macOS computer. The skills you learn in this guide will prepare you to set up and manage your server in Section 4, below, and will provide a strong foundation for learning additional cloud administration and web developer skills.

    Go to tutorial

3B. Further Exploration of the Command Line and the Linux Filesystem

  • Once you have some familiarity with the command line, you may want to explore additional commands to practice and extend your skills. The tutorials in this section introduce new terminal commands that allow you to find files, download files, search for text patterns, and manipulate text. Practicing terminal commands will help you become more comfortable with using the command line to interact with your operating system.

    To follow these tutorials, you need to have access to a terminal on a macOS or Linux machine or on a remote Linux server. If you are not using a local macOS or Linux machine, you can follow the steps in Section 4 to spin up a remote Linux server where you can access a Linux terminal for following these tutorials. As these tutorials are written specifically for Linux operating systems, note that some aspects of the filesystem may be different if you’re using a macOS. To open a terminal on a local macOS or Linux machine, search for “terminal” using the Desktop search functionality.

  • tutorial

    How To Understand the Filesystem Layout in a Linux VPS

    The Linux operating system contains a large number of directories and files, many of which will be unfamiliar to the new Linux user. In this guide, you’ll learn how to navigate the Linux filesystem and the history of its development. You will also explore some of the most interesting directories and where to look for various components in your server environment.

    Go to tutorial
  • tutorial

    Basic Linux Navigation and File Management

    If you do not have much experience working with Linux systems, you may be overwhelmed by the prospect of controlling an operating system from the command line. In this guide, you will learn how to navigate the Linux file system and perform file management commands that allow you to change and create directories and create, read, and move files.

    Go to tutorial
  • tutorial

    An Introduction to Linux Permissions

    Linux is a multi-user OS that is based on the Unix concepts of file ownership and permissions to provide security at the file system level. If you are planning to improve your Linux skills, it is essential that you have an understanding of how ownership and permissions work. In this guide, you will learn how to view and understand Linux ownership and permissions.

    Go to tutorial
  • tutorial

    How To Use Find and Locate to Search for Files on Linux

    Finding files is a very common task on any operating system. The Linux “find” and “locate” commands can both be used to search for files on the filesystem. This guide will cover how to use these two tools to craft specific queries for files.

    Go to tutorial
  • tutorial

    How to Download Files with cURL

    Download files from a remote server to your local system from the command-line using the curl command.

    Go to tutorial
  • tutorial

    Using Grep & Regular Expressions to Search for Text Patterns in Linux

    Grep is a tool used to search for specified patterns within text input using regular expressions. Regular expressions are a system for describing complex text patterns. Regular expressions are a powerful tool that can be used in many different text programs. In this tutorial, you’ll use grep and regular expressions to search through text.

    Go to tutorial
  • tutorial

    The Basics of Using the Sed Stream Editor to Manipulate Text in Linux

    The sed stream editor is a non-interactive line editor that can perform powerful editing operations on text streams or files. Learning to use sed well will allow you to transform text with great speed and flexibility.

    Go to tutorial

4. Setting Up Your Server

  • Now that you have some familiarity with the terminal, you can use your command line skills to set up and administer a server on a virtual machine, one of the foundational building blocks of cloud computing. A virtual machine is a software program that emulates a self-contained, physical computer. However, unlike physical computers, virtual machines can be hosted in the cloud where they can be used to serve websites, applications, and other computing resources through the internet. While it is possible to use a personal, physical computer to serve up websites and applications through the internet, virtual machines hosted on robust cloud infrastructure are typically a better choice given their reliability and capacity to scale beyond the limits of a personal computing device.

    Servers require operating systems to run. In open-source approaches to cloud computing, users can freely implement a variety of Linux operating system distributions on their cloud server. This section of the curriculum will walk you through the steps of setting up a virtual server on a DigitalOcean Droplet using the Ubuntu 20.04 operating system.

    Note: Setting up a Droplet on DigitalOcean requires a credit card or PayPal account and signing up for a subscription that can be canceled at any time upon Droplet deletion. Eligible students can sign up to receive free credits for DigitalOcean through the GitHub Student Developer Pack, which will cover the costs of using a Droplet for this curriculum’s exercises. The virtual server you set up in this section can be used for the remaining sections of this curriculum.

  • tutorial

    How To Create SSH Keys with OpenSSH on macOS, Linux, or Windows Subsystem for Linux

    Before you set up a virtual server, you need to create SSH keys that will allow you to securely connect to it through a terminal on your personal computer. SSH keys are part of an encrypted network protocol used to securely administer and communicate with servers over an unsecured network.

    In this tutorial, you will use a terminal on your personal computer to generate a pair of SSH keys. If you are not familiar with using a terminal, we recommend reviewing our guide A Linux Command Line Primer introduced in Section 3A of this curriculum. Once you’ve created the keys, you can continue to the next tutorial on setting up a server on a DigitalOcean Droplet which will require their use.

    Go to tutorial
  • tutorial

    How To Set Up an Ubuntu 20.04 Server on a DigitalOcean Droplet

    Now that you have SSH keys, you are ready to create a server on DigitalOcean. In this guide, you will create an Ubuntu 20.04 server through DigitalOcean’s administrative panel and configure it to work with your SSH keys. Note that DigitalOcean offers other Linux operating system distributions, but we advise using Ubuntu 20.04 for this curriculum as the remainder of this curriculum’s tutorials will be written for this distribution.

    Go to tutorial
  • tutorial

    Initial Server Setup with Ubuntu 20.04

    Once you have created an Ubuntu 20.04 server, you should perform some important configuration steps as part of the basic setup. These steps will increase the security and usability of your server, and will give you a solid foundation for subsequent actions.

    In this guide, you will use SSH to log into your server as the root user from your computer’s terminal. After logging in, you will create a new user with fewer privileges for day-to-day use. You will also set up a firewall, a security device that enables you to choose which types of incoming and outgoing traffic you will allow on your server. In Step 5, make sure to follow instructions in the subsection “If the Root Account Uses SSH Key Authentication” and not the instructions in the subsection “If the root Account Uses Password Authentication” as you are using SSH key authentication and not password authentication. At the end of the tutorial, you will log into your server using the new account you created.

    Go to tutorial

5. An Introduction to Git and GitHub

  • Freely sharing and collaborating on source code is one of the hallmarks of open-source software development and distribution. Git and GitHub are two popular tools that help developers manage these processes.

    In this section, you will learn how to use the Git version control system and the GitHub platform to participate in open-source software projects, manage your personal software projects, and use source code created by other developers. To follow this section, you should have some comfort working with the command line as covered in Section 3A. You will also need to sign up for a GitHub account as instructed in the tutorial.

  • tutorial

    How To Contribute to Open Source: Getting Started with Git

    Git is an open-source, distributed version control system that enables developers to contribute and maintain open-source projects. This tutorial will discuss the benefits of contributing to open-source projects, and go over installing and setting up Git so that you can contribute to software projects.

    Go to tutorial
  • tutorial

    How To Create a Pull Request on GitHub

    GitHub is a cloud-based Git repository hosting service that enables developers to collaborate on open-source software projects. GitHub currently hosts millions of public software repositories, which developers can inspect, contribute to, or download for use in their own projects.

    Developers contribute to open-source projects in public repositories by making pull requests, a method of submitting proposed changes to a code repository. This tutorial will guide you through making a pull request to a Git repository through the command line so that you can contribute to open-source software projects.

    This tutorial is also available in additional formats. If you’d like to watch a video version, please visit this Tech Talk: Your First Pull Request with Lyn Muldrow. If you’d like to lead a workshop on this topic, please visit our Hacktoberfest Workshop Kit: How to Submit Your First Pull Request on GitHub, which includes slides, speaker notes, and other material for guiding a virtual or in-person workshop.

    Go to tutorial
  • tutorial

    Hacktoberfest Contributor's Guide: How To Find and Contribute to Open-Source Projects

    Contributing to open-source software is not only a way to share your skill in a particular language or tech stack, it can be a rewarding practice to share your engineering knowledge and collaborate with the developer community. Although there’s a wide range of open-source projects out there waiting for your expertise, knowing where to find them and how to contribute in a way that is meaningful to the project can sometimes prove to be a barrier for interested contributors.

    In this Hacktoberfest-flavored guide, we’ll share some tips and information that will aid in finding and contributing to open-source projects.

    Go to tutorial
  • tutorial

    How To Maintain Open-Source Software Projects

    A maintainer is someone who oversees the development of part or all of an open source respository by reviewing contributions, interacting with its developer community, and performing other duties related to the preservation and development of the software project. When you maintain an open-source software repository, you’re taking on a leadership role. Whether you’re the founder of a project who released it to the public for use and contributions, or you’re working on a team and are maintaining one specific aspect of the project, you are going to be providing an important service to the larger developer community.

    This guide will take you through some tips for maintaining public repositories of open-source software. Being a leader of an open-source project comes with both technical and non-technical responsibilities to help foster a user-base and community around your project. Taking on the role of a maintainer is an opportunity to learn from others, get experience with project management, and watch your project grow and change as your users become invested contributors.

    Go to tutorial
  • cheatsheet

    How To Use Git: A Reference Guide

    Git utilizes a variety of commands to help developers manage and collaborate on source code. This cheat sheet-style guide provides a quick reference to commands that are useful for working and collaborating in a Git repository.

    Go to cheatsheet

6. Setting Up a LAMP Stack

  • tutorial

    How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 20.04

    A “LAMP” stack is a group of open-source software that is typically installed together in order to enable a server to host dynamic websites and web apps written in PHP. This term is an acronym that represents the Linux operating system, the Apache web server, the MySQL database (where site data is stored), and PHP, which processes an app or website’s dynamic content. LAMP stacks are utilized by many different websites and applications, including some of the deploy projects listed in Section 10 of this curriculum.

    In this tutorial you will use the command line to install all the required LAMP packages, create an Apache configuration, secure MySQL, set up the UFW firewall to allow traffic to the server, and finally add a test PHP script to demonstrate that all the components of the LAMP stack are working correctly. To follow this tutorial, you should have installed and configured an Ubuntu 20.04 server as instructed in Section 4 of this curriculum.

    Go to tutorial

7. Security

  • tutorial

    Recommended Security Measures to Protect Your Servers

    Getting your applications up and running will often be your primary concern when you’re working on cloud infrastructure. As part of your setup and deployment process, it is important to include building in robust and thorough security measures for your systems and applications before they are publicly available. Implementing the security measures in this tutorial before you deploy your applications will ensure that any software that you run on your infrastructure has a secure base configuration, as opposed to ad-hoc measures that may be implemented post-deploy.

    This guide highlights some practical security measures that you can take while you are configuring and setting up your server infrastructure. It will cover security tools and strategies such as SSH keys, firewalls, VPC networks, service auditing, unattended updates, SSL/TLS Encryption, and more. This list is not an exhaustive list of everything that you can do to secure your servers, but this offers you a starting point that you can build upon. Over time you can develop a more tailored security approach that suits the specific needs of your environments and applications.

    Go to tutorial

8. Domain Name System

  • The Domain Name System (DNS) is an essential component of modern internet communication. It allows us to reference computers by names instead of IP addresses. Domain names of websites appear in the address bar of browsers. For example, the domain name of DigitalOcean’s website is digitalocean.com.

    When you set up a new server, your server will have an automatically-generated IP address. Users can type this IP address into a web browser’s address bar to access any publicly-available files on the server. If you’d like users to access your server through a domain, you will need to register a domain name and associate it with your IP address.

    This section will introduce you to how DNS works and walk you through the steps of translating IP addresses to domain names.

  • tutorial

    An Introduction to DNS Terminology, Components, and Concepts

    DNS is often a difficult part of learning how to configure websites and servers. Understanding how DNS works will help you diagnose problems with configuring access to your websites and will allow you to broaden your understanding of what’s going on behind the scenes.

    In this guide, we will discuss some fundamental DNS concepts that will help you hit the ground running with your DNS configuration.

    Go to tutorial
  • tutorial

    How To Point to DigitalOcean Nameservers From Common Domain Registrars

    If you want to add a domain name to your server, you’ll need to purchase a domain name from a domain name registrar and then map that domain to your IP address. This guide will provide instructions for mapping domain names from a variety of registrars to DigitalOcean’s nameservers.

    Go to tutorial
  • tutorial

    How To Secure Apache with Let's Encrypt on Ubuntu 20.04

    If you do map a domain to your server, you can improve your server’s security by obtaining and installing free TLS/SSL certificates from the Let’s Encrypt Certificate Authority. These certificates are used to validate the identity of any entity interacting with your server and encrypt server traffic. Let’s Encrypt simplifies the certificate process by providing a software client, Certbot, that attempts to automate most (if not all) of the required steps.

    In this guide, we’ll use Certbot to obtain a free and open-source SSL certificate for Apache on Ubuntu 20.04, and make sure this certificate is set up to renew automatically.

    Go to tutorial

9. Databases and Database Management Systems (DBMS)

  • Databases are an essential component of many websites and web applications. They are used to store data that can be queried or generated by users. For example, e-commerce websites use databases to store product information and medical record applications use databases to store patient information. Many websites in general, such as those that use content management systems like WordPress or Drupal, use databases to store and serve information such as post content, usernames, and comments.

    To incorporate a database into a website or web application, developers need to use a Database Management Systems (DBMS). A DBMS enables users to control access to a database, write data, run queries, and perform any other tasks related to database management. If you followed the tutorial in How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 20.04 in Section 6 of this curriculum, you have already set up the database management system MySQL.

    In this section, you will learn about relational databases, a database model which is used by four of the top five most popular DBMS. You will also learn about Structured Query Language (SQL), which is used to define, control, manipulate, and query data held in relational databases and have an opportunity to practice SQL commands on your machine. If you’d like to learn more about SQL after completing the tutorials in this section, you can visit our tutorial series How To Use SQL.

  • Tutorial Series

    How To Use SQL

    Structured Query Language — commonly known as SQL — is a language used to define, control, manipulate, and query data held in a relational database. SQL has been widely adopted since it was first developed in the 1970s, and today it’s the predominant language used to manage relational database management systems.

    Ideal for managing structured data (data that can fit neatly into an existing data model), SQL is an essential tool for developers and system administrators in a wide variety of contexts. Also, because of its maturity and prevalence, candidates with SQL experience are highly sought after for jobs across a number of industries.

    This series is intended to help you get started with using SQL. It includes a mix of conceptual articles and tutorials which provide introductions to various SQL concepts and practices. You can also use the entries in this series for reference while you continue to hone your skills with SQL.

  • tutorial

    Understanding Relational Databases

    Database management systems (DBMS) are computer programs that allow users to interact with a database. A DBMS allows users to control access to a database, write data, run queries, and perform any other tasks related to database management.

    In order to perform any of these tasks, though, the DBMS must have some kind of underlying model that defines how the data are organized. The relational model is one approach for organizing data that has found wide use in database software since it was first devised in the late 1960s, so much so that, as of this writing, four of the top five most popular DBMSs are relational.

    This conceptual article outlines the history of the relational model, how relational databases organize data, and how they’re used today.

    Go to tutorial
  • tutorial

    How To Create and Manage Tables in SQL

    Tables are the primary organizational structure in SQL databases. They consist of any number of columns, which reflect individual attributes of each row, or record, in the table. Being such a fundamental aspect of data organization, creating and managing tables are common tasks for anyone who builds or maintains databases.

    This guide outlines how to create tables in SQL, as well as how to modify and delete existing tables. If you followed the tutorial on setting up a LAMP stack in Section 6, you should not need to install any additional tools. However, you will need to create a non-root MySQL user as specified in this tutorial’s prerequisites. If you have not set up a LAMP stack yet, make sure to install the prerequisites listed in this tutorial before beginning.

    Go to tutorial
  • cheatsheet

    How To Create Basic Queries in SQL

    One of the most fundamental parts of working with databases is the practice of retrieving information from a database. In relational database management systems, any operation used to retrieve data from a table is referred to as a “query.”

    In this guide, we will discuss the basic syntax of queries in Structured Query Language (SQL) as well as some of their more commonly used functions and operators. However, you will need to create a non-root MySQL user as specified in this tutorial’s prerequisites. If you have not set up a LAMP stack yet, make sure to install the prerequisites listed in this tutorial before beginning.

    Go to cheatsheet

10. Deploy an App or Website

  • If you successfully set up an Ubuntu 20.04 server and LAMP stack as guided in Sections 4 and 6, you should have all the skills and prerequisites ready to deploy a website or web application.

    This section includes a list of tutorials for deploying a variety of applications and websites on an Ubuntu 20.04 server. These projects all make use of the Infrastructure as a Service (IaaS) cloud delivery model discussed in the tutorial A General Introduction to Cloud Computing.

    We have also included a tutorial for deploying a static website for free through DigitalOcean’s AppPlatform, which is a Platform as a Service (PaaS) offering. Note that the AppPlatform project does not require setting up an Ubuntu 20.04 server and LAMP stack as guided in Sections 4 and 6, but shows you how to directly deploy a website to the cloud from source code hosted in a GitHub repository. In this tutorial, you can deploy our sample static website or one you’ve built yourself. Following this tutorial may help you get a sense of some of the differences between using IaaS and PaaS cloud delivery models.

  • tutorial

    How To Install WordPress on Ubuntu 20.04 with a LAMP Stack

    WordPress is an extremely popular open-source technology for making websites and blogs on the internet today. Used by 63% of all websites that use a content management system (CMS), WordPress sites represent 36% of all websites that are currently online.

    There are many different approaches to getting access to WordPress and some setup processes are more complex than others. This tutorial is intended for those who desire to install and administer a Wordpress instance on an unmanaged cloud server via the command line. Though this approach requires more steps than a ready-made WordPress installation, it offers administrators greater control over their WordPress environment.

    Go to tutorial
  • tutorial

    How To Install Jitsi Meet on Ubuntu 20.04

    Jitsi Meet is an open-source video-conferencing application based on WebRTC. A Jitsi Meet server provides multi-person video conference rooms that you can access using nothing more than your browser and provides comparable functionality to a Zoom or Skype conference call. The benefit of a Jitsi conference is that all your data only passes through your server and the end-to-end TLS encryption ensures that no one can snoop on the call. With Jitsi you can be sure that your private information stays that way.

    In this tutorial, you will install and configure a Jitsi Meet server on Ubuntu 20.04.

    Go to tutorial
  • tutorial

    How To Install OpenEMR on Ubuntu 20.04 with a LAMP Stack (Apache, MySQL, PHP)

    OpenEMR is an open-source electronic health records and medical practice management tool. It is used by physicians and healthcare facilities to manage electronic medical records, prescriptions, patient demographic tracking, scheduling, reports, and electronic billing. At the time of publication, OpenEMR supports more than 30 languages.

    In this tutorial, you will install OpenEMR on Ubuntu 20.04

    Go to tutorial
  • tutorial

    How To Deploy a Static Website to the Cloud with DigitalOcean App Platform

    If you’ve built a static website in a local environment, the next step is to decide how to publish it to the web. One way to publish your site is to deploy it as an application through App Platform, a DigitalOcean service that offers free hosting for three static sites. Deploying applications often requires setting up underlying server infrastructure. App Platform automates this work, allowing you to deploy your static website to the cloud from a GitHub repository.

    This tutorial will guide you through all the steps of deploying a static website to the cloud using App Platform, GitHub (a software development platform), and GitHub’s Desktop Application. The instructions here should work for any static website you’ve built in a local environment, including websites created with our tutorial series How To Build a Website With HTML. We will also walk you through how to use our sample HTML website for this tutorial if you don’t have a website ready to deploy, or would just like to test out App Platform. By the end of this tutorial, you should have a published website and an understanding of how to deploy websites to the cloud from a GitHub repository with App Platform.

    Go to tutorial

11. Further Topics

  • In this curriculum, you have been introduced to some of the fundamental skills and tools used in open source approaches to cloud computing, including the command line, Linux operating systems, setting up servers and LAMP stacks, using GitHub, security best practices, and the Domain Name System. You have also had the opportunity to use these skills to deploy a website or web application in Section 10.

    These skills are foundational to an open source approach to cloud computing but there is still much more to learn. If you are interested in exploring cloud computing and other technical skills further, you may want to check out the following educational content:

    A DigitalOcean Workshop: Get Started with Containers and Kubernetes (Webinar):In the past decade, containerized applications and container clusters have become important tools for cloud computing. In this webinar, you will learn more about the uses of containers as well as the open source system Kubernetes that is used to manage containerized applications in a clustered environment.

    Kubernetes for Fullstack Developers (Curriculum): Whether you’re just curious, getting started with Kubernetes, or have experience with it, this curriculum will help you learn more about Kubernetes and running containerized applications. You’ll learn about core Kubernetes concepts and use them to deploy and scale applications in practical tutorials. By the end of this curriculum you’ll be able to create your own Kubernetes cluster from scratch and run your own applications on it. You will also learn how to set up monitoring, alerting, and automation for your applications on Kubernetes.

    Automating the Complexity of Server Set Up with Ansible (Webinar): Server automation now plays an essential role in systems administration, due to the disposable nature of modern application environments. Configuration management tools such as Ansible are typically used to streamline the process of automating server setup by establishing standard procedures for new servers while also reducing human error associated with manual setups. In this webinar, you’ll learn how to create and execute Ansible playbooks to automate your server infrastructure setup. We’ll explore some of the most important Ansible features and how to leverage them to create clean and flexible automation for your DigitalOcean Droplets.

    How To Manage Infrastructure with Terraform: Terraform is a popular open source Infrastructure as Code (IAC) tool that automates provisioning of infrastructure in the cloud and manages the full lifecycle of all deployed resources, which are defined in source code. Its resource-managing behavior is predictable and reproducible, so you can plan the actions in advance and reuse your code configurations for similar infrastructure.

    What is Load Balancing?: Load balancing is a key component of highly-available infrastructures commonly used to improve the performance and reliability of web sites, applications, databases and other services by distributing the workload across multiple servers. This tutorial will introduce you to key concepts in load balancing. For a webinar on load balancing, you can visit Everything you want to know about Load Balancers.