การทำ Modernize Application นั้นถูกพูดถึงมาเป็นเวลาหลายปีแล้ว เพียงแต่ในทางปฏิบัตินั้นหลายองค์กรยังไม่สามารถทำให้เกิดขึ้นได้จริง เพราะต้องกระทบกับระบบซอฟต์แวร์ไปจนถึงวัฒนธรรมและวิธีการทำงาน อย่างไรก็ดีภายใต้เทคโนโลยีเบื้องหลัง Kubernetes เป็นสิ่งที่ได้รับการยอมรับจากทั่วโลก ซึ่งในงานสัมมนาครั้งนี้ VMware จะมาเปิดเผยโครงสร้างเบื้องหลังของ Tanzu Kubernetes Grid (TKG) อย่างหมดเปลือกว่า จะช่วยผสานการบริหารจัดการแบบเก่าและการพัฒนาซอฟต์แวร์สมัยใหม่ได้อย่างไร
“innovation และ disruption คือการที่องค์กรสามารถปรับซอฟต์แวร์และแอปพลิเคชันของตนให้สอดคล้องกับการเปลี่ยนแปลงของยุคสมัยได้ ซึ่งในโลกทุกวันนี้ถูกขับเคลื่อนด้วยซอฟต์แวร์ที่ต้องพร้อมเปลี่ยนแปลงตัวเองได้เสมอ ด้วยเหตุนี้เองสิ่งที่เรียกว่า Container จึงถือกำเนิดขึ้น“
Container เป็นเทคโนโลยีที่สอดคล้องกับการเปลี่ยนแปลงของ monoliths สู่ microservices ทั้งนี้ข้อดีประการแรกคือช่วยแบ่งแยกแอปออกเป็นส่วนๆ ทำให้การอัปเดต แก้ไขเปลี่ยนแปลงจะไม่กระทบซึ่งกันและกัน จึงนำไปสู่ข้อดีอีกประการก็คือความว่องไวเพราะเมื่อโค้ดแยกส่วนกันขนาดจึงเล็กลง การ Deploy และตามแก้ไขปัญหาต่างๆก็ง่ายขึ้น
Cloud Native Architecture คืออะไร
Cloud Native เป็นศัพท์ใหม่ที่เกิดขึ้นตาม Cloud Computing ที่เทคโนโลยี Infrastructure ถูกแชร์ร่วมกันและสามารถชำระค่าใช้จ่ายได้ตามจริง อย่างไรก็ดีเมื่อ Infrastructure สามารถปรับเพิ่มลดได้ตามใจ วิถีการพัฒนาแอปพลิเคชันย่อมต้องเปลี่ยนตาม จากภาพด้านล่างมีการนิยามองค์ประกอบของ Cloud Native เป็น 4 ส่วนคือ

1.) Container ทำให้สามารถเคลื่อยย้าย Environment สำหรับการทำงานได้ง่าย
2.) มีการเปลี่ยนแปลงซอฟต์แวร์เป็นรูปแบบของ Microservices หากจำเป็นต่อแอปพลิเคชัน
3.) เปลี่ยนวัฒนธรรมการทำงานเข้าสู่ DevOps ซึ่งบูรณาการให้ตอบโจทย์วิถีทางของแอปพลิเคชันแบบใหม่ที่ต้องปรับเปลี่ยนได้เร็วและตลอดเวลา
4.) Continuous Delivery ต้องมีเครื่องมือนำส่งซอฟต์แวร์ได้อย่างอัตโนมัติ เพื่อทำให้การพัฒนาซอฟต์แวร์เกิดขึ้นเร็วพอและทำซ้ำได้เรื่อยๆ
นอกจากเรื่องเทคโนโลยีของ Container แล้ว ในโลกของความเป็นจริงนั้น การทำงานขององค์กรซับซ้อนกว่าที่คิด คำถามคือหากต้อง Deploy ตัว Container ไปวางบนสภาพแวดล้อมต่างๆ จะดูแลกันอย่างไร หรืออีกเรื่องคือ Container ไม่สามารถทนทานต่อการสูญเสีย (fault tolerance) ท้ายที่สุดจึงเกิดเทคโนโลยีที่สามารถบริหารจัดการ Container ในหลายโซลูชัน แต่ที่ได้รับการยอมรับในวงกว้างก็คือ Kubernetes เพราะถูก Vendor ต่างๆก็นำไปต่อยอดให้บริการ โดย VMware ก็ได้นำเสนอ Kubernetes ในโซลูชันของตัวเองหรือ Tanzu Kubernetes Grid (TKG) ซึ่งท่านจะรู้จักกันต่อไปในบทความนี้
VMware กับบทบาทการ Modernize Application

