หากเราเข้าสู่วงการทำงานสาย Dev หรือต้องทำงานร่วมกัน อาจเคยได้ยินคำว่า GitOps กันมาบ้าง ซึ่งก็ทำให้เกิดความสงสัยโดยเฉพาะผู้ที่ทำงานด้านอื่น ๆ มันคือโปรแกรมอะไร หรือจะเป็นศัพท์ทางเทคนิคกันแน่ เราไปดูและทำความเข้ากันให้หายสงสัยกันเลยดีกว่า
GitOps ก็คือ Concept ที่เกิดขึ้นเพื่อให้ผู้ใช้งานสามารถทำ CD (Continuous Delivery) ไปบน Cloud Native ได้ง่ายขึ้นหรือขั้นกว่าของ Infrastructure as Code นั่นคือข้อมูลทุกอย่างในการ Deploy โดยมีการใช้งานผ่าน Git ซึ่ง Concept ของ GitOps นั้นไม่ได้มีอะไรยุ่งยากแต่กลับเรียบง่ายมากก็คือ “เชื่อถือสิ่งที่อยู่บน Git”
เวลาที่เราทำ Infrastructure as a code เนี่ยมันดีตรงที่ว่าทุกอย่างถูกจัดการด้วย code ไม่ว่าจะสร้าง หรือจะลบอะไรมันช่างรวดเร็วเสียเหลือเกิน และเคยเบื่อกันไหมเมื่อเราทำการสร้าง config แล้วเอาไปใช้งาน แต่ว่ามันถูกแก้ไขไปในขณะที่ทำงานอยู่ staging หรือ production เท่านั้นยังไม่พอ เราดันลืมไปว่า config ที่เราแก้ไขไปมีอะไรบ้าง
พออ่านมาถึงตรงนี้ หลาย ๆ คนก็เริ่มมีข้อสงสัยหรืออาจมองไม่เห็นภาพว่าการทำงานของ GitOps เป็นยังไง ซึ่งจะแบ่งเป็น 2 ส่วน ให้เพื่อน ๆ ทุกคนทำความเข้าใจได้ง่าย ๆ โดยจะมีส่วน push กับส่วน pull deploymeny ดังนี้
ในส่วนนี้จะเหมือนกับการทำงานของ CD ปกติที่มี trigger deploy ไปยังที่ต่าง ๆ เช่น Gitlab CI หรือ Jenkins ก็คือ เมื่อ Code ที่อยู่บน Git เปลี่ยน จะมี trigger ทำการ deploy ไปยัง cluster นั่นเอง
ในส่วนนี้จะมี Operator คอยตรวจสอบว่าบน cluster ของเราต่างกับ Code บน Git ไหม ซึ่งถ้าเกิดมีจุดที่แตกต่างก็จะเอา code จาก Git deploy ขึ้นไปใหม่ทันที
และนี่ก็เป็นสาระความรู้ที่นำมาฝากเพื่อน ๆ ในเรื่องของ GitOps ที่มาตอบข้อสงสัยให้ทุกคนกัน หากใครมีเรื่องอะไรที่อยากรู้หรือต้องการให้น้องสุกิไปหาคำตอบมาให้ ทักเข้ามาพูดคุยกันได้เลยนะ
และอย่าลืมติดตามน้องสุกิผ่านช่องทางอื่น ๆ ด้วยล่ะ Facebook และ Youtube