CNCF Kubernetes and Cloud-Native Associate (KCNA)
KCNA เป็น Certificate CNCF ระดับเริ่มต้นที่สอน:
- Landscape ของ Technology Cloud Native
- ส่วนประกอบหลักของ Kubernetes
- โครงการ CNCF จำนวนมากที่เกิดขึ้นอย่างรวดเร็ว เครื่องมือ Cloud-native
- ภาพรวมทั่วไปของความปลอดภัย การ Deploy และการ Monitor
- โครงสร้างและ Governance ของ CNCF และชุมชนอื่นๆ ของ Cloud-Native
Kubernetes เป็นหนึ่งใน Technology ที่ Hot ที่สุดในโลก!
คนที่จะเหมาะสำหรับ CNCF KCNA หาก...:
- คุณยังใหม่ใน Cloud-native และ Kubernetes และอยากเรียนรู้ขั้นพื้นฐาน
- คุณอยู่ในระดับผู้บริหาร Management หรือ Sale และอยากรู้ข้อมูลเชิงกลยุทธ์เกี่ยวกับ Cloud-native สำหรับการนำไปใช้หรือการ Migrate
- คุณเป็นวิศวกร Cloud อาวุโส หรือ Solution Architect ที่อยากเพิ่มความรู้ Kubernetes และ Cloud-Native อย่างรวดเร็ว
CNCF KNCA เป็นการสอบที่ยากสำหรับมือใหม่ คุณจะต้องมีทั้ง Hands On และความรู้ที่กว้างของโครงการ Kubernetes และ Cloud Native
สำหรับคนที่อยู่ใน Role การ Implement ทาง Technique อยู่แล้ว เช่น Kubernetes Engineer, Cloud Native Engineer จะไม่เพียงพอที่จะได้ Role Cloud-native แต่มันสามารถช่วยให้ Resume ของคุณเด่นขึ้นมาสำหรับการสัมภาษณ์
เมื่อคุณได้ Cert นี้คุณจะ ...:
- สามารถ Deploy App ง่ายๆ ใน Cluster Kubernetes
- เข้าใจส่วนประกอบต่างๆ ของ Kubernetes สำหรับผู้ใช้งาน
- แต่ยังไม่พอที่จะ Deploy App สำหรับใช้งานเป็น Production
แล้วใช้เวลาเรียนเท่าไหร่?:
- 50 ชั่วโมง (ชม) สำหรับผู้เริ่มต้นที่ไม่เคยทำ Linux, Network หรือ Cloud, ไม่เคยเขียน Code หรือทำงานด้าน Technology
- 20 ชม สำหรับคนที่มีประสบการณ์จริงในการทำงานกับผู้ให้บริการ Cloud, มีความรู้ในทางปฏิบัติเกี่ยวกับ Linux และ Linux Networking, ทำงานด้าน Technology มาซักระยะ
เวลาเรียนเฉลี่ย 30 ชั่วโมง:
- การบรรยายและ Lab 50%
- Practice Exams 50%
เรียนวันละ 1-2 ชั่วโมง ก็จะประมาณ 20 วัน
ข้อสอบมี 5 Domain:
https://github.com/cncf/curriculum/blob/master/KCNA_Curriculum.pdf
- 46% - พื้นฐาน Kubernetes 27-28 ข้อ
- 22% - Container Orchestration 25 ข้อ
- 16% - Container Native Architecture 25 ข้อ
- 8% - Cloud Native Observability 4-5 ข้อ
- 8% - การ Deliver App แบบ Cloud Native 4-5 ข้อ
- ผ่านต้องได้ *750/1000 หรือประมาณ 75% CNCF อาจใช้ Scaled Scoring
- มี 60 ข้อ ผิดได้ 15 ข้อ คำถามเป็นแบบ Choice และ หลายคำตอบ
- มีเวลา 90 นาที หรือข้อละนาทีครึ่ง
- Cert มีอายุ 3 ปี
- ตกได้รอบนึง รอบสองสอบ Free
Cloud-Native คืออะไร?:
Cloud-native อธิบายถึงสถาปัตยกรรมที่เน้นการใช้งาน Workload ที่ *พกพาได้ (Portable) เป็น Module (Modular) และแยกออกจากกัน (Isolate) ระหว่างผู้ให้บริการ Cloud ด้วย Model การ Deploy ที่แตกต่างกัน
ผู้ให้บริการ Cloud มักจะอธิบาย Cloud-Native ว่าเป็นคำที่มีความหมายว่าทุกอย่างที่สร้างขึ้นบน Cloud หรืออธิบายที่ดีกว่าเรียกว่า "Cloud-First"
บางคนอธิบายว่า Cloud-Native เป็นหลักการสำคัญ 4 ประการ คือ:
- Microservices
- อยู่ใน Container
- Delivery อย่างต่อเนื่อง
- DevOps
ใน KCNA, Cloud-Native จะหมายถึง Technology เช่น Kubernetes และโครงการ CNCF ที่อยู่บนผู้ให้บริการ Cloud เจ้าไหนก็ได้
CNCF นิยามว่า:
Technology Cloud Native ช่วยให้องค์กรสามารถสร้างและ Run App ที่ปรับขนาดได้สมัยใหม่, Dynamic, Environment เช่น Public, Private และ Hybrid Cloud
Container, บริการ, Meshes, Microservices, โครงสร้างพื้นฐานที่เปลี่ยนแปลงได้ และ Declarative API
Technique เหล่านี้ช่วยให้ระบบ Loosely Couple ซึ่งมี Resilient, จัดการได้ (Manageable) และสังเกตเห็นได้ (Observable)
เมื่อรวมกับระบบอัตโนมัติที่แข็งแกร่ง มันจะช่วยให้วิศวกรสามารถทำการเปลี่ยนแปลง Impact สูงๆ ได้บ่อยครั้ง และจะได้รับผลกระทบน้อยที่สุด
Cloud Native Foundation พยายามที่จะผลักดันการใช้วิธีนี้โดยการส่งเสริมและสนับสนุน Ecosystem ของ Open Source โครงการไม่มี Vendor Lock-in
CNCF จึงรวบรวมรูปแบบที่ทันสมัยเพื่อทำให้นวัตกรรมเหล่านี้เข้าถึงทุกคนได้
ผู้ให้บริการ Cloud (CSP):
- Collection ของบริการบน Cloud
- การ Integrate App ที่แข็งแกร่งและการทำงานร่วมกันระหว่าง Service
- การใช้การเรียกเก็บเงินตามการใช้งานจริง
- ภายใต้ Unified API เดียว
Cloud-Native คือ Workload, App หรือระบบที่ออกแบบมาเพื่อทำงานบน Cloud และ "ใช้ข้อดีของ Cloud"
Workload Cloud-Native ไม่สามารถใช้ประโยชน์จากข้อดีทั้งหมดของผู้ให้บริการ Cloud ได้ เพราะแต่ละเจ้า Technology ไม่เหมือนกัน เพื่อดึงดูดให้คุณใช้บริการของพวกเค้าซึ่งมีการ Integrate กับบริการอื่นโดยเฉพาะ
Cloud Native Shared Responsibility Model:
The Linux Foundation (LF) เป็นองค์กรที่ไม่แสวงหาผลกำไรทาง Technology ก่อตั้งในปี พ.ศ. 2543 เป็นการควบรวมกิจการระหว่าง Lab การพัฒนา Open Source (Open-Source Development Labs) และกลุ่มมาตรฐานเสรี (Free Standards Group) เพื่อสร้างมาตรฐาน Linux, สนับสนุนการเติบโต และส่งเสริมการ Adopt เชิงพาณิชย์
LF ได้รับการสนับสนุนจากบริษัท Technology ต่างๆ เช่น AT&T, Tencent, Microsoft, FUJITSU, Google, ORACLE, Qualcomm, HUAWEI, HITACHI, NEC, vmware, SAMSUNG, facebook, orange, intel, etc.
Cloud Native Computing Foundation (CNCF) เป็นโครงการของ Linux Foundation ที่ก่อตั้งขึ้นในปี 2558 เพื่อช่วยพัฒนา Technology Container
CNCF ดำเนินงานในฐานะองค์กรอิสระจากองค์กรแม่:
- มีสมาชิกคณะกรรมการเป็นของตัวเอง
- มีการประชุม Technology ระดับโลกของตัวเองชื่อ: CloudNativeCon + KubeCon
- มีใบรับรอง Cloud Native ของตัวเอง
- มีชุดโครงการของตัวเอง: Kubernetes, Prometheus, Etcd, ContainerD และมากกว่านั้น...
Cloud Native Landscape เป็นแผนที่แบบ Interactive ที่พัฒนาโดย CNCF เพื่อแสดง Technology Cloud-native ทั้งหมดที่มีอยู่ และเพื่อช่วยระบุหมวดหมู่ที่พวกเค้าให้บริการ
The Cloud Native Trail Map เป็นเส้นทางที่แนะนำในการนำสถาปัตยกรรม Cloud-Native มาใช้
ลำดับเส้นทางจะแตกต่างกันไปตามกรณีการใช้งานของคุณ
Virtual Machines (VMs) ใช้พื้นที่ไม่คุ้มค่าที่สุด App ไม่ได้ถูกแยกออกจากกัน ซึ่งอาจทำให้เกิดความขัดแย้งในการ Config, ปัญหาด้านความปลอดภัย หรือการใช้ทรัพยากรมากเกินไป
Container ช่วยให้คุณสามารถ Run App ได้หลาย App ซึ่งจะแยกกันอยู่, Launch Container ใหม่และ Config OS Dependency ต่อ Container
สถาปัตยกรรมแบบ Monolithic - App เดียวรับผิดชอบทุกอย่าง, Function เชื่อมต่อกันอย่างแน่นหนา (Tightly Coupled)
สถาปัตยกรรม Microservices - หลาย App แต่ละ App รับผิดชอบอย่างเดียว, Function แยก (Isolate) และ Stateless
Microservices Pattern — The API Gateway: https://siamchamnankit.co.th/ลองสรุป-microservices-pattern-the-api-gateway-eeb6ca40238 . Kong API Gateway ฉบับรวบรัด:...
www.facebook.com
Kubernetes เป็นระบบ Container Orchestration แบบ Open source สำหรับการ Deploy, การปรับขนาด และการจัดการ Container โดยอัตโนมัติ
เดิมสร้างโดย Google และได้รับการดูแลโดย CNCF นับเป็นโครงการนึง
Kubernetes โดยทั่วไปเรียกว่า K8s
- 8 แทนตัวอักษรที่เหลือ "ubernete"
**ข้อดีของ Kubernetes ที่ดีกว่า Docker คือความสามารถในการ Run "Container App" บน VM หลายตัว
ส่วนประกอบเฉพาะของ Kubernetes คือ Pods
Pod เป็นกลุ่มของ Container หนึ่งในหลายกลุ่มที่มีการ Share ที่เก็บข้อมูล เครือข่าย และการตั้งค่าที่ใช้ร่วมกันอื่นๆ
Kubernetes เหมาะสำหรับสถาปัตยกรรม Micro-service ที่บริษัทมีบริการหลายสิบถึงร้อยที่ต้องจัดการ
ภาพรวมส่วนประกอบของ Kubernetes:
- Cluster:
การจัดกลุ่มแบบ Logical ของส่วนประกอบทั้งหมดภายใน Cluster
- Namespace:
การจัดกลุ่มแบบ Logical ที่ตั้งชื่อส่วนประกอบของ Kubernetes ภายใน Cluster
ใช้เพื่อแยก Workload ที่แตกต่างกันบน Cluster เดียวกัน
- Node:
VM หรือ Server มี 2 แบบ คือ Control Plane และ Worker Node
Worker Node คือที่ที่ App ของเราหรือ Workload อยู่ ส่วน Control Plane Node เอาไว้ควบคุมจัดการ Worker Node
- Pod:
เป็นหน่วยที่เล็กที่สุดใน K8s มันจะห่อ Container เอาไว้ ตาม Best Practice ต้องมี Container หลักตัวเดียวข้างในเท่านั้น
- Service:
Static IP และชื่อ DNS สำหรับชุดของ Pod (ยังอยู่แม้ว่า Pod ตายไปแล้ว) และ Load Balancer
อาจหมายถึง Container ที่ทำงานอย่างต่อเนื่อง
- Ingress:
แปลง HTTP/S Rule เพื่อ Point ไปหา Service