Skip to content

Cloud Native Fundamentals

Free Course

Learn how to structure, package, and release an application to a Kubernetes cluster, while using an automated CI/CD pipeline.

Related Nanodegree Program

Cloud Native Application Architecture

In collaboration with
  • SUSE

About this course

Throughout this course, students will learn how to structure, package, and release an application to a Kubernetes cluster, while using an automated CI/CD pipeline. Students will start by applying a suite of good development practices within an application, package it with Docker and distribute it through DockerHub. This will transition to the exploration of Kubernetes resources and how these can be used to deploy an application. At this stage, students will be comfortable using k3s to bootstrap a lightweight and functional Kubernetes cluster. Next, students will examine template configuration managers, such as Helm, to implement the parameterization of Kubernetes declarative manifests. Towards the end of the course, students will learn the fundamentals of Continuous Integration and Continuous Delivery (CI/CD) with GitHub Actions and ArgoCD and completely automate the release process for an application.

What you will learn

  1. Welcome to Cloud Native Fundamentals
    • Evaluate the cloud native ecosystem
    • Explore CNCF (Cloud Native Computing Foundation) and cloud native tooling
  2. Architecture Consideration for Cloud Native Applications
    • Choose monolith or microservice based-architecture for an application
    • Consider and evaluate the involved trade-offs for monoliths and microservices
    • Apply good development practices to an application
  3. Container Orchestration with Kubernetes
    • Use Docker to package an application and distribute it via DockerHub
    • Bootstrap a Kubernetes cluster using k3s
    • Explore Kubernetes resources for an application deployment
    • Differentiate between declarative and imperative Kubernetes management techniques
  4. Open Source PaaS
    • Understand the usage and abstracted components while using a Platform as a Service (PaaS) solution
    • Explore application deployment with Cloud Foundry
  5. CI/CD with Cloud Native Tooling
    • Explain CI/CD and its benefits
    • Apply Continuous Integration fundamentals using GitHub Actions
    • Apply Continuous Delivery fundamentals using ArgoCD
    • Use Helm, as a configuration template manager, to parametrize declarative Kubernetes manifests
    • Deploy an application using ArgoCD and a Helm chart

Prerequisites and requirements

A well-prepared learner will meet the following prerequisites:

  • Understand the basics of http (like client, server, and internet request)
  • Basic Python (data types, Functions, REST requests, web development)
  • Ability to use Git, Linux machines, and Linux Command Line
  • Familiar with Web application development in any language
  • Familiarity with Docker and exposure to a CI/CD pipeline are not required for success in this program but are helpful skills to have.

See the Technology Requirements for using Udacity.

Why take this course?

Cloud native architecture allows for more fluidity, resiliency, and scalability, making it appealing to organizations around the world. However, the demand for cloud native architects exceeds the current supply. Thus, learning these fundamental skills can be a stepping stone towards a high-paying role at a top company.

Learn with the best.

  • Katie Gamanji
    Katie Gamanji

    Ecosystem Advocate for Cloud Native Computing Foundation