เมื่อช่วงต้นเดือนที่ผ่านมา IBM มีงานสัมมนาระดับภูมิภาคเกี่ยวกับ IBM Cloud ในประเทศไทยสำหรับคู่ค้าทางธุรกิจ งานดังกล่าวมีผู้บริหารจาก IBM ระดับสูงจำนวนหนึ่งเข้าร่วมด้วย
ผมได้รับคำชวนจากทาง IBM ประเทศไทยให้สัมภาษณ์ Jason McGee รองประธานและประธานเจ้าหน้าที่ฝ่ายเทคโนโลยีของ IBM Cloud เป็นระยะเวลาสั้นๆ เกี่ยวกับเทคโนโลยี โดยเฉพาะอย่างยิ่ง Kubernetes และเทคโนโลยีอื่นๆ ต้องขอบคุณทาง IBM ประเทศไทยสำหรับคำชวนดังกล่าวนี้ด้วย
ผมเริ่มถามว่า ตั้งแต่งาน InterConnect 2017 เป็นต้นมา ที่มีการแถลงเทคโนโลยีใหม่จำนวนมาก เสียงตอบรับเป็นอย่างไรบ้าง Jason ระบุว่านอกจากเรื่องของการเปลี่ยนชื่อจาก Bluemix ไปเป็น IBM Cloud (ข่าวเก่า) เทคโนโลยี container อย่าง Kubernetes ได้รับความนิยมเร็วมากกว่าเดิม ซึ่งระบบของ IBM Cloud ออกแบบมาในตอนแรกอีกอย่าง ทำให้เขาต้องเข้ามาปรับเปลี่ยนระบบจำนวนมาก ซึ่งก็ได้รับความร่วมมืออย่างดีจากภาคส่วนต่างๆ ในอุตสาหกรรม นอกจากนั้นแล้วลูกค้าเองยังเป็นส่วนที่ทำให้ IBM ต้องปรับตัวด้วยเช่นกัน
การปรับตัวดังกล่าวนี้ IBM ทำในสองระดับ คือการย้ายบริการทั้งหมดที่อยู่บน IBM Cloud เปลี่ยนไปใช้ระบบ container ของ Kubernetes (รวมถึง IBM Watson ด้วย) ในแง่นี้คือการเปลี่ยนโครงสร้างภายในของบริษัทเอง และพัฒนาคุณสมบัติใหม่ๆ ให้กับลูกค้า เพื่อรองรับ Kubernetes ไปในเวลาเดียวกัน การเปลี่ยนแปลงนี้จึงค่อนข้างสำคัญ และเป็นการเปลี่ยนแปลงรากฐานที่แต่เดิม IBM อ้างอิงกับ Cloud Foundry (ได้มาจากการเข้าซื้อ SoftLayer อีกทีหนึ่ง)
ลูกค้าอย่าง American Airlines ที่ถือเป็นกรณีตัวอย่างของ IBM ก็ใช้ container ในการเข้ามาจัดการย้ายระบบจากแบบเดิมไปสู่ container ภายในเวลา 30 วันเท่านั้น และยังมีบริษัทอีกหลายแห่งที่ประสบความสำเร็จในการย้ายงานขึ้นไปบน container
ส่วนกรณีของ IBM เองคือการย้ายงานของ IBM Watson ไปอยู่บนระบบ container ทำให้สามารถขยายการรองรับไปสู่ภูมิภาคใหม่ๆ และสามารถใช้งานได้หลายอย่างมาก เบื้องหลังของระบบของ IBM Watson มีความซับซ้อนมากกว่าปกติเพราะ container ไม่ได้ออกแบบมาแต่แรกสำหรับงานที่ใช้ข้อมูลมาก รวมถึงการสนับสนุน GPU บน Kubernetes ยังไม่เต็มที่ แต่ทีมงานของ IBM และวิศวกรสามารถช่วยย้ายขึ้นมาได้เป็นผลสำเร็จ รวมถึงต้องทำงานเพื่อให้ Watson ขึ้นไปและยังคงใช้ประสิทธิภาพของ GPU ได้อย่างเต็มที่
ผมถามต่อว่าบริษัทหลายแห่งกำลังพิจารณาเรื่องของการใช้ container เพื่อสร้างระบบ Hybrid Cloud แต่มีเทคโนโลยีจำนวนมาก IBM มองอย่างไรบ้าง ซึ่ง Jason ตอบว่าความสำคัญคือระบบ container มีความสำคัญอย่างมาก แต่ที่ IBM เลือก Kubernetes เป็นหลักเพราะความเปิดของแพลตฟอร์มเป็นหลัก และรันอยู่บน Docker เป็นหลัก นอกจากนั้นแล้วบริษัทยังมีความร่วมมือกับ Docker, Inc. เพื่อให้ลูกค้าได้มีทางเลือก
เขามองว่าปัจจัยสำคัญที่ทำให้ลูกค้าไม่กล้าย้ายระบบสู่ container ส่วนมากมาจากวัฒนธรรมและทีมพัฒนาระบบ แม้ว่าในหลายกรณีอาจมีข้อจำกัดทางเทคนิค แต่ส่วนมากแล้วมาจากวัฒนธรรมและทัศนคติของบริษัทและทีมพัฒนามากกว่า การย้ายขึ้น container ไม่ใช่เรื่องง่าย และก็มีเทคโนโลยีจำนวนมากที่ให้เล่น สิ่งที่ IBM ทำคือช่วยลูกค้าเปลี่ยนระบบมาเร็วขึ้น
ผมถามต่อว่าในกรณีของ Spectre/Meltdown ซึ่งมีผลกับโครงสร้างของอุตสาหกรรมคลาวด์โดยรวม IBM Cloud ได้รับผลกระทบมากแค่ไหน ซึ่งเขาตอบว่า Spectre เป็นเรื่องที่ยาก และจะต้องเป็นกรณีในระยะยาว แต่ในกรณีของ Meltdown ก็มีการแก้ไขหมดแล้ว โดยเฉพาะในฝั่งของ container ที่ลูกค้าทุกคนได้รับแพตช์กันหมดแล้ว สิ่งที่น่าสนใจคือปัญหาเหล่านี้จะเปลี่ยนแปลงวิธีการทำงานของคลาวด์จากเดิมที่เป็นลักษณะของการแบ่งเช่า (share tenent) ไปสู่การให้ลูกค้าเป็นเครื่อง (bare metal isolation) ซึ่ง IBM รองรับมานานแล้ว และเขาคิดว่าภายในอีก 6 เดือนจากนี้ แนวโน้มของหลายบริษัทจะไปสู่เส้นทางแบบ bare metal isolation มากขึ้นกว่าเดิม
เขายอมรับว่าลูกค้าอาจจะเจอปัญหาเรื่องประสิทธิภาพอยู่บ้าง แต่ก็เป็นสิ่งที่เกิดขึ้นไม่ใช่กับคลาวด์เท่านั้น แต่ก็เกิดขึ้นกับทุกคนและอุปกรณ์ทุกชิ้นด้วย
เขาชี้ให้เห็นว่าในอนาคตอย่างน้อยที่สุดในปีนี้ สำหรับ Kubernetes ที่มีความยืดหยุ่นมากอยู่แล้ว ความร่วมมือระหว่าง IBM และ Google อย่างโครงการ Istio ที่จะทำให้ microservices สามารถเชื่อมต่อด้วยกัน ทำทดสอบได้ดีขึ้น และติดต่อกันอย่างปลอดภัย เป็นแพลตฟอร์มที่ไม่ขึ้นกับภาษา (language neutral) ซึ่งเทียบแล้วคือเป็นระบบ smart router สำหรับ microservices ต่างๆ ที่รันอยู่บนเครือข่าย และตอนนี้เริ่มต้นมีการใช้แล้ว โดยในระยะเวลาที่เท่ากัน Istio มีคนใช้ (adoption rate) มากกว่า Kubernetes ไปแล้ว
Jason ระบุว่าบริการทั้งหมดของ IBM จะย้ายขึ้นไปสู่ container อย่าง Kubernetes ให้ได้มากที่สุดเท่าที่จะทำได้ เขาเชื่อว่าแพลตฟอร์มอย่าง Kubernetes จะเป็นอนาคตและทำงานได้ง่ายขึ้น โดยเขาทิ้งท้ายว่าสำหรับนักพัฒนาแล้วเป็นส่วนที่สำคัญที่สุด ไม่ใช่การทำให้แอพของตัวเองขึ้นไปรันบน container เท่านั้น แต่เป็นเรื่องของการออกแบบและวิศวกรรมซอฟต์แวร์ที่จะต้องทำให้รองรับตั้งแต่แรก เพื่อที่จะได้เปลี่ยนและโอนย้ายไปสู่ระบบในอนาคตได้ดีขึ้นกว่าเดิม