Cloud Native Deployment

The final frontier. You will build a complete Cloud Native delivery pipeline: automating testing with GitHub Actions, provisioning infrastructure with Terraform, deploying to Kubernetes, and orchestrating it all with Python.

DevOps EngineerKubernetesDevOpsPython

Introduction

Cloud-native delivery combines several forms of automation: CI workflow definitions, infrastructure as code, declarative orchestration, and operational data processing. This challenge-based project tests each form through a concrete artifact in a prepared local environment.

You will author a GitHub Actions workflow, create a Docker container through Terraform, apply a multi-resource Kubernetes manifest, and write a Python access-log analyzer. The phases share a delivery theme, but remain independently verified exercises rather than a connected production pipeline.

What You Will Learn

  • Define a Node.js CI GitHub Actions workflow that runs checkout, Node setup, installation, and tests on pushes to main
  • Configure the Terraform Docker provider and create an Nginx container named terraform-web with port mapping 8080:80
  • Initialize and apply Terraform, then verify the locally managed container through Docker and HTTP
  • Author and apply a Kubernetes Deployment with three nginx:alpine replicas and matching labels and selectors
  • Expose the Kubernetes workload with a NodePort Service and confirm both resources exist in the local cluster
  • Parse a prepared access log in Python, deduplicate its first-field IP addresses with a set, and print the count

Who This Course Is For

This project is for DevOps learners ready to apply introductory CI, Terraform, Kubernetes, and Python skills without step-by-step commands.

Prerequisites: Familiarity with YAML, GitHub Actions structure, Terraform providers and resources, Docker ports, Kubernetes Deployments and Services, Python file iteration and sets, and Linux terminal use; this is an assessment-style project.

Learning environment: A browser-accessible Linux host with Docker, Terraform, a local Minikube Kubernetes cluster, kubectl, Python 3, Node.js project context, and prepared access-log data; no cloud account or GitHub push is required.

Frequently Asked Questions

Will the GitHub Actions workflow actually run on GitHub?

No. You create and validate .github/workflows/ci.yml locally. The project explicitly does not require a repository push, hosted runner execution, or proof that npm test passes remotely.

Does Terraform provision cloud infrastructure?

No. Terraform uses the kreuzwerker/docker provider to pull nginx:latest and run one local container. Cloud providers, remote state, modules, and production networking are outside the task.

Is the Kubernetes deployment connected to the Terraform container or CI workflow?

No. It is a separate local Minikube exercise. You create a three-replica nginx:alpine Deployment and a NodePort Service, but no pipeline deploys it and Terraform does not manage it.

What does the Python automation do?

It reads the provided access.log, extracts the first field of each line, counts unique IP addresses, and prints Unique IPs: 10. It does not stream logs, call APIs, or modify infrastructure.

Teacher

labby
Labby
Labby is the LabEx teacher.

Recommended For You

no data