Cloud-Native GKE Application: Welcome to the Cloud-Native GKE Application repository. This professional project showcases the implementation of a cloud-native application using Google Kubernetes Engine (GKE) on Google Cloud Platform (GCP). Through this repository, we explore the world of containerization, CI/CD pipelines, and Kubernetes, creating a robust cloud-native solution.
Dive into the realm of cloud-native applications with the Cloud-Native GKE Application repository. This project exemplifies the use of containerization, CI/CD pipelines, and Kubernetes to develop and deploy a powerful microservices-based application on GCP's GKE. From microservices communication to persistent data storage, this project covers it all.
This repository embodies the mastery of the following concepts:
- Containerization using Docker
- Building CI/CD pipelines with GCP tools
- Harnessing the power of Kubernetes, both through the GCP console and Infrastructure as Code (IaC) tools like Terraform
- Deploying applications on GKE clusters using CI/CD pipelines
- Configuring and utilizing persistent volumes in GKE
- Effective usage of Kubernetes tools like kubectl for container management and cluster diagnosis
- Understanding application update strategies and version control in GKE
-
Microservices Development: Develop two microservices in your preferred programming language. These services should be designed to interact with each other, showcasing a seamless integration.
-
CI/CD Pipeline: Create a robust CI/CD pipeline using GCP tools such as Cloud Source Repository and Cloud Build. The pipeline should enable automated deployments to the GKE cluster whenever new code commits are made.
-
Persistent Volume: Configure a persistent volume in your GKE cluster, accessible to both microservices. Your application must be able to read from and write to this volume.
-
GKE Cluster Setup: Create a GKE cluster using Terraform. The configuration should align with the specifications outlined in the assignment.
-
Exposing Services: The deployment yaml file should not only deploy your microservices but also expose the services to the internet through Load Balancers Service.
-
Internal Communication between PODS: Allow internal communication between different microservices through ClusterIP Service.
This repository includes:
-
Microservices source code
-
Configuration files for the CI/CD pipeline using Cloud Build
-
Terraform script for creating the GKE cluster
-
Deployment yaml file for deploying microservices and exposing services, internal communication and attaching persistent volumes and persistent volume claim to the pods.
-
Detailed documentation outlining the project's architecture, design principles, and instructions for setup and execution
- Clone this repository
- Study the microservices source code and gain insights into their communication.
- Explore the CI/CD pipeline configuration files and understand the automation behind deployments.
- Review the Terraform script for creating the GKE cluster and understand how it aligns with the specified configurations.
- Examine the deployment yaml file to grasp the process of deploying microservices and exposing services.
- Dive into the detailed documentation to gain a comprehensive understanding of the project's architecture and design principles.