The objective of this project is to show an orchestration architecture of a microfrontends monorepo for development and production environments, in addition to testing the sharing of libraries and utilities
-
3 packages were createds (NextJS, ReactJS e VueJS)
-
A package for sharing libraries/function/utilities has been created (shared) - NextJs and VueJs share it.
-
Development environment were used: Docker, Lerna e Nginx - You might want to see more details here.
-
Production environment were used: Kubernetes, Yarn workspaces e Istio - You might want to see more details here.
- Lerna
- Docker
- Docker compose
- Kubctl
- To deploy locally use: k3d
- To deploy cloud use: AWS-EKS-Terraform
yarn or npm install
docker-compose -f docker-compose-dev.yml up -d --build
k3d cluster create mycluster --servers 1 --agents 2 --port 9080:80@loadbalancer --port 9443:443@loadbalancer --api-port 6443 --k3s-server-arg '--no-deploy=traefik'
./istio-install-k3d.sh
- Deployments:
- k8s/istio-gateway-deployment.yml
- packages/nextjs-blog/k8s/deployment.yml
- packages/react-app/k8s/deployment.yml
- packages/vue-app/k8s/deployment.yml
apply all deployments: ./apply-all-deployments.sh
- kubctl get nodes
- kubctl get pods
- http://localhost:9080/ -> next-blog
- http://localhost:9080/react -> react-app
- http://localhost:9080/vue -> vue-app
./istio-install-tools.sh
- https://localhost:20001/ -> Kiali
- https://localhost:9090/ -> Prometheus
- https://localhost:3000/ -> Grafana
k3d cluster delete mycluster
- Harrisson Ricardo Biaggio