กว่าที่จะกลายเป็นแอปพลิเคชันชั้นดีสำหรับธุรกิจใดก็ตาม ทีมธุรกิจจะให้ไอเดียเพื่อให้นักพัฒนาแปรรูปเป็นผลิตภัณฑ์ ทั้งนี้ในขั้นตอนของการพัฒนาแอปพลิเคชันสมัยใหม่ มีความท้าทายอยู่ 4 ข้อคือ ต้องคิดเรื่องของความมั่นคงปลอดภัยตั้งแต่ขั้นแรก การพัฒนาจะต้องเกิดขึ้นได้อย่างไม่มีสะดุดต่อเนื่อง ใช้ระยะเวลาน้อยในการเข้าสู่ตลาด และสุดท้ายคือต้องขยายตัวได้เสมอ ในกระบวนการ CI/CD ทั้งหมด มาดูกันว่า VMware มีบทบาทอย่างไรในอุตสาหกรรมนี้
Java เป็นภาษาพัฒนาโปรแกรมระดับสูงที่ถูกคิดค้นขึ้นมากว่า 20 ปีแล้ว แม้ในปัจจุบันองค์กรก็ยังนิยมเลือกใช้ในการพัฒนาแอปพลิเคชันต่างๆ ซึ่งนักพัฒนาในภาษา Java คงจะคุ้นเคยกันดีกับโอเพ่นซอร์สอย่าง Spring Framework (spring.io) ทั้งนี้ VMware เป็นหนึ่งใน Contributor ตัวยงในกลุ่มนี้เช่นกัน ด้วยเหตุนี้เองในส่วนการเขียนแอปพลิเคชันด้วย Java ทาง VMware ได้นำเสนอผลิตภัณฑ์ที่ชื่อ Tanzu Spring Runtime
ณ เวลาต่อมาหลังจากที่โค้ดได้ถูกขึ้นรูปขึ้นมาและเก็บไว้บน Repository แล้ว (git server , github หรืออื่นๆ) องค์กรสามารถใช้ Tanzu Build Service เข้ามาช่วยแปลงโค้ดไปอยู่ในรูปแบบของ Container ได้ โดยเบื้องหลังความสำเร็จมาจากโอเพ่นซอร์สที่ชื่อ KPACK ที่คอยเข้าไปอ่านไฟล์ Image Definition ที่นิยามถึงรายละเอียดว่าโค้ดถูกเก็บที่ใด มีองค์ประกอบอะไร ทั้งนี้ KPACK มีความสามารถรองรับได้หลายภาษาโปรแกรมทั้ง Java, Python, .net, NodeJS และอื่นๆ สุดท้ายแล้วเมื่อ Image ถูกสร้างขึ้นก็จะถูกส่งไปยัง Registry ที่กำหนดเช่น Harbor (VMware Repository) เป็นต้น
ดูเผินๆ Tanzu Build Service อาจจะเป็นเพียงองค์ประกอบหนึ่งที่ VMware นำเสนอ แต่เชื่อหรือไม่ว่า Build Service มีประโยชน์ในทางปฏิบัติเป็นอย่างมาก ยกตัวอย่างในสถานการณ์ที่พบช่องโหว่ใหม่บน Container ซึ่งหากปราศจาก Tanzu Build Service แล้ว ทีม Operation คงต้องค้นหาว่ามี Container ใดเกี่ยวข้องอยู่ที่ไหนและทำการ Rebuild ใหม่ทั้งหมด แต่ด้วยความสามารถของ Tanzu Build Service ซึ่งมีการบันทึก Log ของอิมเมจ ดังนั้นผู้ใช้งานจะสามารถอัปเดตอิมเมจได้อย่างอัตโนมัติจากศูนย์กลาง แก้ไขสิ่งต้องการได้อย่างทันท่วงที
แน่นอนว่าแอปพลิเคชันมักมีองค์กรประกอบเกี่ยวข้องในหลายส่วนเช่น Database, Kafka, Message Broker และอื่นๆ ปัญหาคือเราจะทราบได้อย่างไรว่าแหล่งที่มาของโอเพ่นซอร์สนั้นน่าเชื่อถือเพียงพอ VMware Tanzu App Catalog คือโซลูชันที่จะเข้ามาตอบโจทย์ โดยไอเดียคือองค์กรสามารถเลือก Deploy Container ที่เชื่อถือได้จากหน้า Catalog นั่นเอง โดยโซลูชันนี้เกิดขึ้นจากการที่ VMware เข้าซื้อกิจการของ Binami ที่ให้บริการ Build แพ็กเกจของโอเพ่นซอร์สต่างๆมาก่อน จึงกลายเป็นผลิตภัณฑ์ Commercial ภายใต้ VMware ในเวลาต่อมา
ไม่เพียงเท่านั้น Tanzu App Catalog ยังช่วยให้องค์กรสามารถติดตามการอัปเดตใหม่ในโค้ดและสร้างเป็น Image ใหม่เตรียมไว้ให้อย่างอัตโนมัติ ลองคิดดูว่าหากไม่มีบริการนี้ทีมงานจะต้องดำเนินการทั้งหมดด้วยตัวเอง คงน่าปวดหัวและเสียเวลาไม่น้อยเลย

หลังจากซอฟต์แวร์พร้อมใช้งานในรูปแบบของ Container แล้ว แต่ก็ยังอาจไม่ตอบโจทย์ขององค์กรขนาดใหญ่ที่ต้องการรัน Workload ในหลายแห่ง เพราะยังขาดเรื่องของ Orchrestrator อย่าง Kubernetes ซึ่งวิสัยทัศน์ของ VMware คือการลดภาระขององค์กรให้มากที่สุด จึงแพ็ค Kubernetes มาให้พร้อมใช้งานได้ผ่าน Tanzu Kubernetes Grid ซึ่งสามารถรองรับแพลตฟอร์มของ Kubernetes ของค่ายอื่นเช่น Azure Kubernetes Service, Amazon Kubernetes Service และ Google Kubernetes Engine โดยเรียกใช้งานผ่าน API ได้ง่ายๆ
ในโจทย์ขององค์กรที่ขนาดใหญ่มาก อาจต้องการมี Kubernetes Cluster อยู่ท่ามกลางไซต์ต่างๆ โดยทั้งหมดสามารถบริหารจัดการได้จากศูนย์กลางด้วย VMware Tanzu Mission Control ตอบโจทย์ทั้งในแง่ของความมั่นคงปลอดภัยและรวดเร็ว
อันที่จริงแล้วในแต่ละเลเยอร์ของแอปพลิเคชันต่างมีเครื่องมือ Monitoring ของตนเอง แต่ในภาวะของการปฏิบัติงานจริง เป็นเรื่องยากที่ผู้ทำงานต้องมารวบรวมข้อมูล Visibity เข้าด้วยกันเพื่อแก้ปัญหา และเครื่องมือ Tanzu Observability คือสิ่งที่จะเข้ามาช่วยให้องค์กรสามารถมองเห็นภาพทั้งหมดได้ด้วยหน้าจอเดียวกัน
องค์ประกอบสุดท้ายคือการควบคุมและจัดการการเชื่อมต่อของ Kubernetes Cluster ที่จะเกี่ยวพันกับเรื่องของการเปิดช่องทางการเชื่อมต่อ และที่สำคัญคือปัญหาทางด้าน Security ที่มักเกิดจากขั้นตอนนี้ ด้วย Tanzu Service Mesh จะช่วยทลายความกังวลใจเหล่านั้นให้หายไปได้ เพราะสามารถควบคุมการเข้าถึงได้อย่างมั่นใจ
VMware ในมุมของการ Modernize Infrastructure


ในมุมของ Operation หลายคนคงคุ้นเคยกับ vSphere อยู่แล้ว ที่ในยุคของ Virtualize แบบเก่าคือเครื่องมือจัดการทรัพยากรต่างๆ แต่แม้ในยุคของ Cloud Native องค์กรก็สามารถใช้งานเครื่องมือเดียวกันนี้ เพื่อบริหารจัดการ Workload แบบใหม่ได้เช่นกัน ด้วยการเพิ่ม Kubernetes เข้ามาในระดับของ Hypervisor ที่สุดท้ายแล้วทีม DevOps ของท่านจะรัน Pod ได้ภายใน ESXi เพราะทาง VMware ได้ทำการ Customize เอาไว้แล้ว ในมุมการทำงานของ DevOps บอกได้เลยว่าไม่กระทบกับการทำงานแต่อย่างใด เพราะ Kubernetes ของ VMware สามารถบริหารจัดการได้ผ่านอินเทอร์เฟสเดียวกับ Kubernetes ปกติด้วย Kubectl

การทำงานแบบเก่า Dev ต้องคอยร้องขอ Resource จากทาง Operation เพื่อเตรียมการให้ ซึ่งขัดแย้งกับแนวทางของ Dev ในปัจจุบันที่ต้องเร็ว ทำซ้ำได้เท่าที่ต้องการ และ VMware ก็ไม่ปล่อยให้องค์กรตกอยู่ในความล้าหลังนั้น ด้วยคอนเซปต์ namespace ทำให้ Operation สามารถจัดสรรทรัพยากรให้ Dev สามารถนำไปบริหารจัดการได้เองภายในหรือบรรลุจุดหมายแบบ Self-service
จากที่กล่าวมาภาพรวมที่เกิดขึ้นก็คือเครื่องมือแบบเก่าสามารถก้าวตามยุคสมัยของการเปลี่ยนผ่านแอปพลิเคชันได้อย่างแท้จริง โดย Operation ใช้เครื่องมือที่คุ้นเคยอย่าง vCenter จัดการ Compute, Network และ Storage ไปพร้อมกับ Kubernetes ในขณะที่ Dev ก็สามารถจัดการ Resource ในก้อนทรัพยากรของตนได้ผ่าน Kubectl ด้วยตนเอง
สรุป

Modernize Application ในองค์กรไม่สามารถเกิดขึ้นจากเพียงส่วนใดส่วนหนึ่ง แต่ต้องหลอมรวมพลังของทั้ง Dev และ Ops เข้าด้วยกัน ซึ่ง VMware เชื่อว่าการเปลี่ยนแปลงจะต้อง Modernize ทั้ง Infrastructure และ Application ซึ่งจะเห็นได้ว่าสิ่งที่ VMware มอบให้ คือพลังในการควบคุมและบริหารจัดการ Container Workload และ VM ในทุกขนาด นอกจากนี้ยังตอบโจทย์การทำงานของ DevOps โดยไม่กระทบวิถีการทำงาน เพราะสามารถใช้เครื่องมือเดิมทำงานต่อไปได้ และสุดท้ายคือไม่ต้องมีการเขียนสคิร์ปต์เพื่อเข้ามาช่วยเหลือแต่อย่างใด จึงเรียกได้ว่าเป็นพลังของ Platform Manage อย่างแท้จริง