DevOps Foundational Project

Overview

In this first lab, we're going to create a complete application from the ground up, consisting of a React frontend and a Python backend. While our focus in this course is DevOps rather than application development, understanding the basics of the application you're deploying is crucial for effective DevOps practices.

By the end of this lab, you'll have a functioning web application running in development mode. This will serve as the foundation for subsequent labs where we'll containerize, deploy, and manage this application in a production-like environment. ✨



Purpose

The purpose of this lab is not to teach you advanced application development, but rather to:


  1. Provide you with a complete understanding of the application's architecture
  2. Give you hands-on experience with the codebase you'll be working with throughout the course
  3. Establish a baseline for future DevOps operations
  4. Demonstrate how frontend and backend components interact in a modern web application

Lab Environment

To help you focus on the core concepts, we've prepared a development environment with all necessary tools pre-installed:


  • Git for version control
  • Node.js for the React frontend
  • Python for the backend API
  • Code editor and terminal
  • Required libraries and dependencies

This allows you to concentrate on understanding the application structure and DevOps concepts without getting caught up in environment setup issues!

What We'll Accomplish

In this lab, you will:


  1. Clone the starter code repository
  2. Explore the React frontend structure
  3. Understand the Python backend API
  4. Run both applications in development mode
  5. Test the complete application

Looking Ahead: From Development to Production

While this lab has us running the application in development mode, this approach has several limitations for real-world scenarios:


  • Development servers aren't optimized for performance
  • Environment configurations are hard-coded
  • Scaling is difficult
  • Deployment is manual and error-prone
  • Dependencies are managed inconsistently

In our next labs, we'll address these challenges by containerizing both the frontend and backend components using Docker. This will allow us to:


  1. Package our application with all dependencies in isolated containers
  2. Create consistent environments across development, testing, and production
  3. Implement environment-specific configurations
  4. Prepare for orchestration with Kubernetes for scaling and management
  5. Set up continuous integration and deployment pipelines
  6. Implement monitoring and logging solutions

By starting with a functioning application in development mode, you'll gain a clear understanding of what we're containerizing and deploying, which will make the DevOps concepts more concrete and relevant.


Let's begin by exploring the code and getting our application up and running!

Part of this Project


DevOps Foundational Project DevOps Foundational Project
Free
This project covers foundational DevOps concepts including application development, Docker containerization, CI/CD pipeline implementation, cloud deployment, and monitoring of systems.
DevOpsReactPython
Containerizing Your Application with Docker Containerizing Your Application with Docker
Free
Learn how to use Docker, a popular containerization platform, to package, deploy, and manage applications efficiently by ensuring consistency across different development and production environments.
DockerGithub Actions
Deploying UI and API in Kubernetes Deploying UI and API in Kubernetes
Free
This lab covers the deployment of User Interface (UI) and Application Programming Interface (API) components within a Kubernetes environment.
KubernetesDocker
CI/CD Pipeline Fundamentals CI/CD Pipeline Fundamentals
Free
Learn the fundamentals of GitHub Actions to create CI/CD pipelines, automate testing, and deployment processes, enhancing development workflows and ensuring quality in your software project.
CI/CDGithubDevOps
AWS DynamoDB Fundamentals AWS DynamoDB Fundamentals
Free
AWS DynamoDB is a fully managed NoSQL database service designed to deliver fast and predictable performance, enabling seamless scalability and reliable data storage for applications.
AWSDynamoDB
Monitoring Your Cloud-Native Application with Prometheus, Grafana, and Loki Monitoring Your Cloud-Native Application with Prometheus, Grafana, and Loki
Free
Learn to monitor your cloud-native applications using Prometheus for metrics collection, Grafana for visualizations, and Loki for log aggregation and analysis.
PrometheusGrafanaLoki
Difficulty
Intermediate
Time to Complete
90 minutes
Price
Premium
Environments You will be given access to live environments below as part of this lab
Python Python
Node.js Node.js
Ubuntu Ubuntu
About Author

Review Project Content id: 67e1f3ea5a8ed7ef5a8241f7 By Starting this lab you agree to Prepare.Sh Terms of Service (TOS)