From d4555d241ab3d963d61698efe6b28adc04d7c51d Mon Sep 17 00:00:00 2001 From: hiiruki Date: Sun, 10 Sep 2023 14:59:44 +0700 Subject: [PATCH] writeups/google-cloudskillsboost: [GSP319] Build a Website on Google Cloud --- .../GSP319/images/export variable.webp | Bin 0 -> 30448 bytes .../GSP319/images/fancy store.webp | Bin 0 -> 9974 bytes .../GSP319/images/kubectl get services.webp | Bin 0 -> 15098 bytes .../GSP319/images/kubectl get svc.webp | Bin 0 -> 24850 bytes .../GSP319/images/labs variable.webp | Bin 0 -> 13038 bytes .../google-cloudskillsboost/GSP319/index.md | 359 ++++++++++++++++++ 6 files changed, 359 insertions(+) create mode 100644 content/writeups/google-cloudskillsboost/GSP319/images/export variable.webp create mode 100644 content/writeups/google-cloudskillsboost/GSP319/images/fancy store.webp create mode 100644 content/writeups/google-cloudskillsboost/GSP319/images/kubectl get services.webp create mode 100644 content/writeups/google-cloudskillsboost/GSP319/images/kubectl get svc.webp create mode 100644 content/writeups/google-cloudskillsboost/GSP319/images/labs variable.webp create mode 100644 content/writeups/google-cloudskillsboost/GSP319/index.md diff --git a/content/writeups/google-cloudskillsboost/GSP319/images/export variable.webp b/content/writeups/google-cloudskillsboost/GSP319/images/export variable.webp new file mode 100644 index 0000000000000000000000000000000000000000..ca843aa19775bd0be7957bd436b89f095afd38bf GIT binary patch literal 30448 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�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 A#{d8T literal 0 HcmV?d00001 diff --git a/content/writeups/google-cloudskillsboost/GSP319/images/fancy store.webp b/content/writeups/google-cloudskillsboost/GSP319/images/fancy store.webp new file mode 100644 index 0000000000000000000000000000000000000000..6fa038ff161165c8c1e8b58a818f2d7dcadd1bc9 GIT binary patch literal 9974 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 literal 0 HcmV?d00001 diff --git a/content/writeups/google-cloudskillsboost/GSP319/images/labs variable.webp b/content/writeups/google-cloudskillsboost/GSP319/images/labs variable.webp new file mode 100644 index 0000000000000000000000000000000000000000..c13ea8fc85ea8521c61b7d211654dad4c2f19fcf GIT binary patch literal 13038 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 literal 0 HcmV?d00001 diff --git a/content/writeups/google-cloudskillsboost/GSP319/index.md b/content/writeups/google-cloudskillsboost/GSP319/index.md new file mode 100644 index 0000000..87f4d4f --- /dev/null +++ b/content/writeups/google-cloudskillsboost/GSP319/index.md @@ -0,0 +1,359 @@ +--- +title: "[GSP319] Build a Website on Google Cloud: Challenge Lab" +description: "" +summary: "Build a Website on Google Cloud" +date: 2023-05-19T03:30:03+07:00 +draft: false +author: "Hiiruki" # ["Me", "You"] # multiple authors +tags: ["writeups", "challenge", "google-cloudskillsboost", "gsp319", "google-cloud", "cloudskillsboost", "juaragcp", "google-cloud-platform", "gcp", "cloud-computing", "kubernetes", "container", "microservice"] +canonicalURL: "" +showToc: true +TocOpen: false +TocSide: 'right' # or 'left' +weight: 9 +# aliases: ["/first"] +hidemeta: false +comments: false +disableHLJS: true # to disable highlightjs +disableShare: true +hideSummary: false +searchHidden: false +ShowReadingTime: true +ShowBreadCrumbs: true +ShowPostNavLinks: true +ShowWordCount: true +ShowRssButtonInSectionTermList: true +# UseHugoToc: true +cover: + image: "" # image path/url + alt: "" # alt text + caption: "" # display caption under cover + relative: false # when using page bundles set this to true + hidden: true # only hide on current single page +# editPost: +# URL: "https://github.com/hiiruki/hiiruki.dev/blob/main/content/writeups/google-cloudskillsboost/GSP319/index.md" +# Text: "Suggest Changes" # edit text +# appendFilePath: true # to append file path to Edit link +--- + +### GSP319 + +![](https://cdn.qwiklabs.com/GMOHykaqmlTHiqEeQXTySaMXYPHeIvaqa2qHEzw6Occ%3D#center) + +- Time: 1 hour 30 minutes
+- Difficulty: Intermediate
+- Price: 5 Credits + +Lab: [GSP319](https://www.cloudskillsboost.google/focuses/11765?parent=catalog)
+Quest: [Build a Website on Google Cloud](https://www.cloudskillsboost.google/quests/115)
+ +## Challenge lab scenario + +You have just started a new role at FancyStore, Inc. + +Your task is to take the company's existing monolithic e-commerce website and break it into a series of logically separated microservices. The existing monolith code is sitting in a GitHub repo, and you will be expected to containerize this app and then refactor it. + +You are expected to have the skills and knowledge for these tasks, so don't expect step-by-step guides. + +You have been asked to take the lead on this, after the last team suffered from monolith-related burnout and left for greener pastures (literally, they are running a lavender farm now). You will be tasked with pulling down the source code, building a container from it (one of the farmers left you a Dockerfile), and then pushing it out to GKE. + +You should first build, deploy, and test the Monolith, just to make sure that the source code is sound. After that, you should break out the constituent services into their own microservice deployments. + +Some FancyStore, Inc. standards you should follow: + +- Create your cluster in `us-central1`. +- Naming is normally *team-resource*, e.g. an instance could be named **fancystore-orderservice1**. +- Allocate cost effective resource sizes. Projects are monitored and excessive resource use will result in the containing project's termination. +- Use the `n1-standard-1` machine type unless directed otherwise. + +## Your challenge + +As soon as you sit down at your desk and open your new laptop, you receive the following request to complete these tasks. Good luck! + +## Setup + +Export the following variables in the Cloud Shell: + +```bash +export MONOLITH_IDENTIFIER= +export CLUSTER_NAME= +export ORDERS_IDENTIFIER= +export PRODUCTS_IDENTIFIER= +export FRONTEND_IDENTIFIER= +``` + +from the labs variables, you can copy the value of each variable and paste it in the cloud shell + +![labs variable](./images/labs%20variable.webp#center) + +> **Note**: Don't forget to replace the value of each variable with the value of the labs variable + +like this +![export variable](./images/export%20variable.webp#center) + +> **Note**: Don't forget to enable the API's + +```bash +gcloud services enable cloudbuild.googleapis.com +gcloud services enable container.googleapis.com +``` + +### Task 1: Download the monolith code and build your container + +First things first, you'll need to [clone your team's git repo](https://github.com/googlecodelabs/monolith-to-microservices.git). + +```bash +git clone https://github.com/googlecodelabs/monolith-to-microservices.git +``` + +There's a `setup.sh` script in the root directory of the project that you'll need to run to get your monolith container built up. + +``` bash +cd ~/monolith-to-microservices + +./setup.sh +``` + +After running the setup.sh script, ensure your Cloud Shell is running its latest version of nodeJS. + +```bash +nvm install --lts +``` + +There's a Dockerfile located in the `~/monotlith-to-microservices/monolith` folder which you can use to build the application container. Before building the Docker container, you can preview the monolith application on **port 8080**. + +> Note: You can skip previewing the application if you want to, but it's a good idea to make sure it's working before you containerize it. + +```bash +cd ~/monolith-to-microservices/monolith + +npm start +``` + +`CTRL+C` to stop the application. + +You will have to run Cloud Build (in that monolith folder) to build it, then push it up to GCR. Name your artifact as follows: + +- GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT} +- Image name: `MONOLITH_IDENTIFIER` +- Image version: 1.0.0 + +```bash +gcloud services enable cloudbuild.googleapis.com + +gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/${MONOLITH_IDENTIFIER}:1.0.0 . +``` + +### Task 2: Create a kubernetes cluster and deploy the application + +Create your cluster as follows: + +- Cluster name: `CLUSTER_NAME` +- Region: us-central1-a +- Node count: 3 + +```bash +gcloud config set compute/zone us-central1-a + +gcloud services enable container.googleapis.com + +gcloud container clusters create $CLUSTER_NAME --num-nodes 3 + +gcloud container clusters get-credentials $CLUSTER_NAME +``` + +Create and expose your deployment as follows: + +- Cluster name: `CLUSTER_NAME` +- Container name: `MONOLITH_IDENTIFIER` +- Container version: 1.0.0 +- Application port: 8080 +- Externally accessible port: 80 + +```bash +kubectl create deployment $MONOLITH_IDENTIFIER --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/${MONOLITH_IDENTIFIER}:1.0.0 + +kubectl expose deployment $MONOLITH_IDENTIFIER --type=LoadBalancer --port 80 --target-port 8080 +``` + +Make note of the IP address that is assigned in the expose deployment operation. Use this command to get the IP address: + +```bash +kubectl get service +``` + +![kubectl get service](./images/kubectl%20get%20services.webp#center) + +You should now be able to visit this IP address from your browser and see the following: + +![fancy store](./images/fancy%20store.webp#center) + +### Task 3. Create new microservices + +Below is the set of services which need to be containerized. Navigate to the source roots mentioned below, and upload the artifacts which are created to the Google Container Registry with the metadata indicated. Name your artifact as follows: + +**Orders Microservice** + +- Service root folder: `~/monolith-to-microservices/microservices/src/orders` +- GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT} +- Image name: `ORDERS_IDENTIFIER` +- Image version: 1.0.0 + +```bash +cd ~/monolith-to-microservices/microservices/src/orders + +gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/${ORDERS_IDENTIFIER}:1.0.0 . +``` + +**Products Microservice** + +- Service root folder: `~/monolith-to-microservices/microservices/src/products` +- GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT} +- Image name: `PRODUCTS_IDENTIFIER` +- Image version: 1.0.0 + +```bash +cd ~/monolith-to-microservices/microservices/src/products + +gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/${PRODUCTS_IDENTIFIER}:1.0.0 . +``` + +### Task 4: Deploy the new microservices + +Deploy these new containers following the same process that you followed for the `MONOLITH_IDENTIFIER` monolith. Note that these services will be listening on different ports, so make note of the port mappings in the table below. Create and expose your deployments as follows: + +**Orders Microservice** + +- Cluster name: `CLUSTER_NAME` +- Container name: `ORDERS_IDENTIFIER` +- Container version: 1.0.0 +- Application port: 8081 +- Externally accessible port: 80 + +```bash +kubectl create deployment $ORDERS_IDENTIFIER --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/${ORDERS_IDENTIFIER}:1.0.0 + +kubectl expose deployment $ORDERS_IDENTIFIER --type=LoadBalancer --port 80 --target-port 8081 +``` + +**Products Microservice** + +- Cluster name: `CLUSTER_NAME` +- Container name: `PRODUCTS_IDENTIFIER` +- Container version: 1.0.0 +- Application port: 8082 +- Externally accessible port: 80 + +```bash +kubectl create deployment $PRODUCTS_IDENTIFIER --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/${PRODUCTS_IDENTIFIER}:1.0.0 + +kubectl expose deployment $PRODUCTS_IDENTIFIER --type=LoadBalancer --port 80 --target-port 8082 +``` + +Get the external IP addresses for the Orders and Products microservices: + +```bash +kubectl get svc -w +``` + +`CTRL+C` to stop the command. + +Now you can verify that the deployments were successful and that the services have been exposed by going to the following URLs in your browser: + +- `http://ORDERS_EXTERNAL_IP/api/orders` +- `http://PRODUCTS_EXTERNAL_IP/api/products` + +Write down the IP addresses for the Orders and Products microservices. You will need them in the next task. + +### Task 5. Configure and deploy the Frontend microservice + +>**Note**: You can use the lab method or use my method. **Choose one that suits you**. + +1. My method (Using [sed](https://linux.die.net/man/1/sed) (stream editor) and using one-line command) + +```bash +export ORDERS_SERVICE_IP=$(kubectl get services -o jsonpath="{.items[1].status.loadBalancer.ingress[0].ip}") + +export PRODUCTS_SERVICE_IP=$(kubectl get services -o jsonpath="{.items[2].status.loadBalancer.ingress[0].ip}") +``` + +```bash +cd ~/monolith-to-microservices/react-app +sed -i "s/localhost:8081/$ORDERS_SERVICE_IP/g" .env +sed -i "s/localhost:8082/$PRODUCTS_SERVICE_IP/g" .env +npm run build +``` + +2. The lab method (Using [nano](https://linux.die.net/man/1/nano) text editor) + +Use the `nano` editor to replace the local URL with the IP address of the new Products microservices. + +```bash +cd ~/monolith-to-microservices/react-app +nano .env +``` + +When the editor opens, your file should look like this. + +```bash +REACT_APP_ORDERS_URL=http://localhost:8081/api/orders +REACT_APP_PRODUCTS_URL=http://localhost:8082/api/products +``` + +Replace the `REACT_APP_ORDERS_URL` and `REACT_APP_PRODUCTS_URL` to the new format while replacing with your Orders and Product microservice IP addresses so it matches below. + +```bash +REACT_APP_ORDERS_URL=http:///api/orders +REACT_APP_PRODUCTS_URL=http:///api/products +``` + +Press **CTRL+O**, press **ENTER**, then **CTRL+X** to save the file in the `nano` editor. Now rebuild the frontend app before containerizing it. + +```bash +npm run build +``` + +### Task 6: Create a containerized version of the Frontend microservice + +The final step is to containerize and deploy the Frontend. Use Cloud Build to package up the contents of the Frontend service and push it up to the Google Container Registry. + +- Service root folder: `~/monolith-to-microservices/microservices/src/frontend` +- GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT} +- Image name: `FRONTEND_IDENTIFIER` +- Image version: 1.0.0 + +```bash +cd ~/monolith-to-microservices/microservices/src/frontend + +gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/${FRONTEND_IDENTIFIER}:1.0.0 . +``` + +### Task 7: Deploy the Frontend microservice + +Deploy this container following the same process that you followed for the **Orders** and **Products** microservices. Create and expose your deployment as follows: + +- Cluster name: `CLUSTER_NAME` +- Container name: `FRONTEND_IDENTIFIER` +- Container version: 1.0.0 +- Application port: 8080 +- Externally accessible port: 80 + +```bash +kubectl create deployment $FRONTEND_IDENTIFIER --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/${FRONTEND_IDENTIFIER}:1.0.0 + +kubectl expose deployment $FRONTEND_IDENTIFIER --type=LoadBalancer --port 80 --target-port 8080 +``` + +```bash +kubectl get svc -w +``` + +`CTRL+C` to stop the command. + +![kubectl get svc](./images/kubectl%20get%20svc.webp#center) + +Wait until you see the external IP address and check the progress. + +## Congratulations! + +![](https://cdn.qwiklabs.com/tDSBmZi3kH7QdPue8oTiKmR0kVc3UTudveGazkCgmxw%3D#center)