Header-sellsuki.webp
S E L L S U K I

ไขข้องสงสัย ทำความรู้จัก GitOps คืออะไร


10 Sep 2022

Share with :
0
GitOps

หากเราเข้าสู่วงการทำงานสาย Dev หรือต้องทำงานร่วมกัน อาจเคยได้ยินคำว่า GitOps กันมาบ้าง ซึ่งก็ทำให้เกิดความสงสัยโดยเฉพาะผู้ที่ทำงานด้านอื่น ๆ มันคือโปรแกรมอะไร หรือจะเป็นศัพท์ทางเทคนิคกันแน่ เราไปดูและทำความเข้ากันให้หายสงสัยกันเลยดีกว่า

GitOps คือ ?

GitOps ก็คือ Concept ที่เกิดขึ้นเพื่อให้ผู้ใช้งานสามารถทำ CD (Continuous Delivery) ไปบน Cloud Native ได้ง่ายขึ้นหรือขั้นกว่าของ Infrastructure as Code นั่นคือข้อมูลทุกอย่างในการ Deploy โดยมีการใช้งานผ่าน Git ซึ่ง Concept ของ GitOps นั้นไม่ได้มีอะไรยุ่งยากแต่กลับเรียบง่ายมากก็คือ “เชื่อถือสิ่งที่อยู่บน Git”

แผลจาก infrastructure as a code

เวลาที่เราทำ Infrastructure as a code เนี่ยมันดีตรงที่ว่าทุกอย่างถูกจัดการด้วย code ไม่ว่าจะสร้าง หรือจะลบอะไรมันช่างรวดเร็วเสียเหลือเกิน และเคยเบื่อกันไหมเมื่อเราทำการสร้าง config แล้วเอาไปใช้งาน แต่ว่ามันถูกแก้ไขไปในขณะที่ทำงานอยู่ staging หรือ production เท่านั้นยังไม่พอ เราดันลืมไปว่า config ที่เราแก้ไขไปมีอะไรบ้าง

ยกตัวอย่างปัญหาที่เจอ

  • Apply config ขึ้น cluster ไปแล้ว แต่จำไม่ได้ว่าทำอะไรไปบ้าง พอจะกลับมาทำก็ไม่รู้ว่าต้องทำตรงไหน
  • ใครมา Kubectl edit …. บน cluster เราจะไม่รู้เลย
  • และอื่นๆอีกมากมาย

ข้อดีของ GitOps

  • Deploy ได้อย่างรวดเร็ว
  • แก้ปัญหาได้อย่างรวดเร็ว
  • จัดการได้ง่าย ทุกอย่างที่เราทำ จะถูกเก็บอยู่ใน History ของ Git อยู่แล้ว ทำให้สามารถตรวจสอบได้ง่าย
  • ทุกอย่างอยู่บน Git สามารถทำให้ส่งต่อในทีมได้ง่าย

Gitops ทำงานอย่างไร

พออ่านมาถึงตรงนี้ หลาย ๆ คนก็เริ่มมีข้อสงสัยหรืออาจมองไม่เห็นภาพว่าการทำงานของ GitOps เป็นยังไง ซึ่งจะแบ่งเป็น 2 ส่วน ให้เพื่อน ๆ ทุกคนทำความเข้าใจได้ง่าย ๆ โดยจะมีส่วน push กับส่วน pull deploymeny ดังนี้

GitOps Push deployment

Push deployment

ในส่วนนี้จะเหมือนกับการทำงานของ CD ปกติที่มี trigger deploy ไปยังที่ต่าง ๆ เช่น Gitlab CI หรือ Jenkins ก็คือ เมื่อ Code ที่อยู่บน Git เปลี่ยน จะมี trigger ทำการ deploy ไปยัง cluster นั่นเอง

GitOps Pull deployment

Pull deployment

ในส่วนนี้จะมี operator คอยตรวจสอบว่าบน cluster ของเราต่างกับ code บน Git ไหม ซึ่งถ้าเกิดมีจุดที่แตกต่างก็จะเอา code จาก Git deploy ขึ้นไปใหม่ทันที

และนี่ก็เป็นสาระความรู้ที่นำมาฝากเพื่อน ๆ ในเรื่องของ GitOps ที่มาตอบข้อสงสัยให้ทุกคนกัน หากใครมีเรื่องอะไรที่อยากรู้หรือต้องการให้น้องสุกิไปหาคำตอบมาให้ ทักเข้ามาพูดคุยกันได้เลยนะ
และอย่าลืมติดตามน้องสุกิผ่านช่องทางอื่น ๆ ด้วยล่ะ Facebook และ Youtube