Cloud Native Bangkok Community Group #02

Blog จดๆระหว่าง Merge นั่งลุ้นๆ CI เหมือนกันว่า Merge จะ fail ไหม หัวข้อที่จดๆ แบบไวๆตามนี้

Bringing Agentic AI to Kubernetes by Leon Nunes

Speaker Leon Nunes

สำหรับ Session นี้อาจจะน้อยนึงนึงแยกร่างไม่ทันระหว่างแก้ merge confict + test ที่พังครับ โดยรวมๆ จะบอกว่าตัว Kube มันเอา AI มาช่วยได้นะ อารมณ์เหมือนมองว่า ให้ AI เข้ามาช่วยแก้ปัญหาจุกจิกใน Kube เช่น อยากรู้ข้อมูล เราเอา AI Endpoint มาเชื่อม + ลง Tools โดยมีตัวหลายตัวที่แยกร่างจดๆ ตามนี้

  • kagent - เครื่องมือเอา AI มาช่วยจัดการ K8S ให้ง่ายขึ้น เช่น Automate Workflow / Troubleshooting นอกจากนี้มี kmcp ที่เอามาช่วยจัดการ mcp server
  • kgateway - เครื่องมือที่ช่วยทำ Ingress Controller และ API Gateway พวก authen/ author และ rate limitin ยังมีพวก AI Gateway ป้องกันการใช้ LLM ที่ไม่เหมาะสม จัดการ traffic ไปยัง LLM providers
  • agentgateway - เป็นเครื่องมือที่ช่วยเหมือนเป็น Adapter ช่วยทำเรื่องagent และ tool ใดๆ ที่รองรับ Protocal A2A และ MC ได้ง่าย สะดวก

Resource: https://github.com/afro-coder/openinfra-vietnam/tree/main

Introduce new certification Cloud Native Platform Engineering Associate (CNPA)

Speaker Sharkrit Impat

Session นี้มาแนะนำ Cert ใหม่อย่างตัว Cloud Native Platform Engineering Associate (CNPA) ว่ามันเป็นอย่างไร และต้องเรียนรู้อะไรบ้างขึ้นไป โดยหลักๆ เรียกว่า Buzzword มาเต็มครับ จากสาย DevOps โดยเราต้องรู้ว่าการจัดการพวก Resource เป็นอย่างไรด้วย Script / การทำ CI CD รวมถึงการจัดการสิทธิ Security ต่างๆ อย่าง Concept Zero Trust / การทำ Feature Flag หรือ การจัดการ Goverance อย่าง การใช้ Policy จาก openpolicyagent

ส่วนเรื่องอื่นๆของ Platform Engineering ตอนที่แล้วมีจดๆไว้นะ

แต่สิ่งที่สำคัญเราทำอะไรก็ตาม เน้นให้มี Self Service และทำให้ Dev ที่เป็น User หลัก Happy

GitOps with ArgoCD

Speaker Jaruwat Panturat

DevOps เป็น Culture ที่ช่วยให้สามารถตอบสนองกับการเปลี่ยนแปลงได้ไว

GitOps เป็นท่านึงใน DevOps ที่เอามาช่วยให้มันได้ตาม Goal โดยใช้ Git เป็น Single Source Of Truth โดยมี 4 สิ่งที่สำคัญ

  • Declarative - ปลายทางเป็นอย่างไร บอกเลยว่าสุดท้ายอยากให้มีอะไร แบบไหน (Desire State) ไม่ต้องบอกขั้นตอน นึกพวก kube object ต่างๆ deployment บราๆ
  • Veserioned + Immutable - แยกชัดเจน เอาของเดิมมาทำซ้ำได้แบบเดิม ใช่แล้ว Git ตอบโจทย์
  • Automated Deployment
    - Push based - เวลา Code เปลี่ยน มันจะมี Agent ทำให้ Build + Deploy ตามชั้นตอน
    - Pull based - Build เหมือนเดิม แต่ตอน Deploy มี Agent อีกตัวมาดู แล้วดึงไปติดตั้ง GitOps จะเป็นแบบ Pull based เป็นหลักมันจะทำ Continuously Reconcile
  • Continuously Reconcile - ถ้ามีใครมือบอนไปแก้ เช่น มีคนไปลบ Deploment บางตัว ตัว Agent มันต้องตรวจเกิด drift กับ Git แล้วมาปรับให้เหมือนเดิม

