This project serves as a learning platform for understanding microservices architecture and service mesh implementation, particularly within the Azure ecosystem.
- Cloud Provider: Azure
- Infrastructure as Code (IaC): Terraform
- Continuous Integration and Continuous Deployment (CI/CD): GitLab
- Service Mesh: Istio
DOCKER_REGISTRY_REPO_NAME=yuyatinnefeld
IMAGE_NAME=hello-world:1.5.0
cd microservices/apps/hello-world-app
docker build -t $DOCKER_REGISTRY_REPO_NAME/$IMAGE_NAME .
docker run -d --rm -e MESSAGE="MY_DOCKER_MESSAGE" -e ENV="DEV" -p 8080:8080 $DOCKER_REGISTRY_REPO_NAME/$IMAGE_NAME
docker image push $DOCKER_REGISTRY_REPO_NAME/$IMAGE_NAME
cd microservices/deployment/hello-world-app
kubectl apply -f deployment-dockerhub.yaml
kubectl port-forward svc/hello-world-service 8080 &
- Create a Terraform Service Principals
- Define GitLab CI/CD Variables
- Configurate Terraform Service Principals
Execute the following commands to clean up resources:
az acr repository delete -n $CONTAINER_REGISTRY_NAME --image $IMAGE_NAME
az aks delete --name $MY_AKS_CLUSTER_NAME --resource-group $MY_RESOURCE_GROUP_NAME
az group delete -n $MY_RESOURCE_GROUP_NAME
az account management-group subscription remove --name $MANAGEMENT_GROUP --subscription $SUBSCRIPTION_NAME