This curriculum introduces open-source cloud computing to a general audience along with the skills necessary to deploy applications and websites securely to the cloud. In the tutorials below, you will build your knowledge of cloud servers, web servers, databases, containers, and cloud security. No prior developer experience is necessary to follow along.
The skills you develop in these tutorials are applicable to any open-source cloud environment. Some hands-on exercises require access to a server, which can be obtained through DigitalOcean’s smallest Droplet offering or through the cloud provider of your choice. First-time DigitalOcean customers can set up a Droplet for free through our free trial offering.
Learn the fundamentals of cloud servers, including how to scope your infrastructure, how to assess your cloud server needs, and some of the tools and terminology involved in working with the cloud.
This tutorial provides an overview of the history and the business context of cloud computing. It contrasts different service models and explains other considerations around risks, costs, and privacy.
In this tutorial, you will set up your server with Ubuntu 22.04 to get up and running with SSH, a package manager, and a firewall. You can also explore our collection of initial server setup tutorials for other popular Linux environments.
This tutorial covers the essentials of working on a command line, including many core Linux commands, shortcuts, and the fundamentals of argument syntax and directory navigation.
This tutorial explains the mechanics of SSH, or secure shell, which is the universally preferred method of connecting to and working with remote servers using a terminal.
This tutorial reviews the most popular Linux distributions, their relationships to each other, and their various strengths and weaknesses, especially in terms of cloud computing, so that you can make the best choice for your work.
This tutorial covers technical details of virtual private server hosting at a high level, providing further background knowledge of cloud hosting infrastructure.
This checkpoint will help you assess what you have learned from these introductory articles on cloud computing, cloud servers, and the Linux command line. You can test your knowledge with interactive components and find opportunities for continued learning and Linux server management.
Start with the basics: what web servers are and how they are commonly used. This tutorial introduces different web server options and how to evaluate different solutions for your web application needs.
Apache is a web server used in popular solution stacks such as LAMP. This tutorial guides you through installing and configuring Apache on Ubuntu 22.04. You can also explore our Apache installation guides for other Linux distributions.
Nginx is a popular solution as both a traditional web server and as a reverse proxy. This tutorial guides you through installing and configuring Nginx on Ubuntu 22.04. You can also explore our Nginx installation guides for other Linux distributions.
This article provides in-depth comparison between two popular web servers, Apache and Nginx, to help you determine which best suits your needs.
Operating your own web server means handling the security yourself. This tutorial demonstrates how to enable TLS encryption with Let’s Encrypt for your Apache Server on Ubuntu 22.04. You can also explore our Let’s Encrypt for Apache tutorials for other Linux distributions.
Web server traffic needs encryption for increased security. These tutorials demonstrate how to enable TLS encryption with Let’s Encrypt for your Nginx Server on Ubuntu 22.04. You can also explore our Let’s Encrypt for Nginx tutorials for other Linux distributions.
This checkpoint will help you assess what you learned about practical implementations and popular options for configuring your web server. Test your knowledge on these topics, review key terms and commands, and find resources for continued learning.
This conceptual article provides a brief overview of what databases are in cloud computing and highlights concepts central to their design and function.
Structured Query Language — commonly known as SQL — is a language used to define, control, manipulate, and query data held in a relational database. This article reviews how to create limitations in SQL by implementing constraints. It is part of a longer tutorial series on SQL you can follow to learn a variety of key SQL commands.
This article compares and contrasts three of the most widely implemented open-source relational database management systems (DBMSs): SQLite, MySQL, and PostgreSQL.
This article outlines a few commonly used NoSQL database models, assessing strengths and disadvantages. You will review examples of NoSQL DBMSs and potential use cases for each.
Redis is a NoSQL database management system and an in-memory key-value store known for flexibility, performance, and wide language support. This tutorial guides you through installing and configuring Redis on an Ubuntu 22.04 server.
In this tutorial you’ll install MongoDB on an Ubuntu 20.04 server, test it, and learn how to manage it as a systemd service.
MongoDB is a document-oriented NoSQL database management system. This tutorial documents four fundamental data operations: create, read, update, delete (CRUD). It is part of a longer tutorial series you can use to get started on MongoDB.
This checkpoint is intended to help you assess what you learned from our introductory articles to Databases, where we defined databases and introduced common database management systems.
This article summarizes the container ecosystem as it exists today and defines the many layers of terminology. You will discover what options are available and how to align a specific container solution with your goals.
Docker is a popular solution within the landscape of container technology. This tutorial demonstrates how to install and use Docker on Ubuntu 22.04. You can also explore our Docker tutorials for other Linux distributions.
With Docker Compose, you can run multi-container application environments.This tutorial guides you through setting up and using Docker Compose on various Linux distributions, which is a good first step toward automation and orchestration with your container setup.
Executing code within containers can be done in multiple ways. This article demonstrates how to use the docker exec command in currently running containers.
Containers often exist just long enough to execute code, but you may want to keep some data persistent after the container is deleted. This tutorial describes how to use Docker volumes for persistent data.
Container images form the base software package within all containers, and image registries can be used to manage them. This tutorial will guide you through setting up a private docker registry to manage Docker container images.
Kubernetes is a popular container orchestration solution with a high level of granular control and customization. In this article’s overview of Kubernetes, you will learn about the architecture, including nodes, objects, workloads, services, and more.
A full-scale Kubernetes deployment relies on multiple servers in a production environment. Minikube is an option that you can use for local development and testing.
This checkpoint is intended to help you assess what you learned from our introductory articles to containers, where we introduced the container ecosystem alongside Docker and Kubernetes, two common container solutions.
This tutorial evaluates security measures you can implement when planning your infrastructure. The recommendations in this tutorial include an in-depth overview of each solution.
Using a firewall is an essential first task for securing your network and defining network connections, and you can use it to block specific ports from outbound access. UFW is a popular firewall that you can deploy and configure on Ubuntu.
VPNs are increasingly popular as a frontline security measure, and Wireguard is a lightweight, open source VPN that you can deploy across servers. Wireguard is fully integrated into and supported by the Linux kernel.
OpenVPN is another open-source VPN solution that accommodates a wide range of configurations.
Of all security practices, keeping your servers and your software updated with fixes to any known vulnerabilities might be the most important and the least involved action you can take. This tutorial covers how you can keep your Ubuntu server updated.
Suricata is a Network Security Monitoring (NSM) tool that uses sets of community created and user defined signatures (also referred to as rules) to examine and process network traffic. Suricata can generate log events, trigger alerts, and drop traffic when it detects suspicious packets or requests to any number of different services running on a server. This is the first tutorial in a series you can follow to get up and running on Suricata.
This checkpoint is intended to help you assess what you learned from our introductory articles to Security, where we introduced recommended security practices and commonly used security tools.
In this curriculum, you have learned about key concepts in cloud computing and explored skills and methodologies related to cloud servers, web servers, databases, containers, and cloud security.