โดยจุดเด่น GitOps - Git + ง่าย มีการติดตาม Desire State + มีการติดตาม Version ได้ชัดเจน แต่มีความซับซ้อนมากขึ้น อาทิ เช่น

  • การจัดการ Secret ถ้าบาปหน่อย Commit ลงไป แต่ควรใช้ Secret Managerment
  • การจัดการ Source Control มีกี่ Repo สำหรับ Microservice แต่ละตัว
  • GitOps จะเน้นในส่วน CD ส่วนการคุม Quality อยู่ใน CI ต้องพิจารณาเสริม หรือ การติดตาม OBS

Tools ที่นำเสนอจะเป็นตัว ArgoCD มาจัดการGitOps ถ้าตัวระบบมีลำดับเอา Sync-Wave มาช่วยได้โดยในกลุ่ม OpenSource ของ Argo มีอีกหลายตัว เช่น Argo Workflow / Argo Rollouts จัดการ Deploment Progressive / bluegreen deployment และ Agro Events จากนั้นจะเป็น Demo นิดหน่อย

นอกจาก ArgoCD ก็มี FluxCD จดเสร็จไม่ได้ใช้ ArgoCD มานานเลย ใช้แต่ Portainer อย่างเดียวเลย

Resource Introduction to GitOps (LFS169) นอกจากนี้มีครอสอื่นด้วย / https://killercoda.com/argo / https://learning.codefresh.io/course/gitops-fundamentals (เสียเงิน) / free ebook argo cd up & running

Cert - CGOA / CAPA

Beyond CPU and Memory: Event-driven Autoscaling with KEDA

Speaker Songpon Lekpetch

การออกแบบของระบบที่ Speaker ดูแลท่าเป็น Async ทั้งหมดที่มี Queue มาคั่น ปัญหาที่เจอกว่าระบบ Scale ทัน / User เจอปัญหาเรียบร้อยก่อนแล้ว คิวมันล้นก่อน จากนั้น CPU + Mem พุ่งตาม

ดังนั้นเลยปรับ Idea การ scale จากการดู CPU + Mem เอาพวก Queue มาช่วย หรือ Metric จาก OBS มาช่วย โดย Tools ที่เอามาใช้ KEDA ที่มาช่วยเสริมให้ตัว HPA มันฉลาดมากขึ้น

KEDA มันทำอะไรได้บ้าง ?

  • ScaledObject พวก Deployment, StatefulSet ได้ยืนว่าใช้กับพวก Argo Rolloutได้นะ
  • ScaledJob สำหรับ batch processing, background job

นอกจากนี้ตัว KEDA มันจัดการครบ ทั้งเชื่อมกับอะไร (scaleTargetRef) เริ่ม Sclale จากอะไร (triggers resource) การอ่านข้อมูล triggers resource เข้าถึงอย่างไร (authenticationRef) รวมถึงถ้าสะดุดทำอย่างไร (fallback) รวมการกำหนดรายละเอียดการ Scale (behavoir + polices)

รองรับ Scale to Zero ถ้าอยากรู้ว่า KEDA มันเชื่อมอะไรได้บ้างดูจาก doc ได้เลย

Use Case ที่ใช้จริง

  • Queue Based - ดูจาก Queue แล้วตัดสินใจ Scale เช่น พวก Kafka / RabbitMQ
  • HTTP Based เอาค่าจาก OBS จำนวน Request หรือ Latency แล้วให้ ScaleObject จัดการ เพิ่ม Deploment Pod ได้
  • Batch Job - ตาม Event ใช้ ScaledJob

จากนั้นเป็น Demo ครับ สุดท้ายอันนี้เราต้องเข้าใจ Character ของ App + Arch ที่ใช้ จะได้เลือกท่า Scale ที่เหมาะสมได้ อย่างท่านี้เอาพวก Queue มาเป็น Indicator

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.