รู้จัก Anthos Developer Sandbox ใน 5 นาที (จริงหรอ?)


รู้จัก Anthos Developer Sandbox ใน 5 นาที (จริงหรอ?)

5 นาทีน่ะขี้โม้ แค่ผ่านไป 3 นาที error ไป 2 รอบ 55555

Blog นี้เริ่มมาจากผมได้ share บทความเรื่องนี้ในเฟสบุ๊คส่วนตัว โดยไม่ได้อ่านรายละเอียดทั้งหมดคิดว่า Anthos Developer Sandbox คงเป็น Anthos Platform Sandbox ที่ Google ให้มาใช้ก่อนล่ะมั้ง แต่ที่ไหนได้ กลับไปไปอ่านบทความต้นทางใหม่ถึงได้ถึงบางอ้อ Introducing the Anthos Developer Sandbox — free with a Google account หน้าแตกยับเลย ขอแก้ตัวเขียน blog ไว้เป็นการเตือนตัวเองและให้เพื่อนๆได้เข้าใจไปด้วยเลย


เรามาทำความรู้จักเจ้า Anthos Developer Sandbox ไปพร้อมกันเลยครับ สิ่งแรกที่เราต้องรู้เลยคือเจ้านี่ Google แยกจด domain มาไว้ที่ https://anthos-sandbox.dev/ แยกเป็นเอกเทศไม่ได้อยู่รวมกันกับ Google Cloud Platform

เริ่มต้นใช้งานเมื่อเราเข้าไปที่ https://anthos-sandbox.dev/ แล้วอ่านคำอธิบายเบื้องต้นได้ความว่า เจ้านี่คือ cloud-based development environment ที่จะคุณเรียนรู้ว่าเราจะ dev งานบน Anthos อย่างไรให้ cool ๆ ควรทำยังไง เพราะอย่างที่รู้กันจักรวาล Anthos มันกว้างใหญ่มาก ทั้ง Istio, Service Mesh, …. การที่ Google ทำ Dev Environment มาให้ใช้เฉพาะทางเลยก็คงไม่แปลกและจะได้สะดวกขึ้นด้วย

เข้าไปดูกันต่อว่าส่วนประกอบหลักๆของ Anthos Developer Sanbox มันมีอะไรบ้าง กดที่ปุ่ม Open in Google Cloud Shell กันได้เลย จะพบกับสิ่งแรกคือ Cloud Shell

1. Cloud Shell ใครที่ใช้งาน Google Cloud อยู่แล้วจะคุ้นชินกับ Cloud Shell เป็นอย่างดี และที่สำคัญ มันคือ instant เดียวกันเลยกับ Cloud Shell ใน Google Cloud Platform ( GCP ) เคยใช้อะไรไว้ใน Cloud Shell GCP ก็จะเห็นเหมือนกันเด๊ะ แค่จะมี UI แต่ต่างกันเล็กน้อย สีล่ะอย่างหนึ่งละที่ default มาแล้วไม่เหมือน ฝั่ง Anthos Developer Sanbox จะพื้นขาวและมี feature split terminal มาให้ ดูรูปปลากรอบ

Cloud Shell ที่เปิดจาก Anthos Developer Sandbox

Cloud Shell บน Google Cloud Platform

2. Cloud Code ว่ากันง่ายๆก็ Editor สำหรับเขียน code นั่นแหล่ะแต่ทำงานได้บน Cloud เลย ส่วนนี้ผมเริ่มเห็นแววว่า Google พยายามจูงใจให้ Developer ทำงานได้สะดวกขึ้น ไม่ต้องไปเปิด Editor ที่ใช้กันในเครื่องตัวเองใช้เครื่องใครก็ Code ได้แก้งานได้ Debug ได้ และยังทำให้ Run Code ได้ทั้งใน Kubernetes, Cloud Run Emulator จบไปถึงการ Deploy เลย

Cloud Code

New,Run,Debug,Deploy

ตัว Cloud Code เอง Built มาจาก Eclipse Theia ซึ่งถูก Extend ไปใช้ในหลายๆที่เช่นกัน ยกตัวอย่างเช่นบน Gitpod

3. Minikube ตรงนี้ส่วนตัวผมชอบเลยเพราะ Minikube มันคือ Single Node Kubernetes Cluster เรียกง่ายๆว่าเราไม่ต้องสร้าง Cluster ตัวใหญ่ๆบน Google Kubernetes Engine เราก็ทดลองใช้งาน Kubernetes Cluster เล็กๆของเราบน ​Cloud Shell ได้เลย เราเช็ค Minikube status ได้จาก status bar ว่า Minikube ของเรา Stop อยู่หรือไม่

status bar

ถ้า Stop อยู่ก็จัดการ Start ซะ ขั้นตอนเริ่มใช้งานก็ไม่ยุ่งยาก กดตรง Minikube ที่ Status bar นั่นแหล่ะ หรือใช้ command line สั่ง Start Minikube พร้อมกับทดลอง run application cloud-run-dev-internal ด้วย command

$ minikube start -p \ cloud-run-dev-internal

minikube ready

