Skip to content

ArthurMaverick/devops-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevOps Toolchain Installation and Usage Guide


This comprehensive guide will walk you through the process of installing and using various tools commonly used in the DevOps workflow. From infrastructure provisioning to configuration management, automation, and container orchestration, this guide will cover everything you need to get started.

Devops Project

Table of Contents

  1. Requirements
  2. Deploy Infrastructure
  3. Network Overview
  4. EKS Cluster
  5. Pipeline
  6. Conclusion

1. Requirements

  1. you need install all the tools below:
  • terraform - tools for provisioning and managing cloud infrastructure required
  • kubectl - command-line tool for Kubernetes required
  • ansible - configuration management and automation tool optional
  • aws cli - command-line tool for AWS required
  • tfenv - terraform version manager optional
  • aws vault - tool for securely storing and accessing AWS credentials in development environments optional

2. Deploy Infrastructure

Environments

GUIDE DEV | STAGE GUIDE | PROD GUIDE Folder structure

only the dev environment was created for demo purposes so follow the documentation of DEV GUIA

3. Network

Overview of the infrastructure created by terraform:

  • A network was created with 6 subnets (3 public and 3 private) in 3 different availability zones.
  • The traffic for the private network is routed through a NAT gateway.
  • The traffic for the public network is routed through an internet gateway.
  • Security groups were created to allow traffic between the subnets and to allow inbound and outbound network traffic.

4. EKS Cluster

  • A Kubernetes cluster was created with 4 nodes divided into 2 node groups.
  • Each node group is in a different availability zone, ensuring high availability.
  • Services were created with high availability in mind.
  • Nginx ingress controller was installed to manage incoming traffic.
  • Prometheus was installed to collect cluster metrics.
  • Grafana was installed to visualize the metrics collected by Prometheus.
  • ArgoCD was installed to manage cluster deployments.

5. Pipeline

  • A pipeline was created to automate the application deployment.
  • The pipeline was set up using Jenkins jobs and CodeBuild.
  • The pipeline is triggered by a GitHub webhook.
  • The pipeline builds the Docker image of the application and deploys it to the Kubernetes cluster.
  • The pipeline deploys the application to a specific namespace.

6. Conclusion

Congratulations! You've successfully installed and set up a suite of powerful tools commonly used in DevOps workflows. With AWS CLI, Terraform, kubectl, and Ansible at your disposal, you can manage infrastructure, provision resources, orchestrate containers, and automate configurations effectively.

Remember to refer to the official documentation and guides for each tool to learn more about their features, usage, and best practices:

By mastering these tools, you'll be better equipped to streamline your DevOps practices, manage infrastructure as code, and automate various aspects of your software development lifecycle. Always exercise caution and test your actions in controlled environments before applying them to production systems.

About

Devops Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published