เข้าใจ G-Cloud and GitHub Action

Watcharaphan Pongpan
Artisan Digital
Published in
3 min readSep 16, 2020

หลังจาก Ep ที่แล้ว เราได้เรียนรู้เกี่ยวกับการนำโปรแจคขึ้น Docker เพื่อที่จะเราไปเปิดได้ทุกๆใน Local ของเครื่องแล้ว ครั้งนี้ผมจะมาแนะนำเครื่องมือในการ deploy หรือนำเอา application ของเราขึ้นไว้บน cloud server แบบที่เข้าใจง่ายๆกัน เพื่อการนำไปมอบให้แก่ลูกค้าหรือนำไปใช้เองก็ได้ครับ

เครื่องมือที่เราจะนำมาแนะนำมีดังต่อไปนี้ครับ

Google Cloud Platform (G-Cloud)

เราจะมาทำความรู้จักกับ G-Cloud กันเลย:

สามารถดูข้อมูลเพิ่มเติมได้ที่นะ Cloud Build

อะไรคือ cloud service?

  • cloud service คือบริการที่ให้เราสามารถที่จะนำ application ที่เราทำเสร็จแล้วหรือ ส่วนที่มั่นใจว่าจะไม่มีการแก้ไปว้บนเครื่อง computer ของทางองค์กรนั้นๆ โดยเครื่องขององค์กรส่วนใหญ่จะเป็น Linux base หรือเป็นเครื่องที่เป็น Linux OS นั้นเองครับ หากท่านผู้อ่านที่กำลังใช้ Linux อยู่หละก็การใช้ cloud service ก็อาจจะดูคล้ายๆกับคำสั่งหลายๆคำสั่งที่กำลังใช้บน computer ของท่าน
  • ให้ทำความเข้าใจเมื่อเราได้ซื้อ service นี้มามันก็เหมือนการที่เราได้ซื้อ computer เครื่องใหม่นั้นแหละครับ โปรแกรมที่จำเป็นจะต้องใช้ในการ build project ก็ยังคงต้องใช้เหมือนเดิมอยู่ เช่น docker นะครับ เพียงแต่เราเอา image ของมันขึ้นไปอยู่บน cloud ข้อมูลเพิ่มเติมสามารถอ่านได้ที่นี้ครับ
  • ดังนั้นในโปรแจคของเราจึงควรที่จะมีไฟล์ที่เอาไว้บอกคำสั่งว่าเมื่อเราทำการ push commit ไปบน GitHub/Git lab ของเราว่าให้ cloud build ทำยังไงต่อไป นั้นก็คือ Dockerfile และ .yaml ของเรานั้นเองนะครับ หากเรามี project stage มากกว่าหนึ่งอัน เช่น มี dev server ที่เอาไว้ test ภายใน กลุ่มผู้พัฒนา และมีอีกอันที่เป็น staging หรือ final product ที่นำส่งลูกค้าการตั้งค่าจึงสำคัญมากที่ควรจะมีการ config หรือตั้งค่าคำสั่งเอาไว้เพื่อให้เข้ากับ stage ของโปรแจคนั้นๆ
ไฟล์ YAML
dockerfile

GitHub Action

อะไรคือ GitHub Action?

#ข้อมูลเพิ่มเติม

ต่อจากนี้ไปจะขอเรียนว่า “Actions” นะครับ

repository workflow
  • สิ่งที่เห็นอยู่ในรูปข้างบน คือ workflow ของ Actions จากที่เห็นก็สามารถที่จะเข้าใจได้ว่าการทำงานมันเป็นยังไง แต่ผมจะขออธิบายให้ละเอียดและเข้าใจง่ายๆเพิ่มนะครับ ผมจะคิดว่าทุกคนรู้วิธีใช้ Git อยู่แล้วนะครับ หากยังไม่รู้ คลิกตรงนี้ เพื่อไปอ่าน บทความก่อนหน้านี้ได้เลยครับ

Actions คือ ชุดคำสั่งที่เราสามารถสั่งให้ GitHub ของเราทำอะไรหลังจากขึ้นสั่งต่างๆ เช่น pull, push, commit. ตัวอย่างที่คิดได้ง่ายๆเลยก็คือ การผูกฟังชั่นกับ docker ในทุกครั้งที่เรา “push” ให้ run unit test-script ของโปรแจค ด้วยไฟล์ที่เตรียมไว้

หลังจากมี repository แล้ว เราสามารถที่จะ set configuration ได้ใน tab  “Actions”

สิ่งที่เราจะได้เห็นคือ

ในแต่ละบรรทัดจะมีความหมายของมันเอง

เราสามารถเลือกที่จะทำ Actions ใน branch ไหนก็ได้ใน repository ของเรา

ตั้งชื่อให้ตรงกับสิ่งที่เราจะใช้เช่น หากเราจะทำการ test ก็ให้ตั้งชื่อว่า test: อย่าลืมตั้งชื่อ jobs แต่ละ job ด้วยนะครับ

ในแต่ละ step ควรจะมีชื่อ และคำสั่ง run ก็สามารถที่จะนำ command มายังใส่ได้เลยครับ

ในที่สุดเราก็เดินทางมาถึงสุดทางแล้วครับของการทำความเข้าใจในบทความนี้ บทความนี้อาจจะไม่มี วิธีการทำแบบ step by step นะครับ แต่หากเรามีความเข้าแล้วว่าทั้งสองอย่างนี้จะนำใช้ร่วมกันอย่างไร ง่ายๆตามภาพนี้เลยนะครับ

นี้คือการทำให้เราสามารถที่จะประหยัดเวลาในการ deploy project หรือ แม้กระทั่ง run unit test ก็ได้นะครับ โดยใช้สิ่งที่เราเรียกว่า Automate script มาช่วยให้เราไม่ต้องพิมพ์ command บ่อยๆ และลดความผิดพลาดจากการพิมพ์ด้วยนะครับ

สำหรับบทความนี้ สวัสดีครับ

--

--