*** ตรงนี้ถ้าใคร provisioning instant มาแล้วยังไม่มี cloud-run-dev-internal ให้ git clone https://github.com/GoogleCloudPlatform/anthos-developer-sandbox มาก่อน แล้วค่อยเปลี่ยน workspace ไปที่ anthos-developer-sandbox

ทดสอบ Run app เราที่ minikube ของเราได้โดย กดที่ Cloud Code ที่ Status bar ด้านล่าง

Cloud Code

จากนั้นให้เลือกที่ Run on Kubernetes กด Yes เพื่อ Confirm การ Run บน minikube

ใครใคร่แกะ skafford ก็ดูต่อว่า build / run app ตัวนี้ยังไงนะครับ หลังจาก build และ run เสร็จแล้วเราจะได้ output ออกมาที่ tab Output กดที่ Open Web Preview จาก Forwarded URL เพื่อเข้าไปดูหน้า application Hello World ของเรา

Open Web Preview

Hello, World!

4. Cloud Build Local Builder ส่วนประกอบสุดท้ายส่วนนี้มันคือ Continuous Integration ที่เอาไว้ Build application บน Cloud Shell ได้เลยผ่านทาง command cloud-build-local

มาทดสอบกันโดยเราจะลอง build application ของเราอีกทีด้วย command ด้านล่างนี้ ดูเหมือนง่ายนิ

$ cloud-build-local — dryrun=false .

Local Build

แต่…… มัน FAILED เพราะติด assert test ที่ต้องการให้ response Hello, Anthos! เห็นเช่นนี้แล้วเราก็ไปจัดการแก้สิ

แต่เดี๋ยวก่อน Cloud Code enable ของดีที่เรียกว่า iterative development ไว้ดังนั้นพอเรา แก้ไข code ที่ deploy ไปแล้วเราไม่จำเป็นต้อง redeploy อีก

มาดู application เป็น web app “Hello, world!” ง่อยๆ ที่อยุ่ในไฟล์ src/main.py ดังนั้นเราก็แค่ไปแก้จาก “Hello, world!” ให้เป็น “Hello, Anthos!” ซะ ตัว Cloud Code มันจะ Auto Save ให้ และก็จะเห็นว่าที่ tab Output จะเห็นว่ามีการ redeploy ให้เรา auto เลย

Build Succeeded

ควาวนี้ลองมา build กันอีกครั้งด้วย command

$ cloud-build-local — dryrun=false .

รอบนี้ test ก็ผ่านแล้วสวยงาม ขั้นตอนต่อไปเรามาลองใช้ Cloud Build Local ทำการ verify โดยใช้ command pack inspection-image เพื่อตรวจสอบ image ของเราก่อนที่เราจะเอาไป deploy ขึ้น Cloud Run

$ pack inspect-image \ anthos-sandbox-sample-application

pack inspect-image result

Build ก็แล้ว Verify ก็ทำไปแล้ว ตามปกติหากเราใช้ Anthos เราก็จะ Deploy ขึ้น Cloud Run เพื่อให้ใช้ประโยชน์ข้อดีของ Cloud Run ที่มีจัดการ Auto Scale ตอนใช้งานเยอะๆ หรือ Scale to Zero ตอนไม่ได้ใช้งาน แต่เพื่อความแน่ใจเรามา Simulate บน Cloud Run Emulator กันก่อนดีกว่า โดยเลือกที่ Cloud Code ที่ Status bar ด้านล่าง แล้วเลือกที่ Run on Cloud Run Emulator ที่ Output ก็จะ Build อีกครั้ง จากนี้ก็นั่งรอให้มัน Build ให้เสร็จตามรูปด้านล่าง

Cloud Run Emulator

ชี้ที่ http://localhost:8080 เพื่อกด Open Web Preview รอบนี้เราจะทำการเรียกใช้งาน application ผ่านทาง Cloud Run Emulator

พอถึงงานจริงหากเราทดสอบบน Cloud Run Emulator จนสาแก่ใจแล้ว เราสามารถเลือก Cloud Code และเลือก Deploy to Cloud Run เพื่อทำการ Deploy ได้ทันที สะดวกขึ้นกว่าเดิมจริงๆ Developer ไม่จำเป็นต้องเขียน Code ,Build , Run และ Deploy งานบนเครื่องตัวเองแล้วใช้งานบน Cloud ทุกกระบวนการให้เสร็จแล้วค่อย Deploy เข้า Cloud Run ไม่ว่าจะเป็นแบบ Fully managed หรือ Cloud Run for Anthos ได้

Deploy to Cloud Run

ใครบอก 5 นาที ผมน่ะสิๆ โม้จริงๆครับ ใช้เวลาทดสอบไปด้วยเขียน blog บันทึกไปด้วยหมดไปชั่วโมงกว่าๆ แต่คุ้มจริงๆ แนวทางของ Anthos Developer Sandbox นี้จะทำให้ Developer สะดวกขึ้นแน่นอนอีกทั้ง ไม่ต้องมา set environment (gcloud sdk, docker, …) บน laptop ของตัวเองก็สามารถพัฒนา application ที่จะเอาไป run บน Cloud Run ได้เลย

Written by Paripol Toopiroh

Cloud Ace Thailand

Make It Now!

หากคุณสนต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019

ติดต่อเรา

E. th_sales@cloud-ace.com

.