เมื่อ Cloud-Native Application กลายเป็นหัวใจสำคัญของธุรกิจ การจัดการให้กระบวนการพัฒนาและส่งมอบ Application เหล่านี้จึงกลายเป็นโจทย์สำคัญ และ Red Hat ก็ได้ออกมาเล่าถึงแนวทางการทำ Cloud-Native CI/CD สำหรับการพัฒนาซอฟต์แวร์ในยุคใหม่ด้วยโซลูชัน Red Hat OpenShift Pipelines ที่ใช้ Tekton เป็นหัวใจสำคัญในงาน Webinar ที่ผ่านมา ซึ่งทางทีมงาน TechTalkThai ก็ขอนำสรุปเนื้อหาเบื้องต้นเอาไว้ดังนี้ครับ
Cloud-Native Development Tooling เมื่อเครื่องมือในการทำ CI/CD ต้องเปลี่ยนไปในยุค Cloud-Native
เมื่อ Container และ Kubernetes ได้เข้ามามีบทบาทและเปลี่ยนโลกของการพัฒนา Software ไปอย่างสิ้นเชิง ก็ทำให้เครื่องมือที่ใช้ในการพัฒนา Software เปลี่ยนแปลงตามไปด้วย และแน่นอนว่าการทำ Continuous Integration / Continuous Delivery หรือ CI/CD ต้องเปลี่ยนแปลงตามไปด้วย ซึ่งในมุมของนักพัฒนานั้นก็อาจจะมีทั้งคนที่ชอบการเปลี่ยนแปลงเพราะจะได้เรียนรู้สิ่งใหม่ๆ และคนที่ไม่ชอบการเปลี่ยนแปลงเพราะทำให้ตนเองมีเวลาไปเขียนโค้ดได้น้อยลง
อย่างไรก็ดี นักพัฒนาทุกคนนั้นต่างก็มีความคาดหวังในประเด็นเหล่านี้
-
สามารถเลือกเครื่องมือที่ตนเองถนัดในการทำงานได้
-
สามารถใช้บริการ Cloud ใดๆ ก็ได้ และ Deploy ระบบลงไปยัง Cloud ที่ตนเองต้องการได้
-
สามารถใช้งานและบริหารจัดการ Kubernetes ได้ง่ายๆ
-
สามารถย้ายระบบไปยัง Cloud หรือ Data Center ที่ตนเองต้องการได้โดยไม่ต้องแก้ไขอะไรมากนัก
ด้วยเหตุนี้ Technology Stack ของเครื่องมือจาก Red Hat สำหรับ Cloud-Native Development จึงถูกพัฒนาขึ้นมาเพื่อตอบโจทย์เหล่านี้เป็นหลัก
กลยุทธ์ด้าน CI/CD ของ Red Hat
ในมุมของ Red Hat นั้น Cloud-Native CI/CD จะต้องรองรับทั้ง Container, Serverless และ DevOps ได้อย่างครบถ้วน ทำให้สามารถรองรับการ Deploy ระบบได้อย่างยืดหยุ่น ง่ายต่อการดูแลรักษา และง่ายต่อการพัฒนาระบบ Cloud-Native Application โดยระบบต้องรองรับการทำงานได้บนหลาย Cloud และหลาย Platform เพื่อให้สอดคล้องกับเครื่องมือที่ใช้ทั้งในการพัฒนา, การทดสอบ และการทำ Production รวมถึงยังสามารถใช้งานได้แบบกระจายตัวในหลายระบบ และสามารถแบ่ง Environment ในการทำงานได้
จุดต่างที่ชัดเจนระหว่าง CI/CD แบบเดิมกับ Cloud-Native CI/CD นั้น ก็คือการที่ระบบ CI/CD แบบเดิมจะรองรับสถาปัตยกรรมระบบแบบ Monolithic เป็นหลัก เน้นการควบคุมจากศูนย์กลางเพียงแห่งเดียว และรองรับระบบ Environment ในการทำงานแบบเดียว ในขณะที่ Cloud-Native CI/CD นั้นจะรองรับระบบแบบ Container/Serverless ในสถาปัตยกรรมแบบ Microservices/Distributed เป็นหลัก และรองรับการพัฒนาระบบร่วมกันเป็นทีม โดยอ้างอิงการเชื่อมต่อกับ Kubernetes เป็นหลัก ซึ่งเครื่องมือสำหรับรองรับ Cloud-Native CI/CD ของ Red Hat นี้ก็คือ Tekton นั่นเอง
รู้จักกับ Tekton
Tekton คือโครงการ Open Source สำหรับระบบ Framework ที่ใช้ในการสร้าง Cloud-Native CI/CD Pipeline ได้อย่างรวดเร็ว และสามารถทำงานได้บน Cloud ที่หลากหลายหรือระบบแบบ hybrid ได้ โดยดการใช้ Custom Resources Definition (CRD) ภายใน Kubernetes ก็ทำให้ Tekton สามารถใช้ Control Plane ของ Kubernetes ในการจัดการกับ Pipeline ทั้งหมดได้ และยังสามารถเชื่อมต่อกับเครื่องมือทางด้าน CI/CD อย่างเช่น Jenkins, Jenkins X, Skaffold หรือ Knative ได้
Tekton นี้เป็นโครงการหนึ่งภายใต้ Continuous Delivery Foundation (CDF) ที่มีสามาชิกมากกว่า 25 รายในการผลักดันโครงการด้าน CI/CD ซึ่ง Tekton เองก็ได้รับการสนับสนุนจากบริษัท IT ชั้นนำทั่วโลกหลายแห่ง
สำหรับผู้ที่สนใจรายละเอียดเพิ่มเติมเกี่ยวกับ Tekton สามารถศึกษาข้อมูลได้ที่ https://github.com/tektoncd
รู้จักกับ OpenShift Pipelines
OpenShift Pipelines คือโซลูชันการทำ CI/CD ในรูปแบบของ Kubernetes โดยมี Tekton เป็นเทคโนโลยีหลัก โดยมีการพัฒนาระบบให้สามารถเชื่อมต่อ Tekton เข้ากับ OpenShift และเครื่องมือต่างๆ ของ Red Hat เอาไว้เป็นอย่างดี โดยการทำ CI/CD ในแต่ละขั้นตอนของ Pipeline นั้นจะเกิดขึ้นภายในระบบ Container ของตนเองแยกขาดจากกัน ทำให้สามารถเพิ่มขยายระบบในแต่ละส่วนอย่างอิสระได้
สำหรับสถาปัตยกรรมของ OpenShift Pipelines จะประกอบด้วยส่วนประกอบหลัก 3 อย่าง ได้แก่ 1) Kubernetes ซึ่งก็คือ OpenShift ที่มาพร้อมกับเครื่องมือต่างๆ ของ Red Hat, 2) CI/CD Core ก็คือ Tekton Core พร้อมส่วนประกอบย่อยคือ Operator, Extensions, Integrations และ Tasks และ 3) Developer Tools คือเครื่องมือสำหรับให้นักพัฒนาใช้ทำงานได้อย่างง่ายดายตามความถนัดของตน โดยมีให้เลือกใช้งานได้ทั้ง Dev Console, Tekton CLI, CodeReady Workspace และ Visual Studio Code
ทั้งนี้ Red Hat เองก็มีเอกสารที่อธิบายการทำงานของ OpenShift Pipelines ให้ผู้ที่สนใจนำไปศึกษากันได้เบื้องต้นที่ https://docs.openshift.com/container-platform/4.5/pipelines/understanding-openshift-pipelines.html
เจาะลึกกับ Tekton พร้อมดู Demo ได้ใน Webinar ย้อนหลัง
ใน Webinar นี้เนื้อหาเต็มมีความยาวและยังมีการ Demo โซลูชันของ Tekton ในการใช้งานจริงและการทำงานร่วมกับ Red Hat OpenShift ให้เราได้รับชมกันด้วย ดังนั้นถ้าหากท่านใดสนใจก็สามารถรับชม Webinar ย้อนหลังโดยคุณนัทที จิรัฐติวงศ์วิบูล, Solutions Architect – Platform, Thailand, Red Hat กันได้ที่ https://redhat.lookbookhq.com/c/awupxkdxg2q?x=C_gAczเลยนะครับ