Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save misskecupbung/6c913c19a85adc10d8f78bd3014b36ad to your computer and use it in GitHub Desktop.
Save misskecupbung/6c913c19a85adc10d8f78bd3014b36ad to your computer and use it in GitHub Desktop.

Task 1. Download the monolith code and build your container

git clone https://github.com/googlecodelabs/monolith-to-microservices.git

cd ~/monolith-to-microservices
./setup.sh

cd ~/monolith-to-microservices/monolith
npm start

gcloud services enable cloudbuild.googleapis.com
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-monolith-793:1.0.0 .

Task 2: Create a kubernetes cluster and deploy the application

gcloud config set compute/zone us-central1-a
gcloud services enable container.googleapis.com
gcloud container clusters create fancy-cluster-132 --num-nodes 3

kubectl create deployment fancy-monolith-793 --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-monolith-793:1.0.0
kubectl expose deployment fancy-monolith-793 --type=LoadBalancer --port 80 --target-port 8080

Task 3. Create new microservices

cd ~/monolith-to-microservices/microservices/src/orders
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-orders-158:1.0.0 .

cd ~/monolith-to-microservices/microservices/src/products
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-products-288:1.0.0 .

Task 4. Deploy the new microservices

kubectl create deployment fancy-orders-158 --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-orders-158:1.0.0
kubectl expose deployment fancy-orders-158 --type=LoadBalancer --port 80 --target-port 8081

kubectl create deployment fancy-products-288 --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-products-288:1.0.0
kubectl expose deployment fancy-products-288 --type=LoadBalancer --port 80 --target-port 8082

Task 5. Configure and deploy the Frontend microservice

kubectl get svc
cd ~/monolith-to-microservices/react-app
nano .env
...
REACT_APP_ORDERS_URL=http://<ORDERS_IP_ADDRESS>/api/orders
REACT_APP_PRODUCTS_URL=http://<PRODUCTS_IP_ADDRESS>/api/products
...

Task 6. Create a containerized version of the Frontend microservice

cd ~/monolith-to-microservices/microservices/src/frontend
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-frontend-751:1.0.0 .

Task 7. Deploy the Frontend microservice

kubectl create deployment fancy-frontend-751 --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/fancy-frontend-751:1.0.0
kubectl expose deployment fancy-frontend-751 --type=LoadBalancer --port 80 --target-port 8080
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment