หนึ่งในเรื่องที่คน IT หลายคนต้องเร่งเรียนรู้ในปีนี้ก็คือเรื่องของเทคโนโลยี Enterprise Container และในบทความนี้ทีมงาน TechTalkThai ก็จะขอสรุปเนื้อหาสั้นๆ จากงาน Red Hat Webinar: Developer Productivity on Kubernetes with Red Hat OpenShift เพื่อให้ทุกท่านได้รู้จักกับ Red Hat OpenShift กันมากขึ้นดังนี้ครับ
รู้จักกับ Red Hat OpenShift
Red Hat OpenShift Platform นี้เป็นระบบสำหรับสนับสนุนการทำงานของ Container ที่รองรับการทำงานได้ในแบบ Hybrid Cloud ติดตั้งใช้งานได้บนทั้ง Bare Metal, Virtualization, Private Cloud, Public Cloud ไปจนถึงมีบริการ OpenShift Dedicated ซึ่งเป็นบริการแบบ Managed Service บน Public Cloud จาก AWS และ Google Cloud
จุดที่ Red Hat ได้ทำการพัฒนาให้ต่อยอดมาจาก Kubernetes บน OpenShift นี้ก็มีด้วยกันหลายส่วน ได้แก่
- Cluster Services เครื่องมือสำหรับทีม Operation ในการบริหารจัดการ Container Platform ทั้งการปรับแต่การทำงาน, การดูแลรักษาแก้ไขปัญหา, การอัปเดตระบบ, การจัดการเครือข่าย, การติดตามการทำงานของระบบ
- Platform Services บริหารจัดการ Container ด้วยเครื่องมือต่างๆ เช่น Service Mesh, Serverless Builds, CI/CD Pipelines, Full Stack Logging, Chargeback
- Application Services เครื่องมือสำหรับใช้รองรับ Application เช่น Database, ภาษาต่างๆ, Runtimes, Integration, Business Automation และบริการอื่นๆ
- Developer Services เครื่องมือเพื่อให้นักพัฒนาทำงานได้ง่ายขึ้น ตั้งแต่ Developer CLI, VS Code Extension, IDE Plugins, CodeReady Workspaces, CodeReady Containers
- Multi-Cluster Management เครื่องมือสำหรับบริหารจัดการหลาย Cluster ได้จากศูนย์กลาง
จุดเด่นของการใช้ Red Hat OpenShift นี้ก็คือระบบทั้งหมดถูก Optimize มาให้เหมาะทั้งสำหรับทีมดูแลระบบและนักพัฒนา ทำให้การใช้งานเป็นไปได้แบบครบวงจร โดยสามารถนำ Container บน Red Hat OpenShift ไป Deploy ใช้งานบนบริการ Cloud ใดๆ ก็ได้ ทำให้สามารถควบคุม Environment ของการพัฒนาเอาไว้ได้ และมีอิสระในการเลือกระบบ Production ได้ตามต้องการ
อีกจุดหนึ่งก็คือการที่ Red Hat OpenShift สามารถทำงานร่วมกับเครื่องมือในการพัฒนาและการทำ CI/CD ได้มากมาย ดังนั้นทีมพัฒนาจึงสามารถใช้เครื่องมือที่ตนเองถนัดในการทำงานร่วมกับ Red Hat OpenShift ได้ทันที
ผู้ที่สนใจรายละเอียดเพิ่มเติมเกี่ยวกับ Red Hat OpenShift สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.openshift.com/ ครับ
เครื่องมือสำหรับนักพัฒนาบน Red Hat OpenShift
Red Hat นั้นแบ่งระดับของนักพัฒนาบน Container ออกเป็นสองกลุ่ม ได้แก่ กลุ่มแรกที่เน้นการเขียนโปรแกรมอย่างเดียวแต่ไม่ได้ต้องการใช้งานความสามารถบน Container อย่างลึกซึ้งมากนัก และอีกกลุ่มหนึ่งที่เชี่ยวชาญเทคโนโลยีของ Container ด้วยและต้องการใช้ความสามารถต่างๆ อย่างเต็มที่ ซึ่งภายใน Red Hat OpenShift ก็มีเครื่องมือสำหรับให้นักพัฒนาทั้งสองกลุ่มใช้ทำงานร่วมกันได้ ตั้งแต่ขั้นตอนของการ Code/Debug, Build & Package, Run, CI Build ไปจนถึง Deploy
สำหรับเครื่องมือต่างๆ ที่มีให้ใช้งานได้บน Red Hat OpenShift ซึ่งจะเป็นประโยชน์ต่อนักพัฒนา มีดังต่อไปนี้
CodeReady Workspaces เป็นระบบ Containerized Development Environment สำหรับผู้ใช้งานแต่ละคน เพื่อให้นักพัฒนาสามารถทำการพัฒนา Application สำหรับ Deploy บน OpenShift ได้ดดยไม่ต้องมีความรู้เรื่องของ OpenShift, Linux หรือ Kubernetes โดยภายใน CodeReady Workspaces นี้จะทำงานคล้ายกับ VDI โดยนักพัฒนาสามารถ Remote เข้ามาและใช้งาน Development Environment ของตนเองไป โดยมีเครือ่งมือทั้งที่หลากหลายทั้งการจัดการ Project, Dependency, Developer Tool, Command Line, OS, Web Server, App Server, Database และอื่นๆ
ข้อดีของการใช้ CodeReady Workspaces นี้คือนักพัฒนาจะไม่ต้องเตรียมเครื่องสำหรับพัฒนาเองเลย และมีเครื่องมือที่จำเป็นต้องใช้งานทั้งหมดให้พร้อมใช้งาน และไม่ว่าจะพัฒนาจากเครื่องไหนก็ยังได้ผลลัพธ์แบบเดียวกันเสมอ รวมถึงลดกรณีปัญหาเรื่อง Source Code รั่วไหลผ่านทางเครื่องส่วนตัวที่นักพัฒนาใช้ได้ด้วย
OpenShift Console ระบบ Web สำหรับทำการบริหารจัดการการตั้งค่าของ Cluster และการเชื่อมต่อระหว่างระบบย่อยๆ ในแต่ละ Application ได้แบบลากวาง เป็นเครื่องมือกลางที่ทำให้ทีมพัฒนาและทีมผู้ดูแลระบบสามารถทำงานร่วมกันได้อย่างง่ายดาย
odo เป็นเครื่องมือ Command Line ที่รวมคำสั่งที่เกี่ยวข้องกับการ Deploy Application บน Kubernetes มาให้ใช้ได้อย่างง่ายดาย ไม่ต้องเชี่ยวชาญเรื่องของ Container หรือ Kubernetes มากนัก
OpenShift on Your Laptop เป็นเครื่องมือฟรีสำหรับติดตั้งบน Laptop และใช้ในการพัฒนาได้ แต่อาจต้องใช้สเป็คเครื่องสูงหน่อยคือใช้ 2 vCPU และ RAM 16GB บน Linux, Windows, macOS โดยชื่อบน OpenShift 4.x จะเรียกว่า CodeReady Containers แต่บน OpenShift 3.x จะเรียกว่า Container Development Kit (CDK)
OpenShift Pipelines ใช้ Tekton ทำ CI/CD Platform แบบ Native บน Kubernetes ที่รองรับการทำงานแบบ Serverless ได้ โดยตอนนี้ยังเป็น Developer Preview และน่าจะ GA ได้ปลายปีนี้
Jenkins ยังคงเป็นเครื่องมือที่ทำงานร่วมกับ OpenShift ได้เป็นอย่างดีในฐานะของ CI/CD ที่ได้รับความนิยมสูง
GitOps-based Application Delivery Red Hat OpenShift นี้จะใช้การทำงานแบบ GitOps คือนำค่า Configuration ของ Cluster และ Application ไปเก็บร่วมกับ Source Code ได้ ทำให้สามารถนำการตั้งค่าที่แตกต่างไป Deploy บนแต่ละ Cluster โดยอัตโนมัติให้ได้ด้วย ไม่ได้เปลี่ยนแปลงเพียงแค่ Source Code เท่านั้น ทำให้ลดความผิดพลาดที่จะเกิดในขั้นตอนการ Deploy ระบบจริงลงได้ รวมถึงยัง Audit ระบบในแต่ละ Revision และทราบถึงความแตกต่างระหว่าง Configuration บน Git และบนระบบ Production ได้
Red Hat IDE Extension Red Hat ทำการพัฒนา Plugin มาสำหรับทั้ง VS Code, IntelliJ, Eclipse เพื่อให้รองรับการพัฒนาบน OpenShift ได้ง่ายขึ้น โดยสนับสนุนทั้ง Java และ Kubernetes
Shift Left เครื่องมือสำหรับเสริมความมั่นคงปลอดภัยในการพัฒนาด้วยการค้นหาช่องโหว่ CVE บน Package ที่ใช้ และตรวจสอบ License ของโค้ดที่ใช้ในโครงการ ทำให้สามารถตรวจสอบพบปัญหาที่เกี่ยวข้องกับประเด็นเหล่านี้ได้ตั้งแต่ตอนพัฒนา และสามารถเปลี่ยนแปลงสิ่งต่างๆ ได้ก่อนที่จะพัฒนาระบบเสร็จ
รับชม Webinar ย้อนหลัง
ใน Webinar นี้เนื้อหาเต็มมีความยาวเกินกว่า 1 ชั่วโมงและมีรายละเอียดอีกค่อนข้างมาก รวมถึงเนื้อหาในช่วงท้ายนั้นยังมีการ Demo โซลูชันของ Red Hat OpenShift ให้เราได้รับชมกันด้วย ดังนั้นถ้าหากท่านใดสนใจก็สามารถรับชม Webinar ย้อนหลังโดยคุณปรีชา ขมวิลัย, Solutions Architect, Thailand, Red Hat และคุณวรวิทย์ เลิศกิติพงศ์พันธ์, Senior Solutions Architect, Thailand, Red Hat กันได้ที่ https://redhat.lookbookhq.com/c/path-factory-develop?x=zM67e-&sc_cid=7013a000002DjCIAA0 เลยนะครับ