A comprehensive repository showcasing advanced DevOps practices with Infrastructure as Code (IaC) and Continuous Integration/Continuous Deployment (CI/CD) pipelines. Includes examples of cloud infrastructure provisioning, configuration management, and automated application deployment.
This repository demonstrates a DevOps project setup including Infrastructure as Code (IaC) and Continuous Integration/Continuous Deployment (CI/CD) pipeline for a simple web application. It's designed as a showcase for DevOps practices and principles, suitable for inclusion in a professional portfolio.
The application is a basic web service written in Node.js, serving a simple HTML page. The project highlights DevOps methodologies, focusing on automation, monitoring, and efficient deployment strategies.
/app - Contains the source code for the Node.js application. /infra - Contains Infrastructure as Code (IaC) files, using Terraform for provisioning cloud resources. /scripts - Contains scripts for setup, build, and deployment tasks. /tests - Contains sample unit and integration tests for the application. /.github/workflows - Contains GitHub Actions workflow files for CI/CD. /docs - Additional documentation for the project setup and architecture.
Application: A simple Node.js web application. IaC: Terraform scripts to provision and manage cloud resources. CI/CD: A GitHub Actions pipeline that automates testing, building, and deploying the application. Monitoring: Basic setup for monitoring the application's health and performance. Getting Started Prerequisites Node.js Terraform Docker (optional, for containerization)
- Clone the repository to your local machine.
- Navigate to the /app directory and install dependencies:
cd app npm install
- Start the application locally:
npm start
- Navigate to the /infra directory.
- Initialize Terraform to download necessary providers:
terraform init
- Apply Terraform configuration to provision the infrastructure:
terraform apply
- Follow the CI/CD pipeline instructions in /.github/workflows to set up automated deployment.
Contributions are welcome! Please feel free to submit pull requests, open issues, or suggest improvements.
License This project is open-source and available under the MIT License.