PayPal ได้ออกมาเผยถึงการใช้งาน Docker ภายในบริษัทมากถึง 150,000 Container เพื่อรองรับ Application กว่า 700 ระบบ ส่งผลให้เหล่านักพัฒนาภายในบริษัทนั้นสามารถทำการ Build และ Test ได้มีประสิทธิภาพมากขึ้นถึง 50%
หลังจากที่ PayPal ได้ตัดสินใจหันมาใช้ Docker อย่างเต็มตัวเพื่อรองรับการพัฒนา Application สำหรับผู้ใช้งานกว่า 218 ล้านคนทั่วโลก ทาง PayPal ก็ได้ใช้เวลา 2 ปีที่ผ่านมาในการปรับโครงสร้างของระบบ Application ภายในบริษัทกว่า 700 ระบบเพื่อย้ายมาสู่การใช้งาน Docker รวมถึงใช้ Docker Enterprise Edition เพื่อช่วยให้การบริหารจัดการ Container ทั้งหมด ทั้งหมดนี้ส่งผลให้เหล่านักพัฒนาและนักทดสอบภายใน PayPal สามารถทำงานได้อย่างคล่องตัวมากยิ่งขึ้น ไม่ว่าจะเป็นการเลือกนำเทคโนโลยีใหม่ๆ มาลองใช้งานใน Stack ที่ต้องการ รวมถึงสามารถเลือกออกแบบสถาปัตยกรรมระบบในแต่ละส่วนด้วยแนวทางที่แตกต่างกันออกไปได้ อีกทั้งยังลดเวลาในการแก้ไขปัญหาที่เกิดขึ้นในแต่ละระบบลงได้เป็นอย่างมากอีกด้วย
แรกเริ่มนั้น PayPal ได้ทำการนำ Docker มาเริ่มต้นใช้งานเพื่อปรับปรุงกระบวนการการทำงานภายในให้มีประสิทธิภาพสูงขึ้นเสียก่อน โดยทำการ Migrate ระบบ Application เดิมที่มีอยู่ขึ้นมาใช้งานบน Container แทนโดยไม่ได้ทำการเปลี่ยนแปลง Code ใดๆ เลย ขั้นตอนนี้อยู่ใน Phase 1 ของแผนการของทาง PayPal ซึ่งก็ได้ส่งผลดีต่อ PayPal ด้วยกันหลักๆ 2 ประการ ได้แก่
- ได้แยกการทำ Deployment ออกจาก Framework Stack ทำให้ทุกๆ การ Deploy ระบบของ PayPal นั้นสามารถทำได้ด้วยขั้นตอนเดียวกัน ไม่ว่าจะใช้ Technology Stack ใดในการพัฒนาก็ตาม
- ได้ยกเครื่อง OS และ Kernel ครั้งใหญ่ โดยเมื่อ Application ไม่ได้ผูกกับ Technology Stack อีกแล้ว ทาง PayPal ก็สามารถทำการใช้ OS และ Kernel รุ่นใหม่ๆ ซึ่งมีทั้งความมั่นคงปลอดภัยและประสิทธิภาพที่สูงขึ้นกว่าแต่ก่อนได้ ทำให้ระบบมีประสิทธิภาพสูงขึ้น 10-20% เลยทีเดียว

หลังจากนั้นก็เข้าสู่ขั้นตอนที่เหล่านักพัฒนาจะได้เริ่มทำความคุ้นเคยกับ Docker ให้มากขึ้น เริ่มนำ Docker Supply Chain เข้ามาใช้งาน จนประสิทธิภาพในการพัฒนาระบบ, การสร้างระบบ, การติดตั้ง และการทดสอระบบนั้นสูงขึ้นถึง 50% จากการใช้ Docker for Desktop เข้ามาช่วย ทำให้นักพัฒนาและ QA ได้ทำงานบน Environment ที่เทียบเคียงกับระบบ Production ในขณะที่เหล่าผู้ดูแลระบบนั้นก็สามารถทำการอัปเดตระบบปฏิบัติการทั้งหมดได้โดยง่าย ด้วยการเปลี่ยนแปลงข้อมูลใน Docekerfile สำหรับ Container Image เท่านั้น
เมื่อเวลาผ่านไปสองปี PayPal ก็สามารถย้าย 700 Application ขึ้นมายัง 150,000 Container ได้สำเร็จ และขั้นถัดไปนั้นทาง PayPal ก็ได้เริ่มพัฒนาระบบ Container-as-a-Service (CaaS) ขึ้นมาใช้ภายใน Cloud ของตนเอง แล้วทำการย้าย Container ที่ใช้งานอยู่เดิมขึ้นมาอยู่บนระบบนี้ ทำให้สามารถลดทรัพยากรที่ใช้งานลงได้, เพิ่ม Security ในระบบให้สูงขึ้น และเพิ่ม Availability ให้ระบบมีความทนทานสูงขึ้น รวมถึงยังทำให้ขั้นตอนการปรับปรุงประสิทธิภาพและติดตามการทำงานของระบบต่างๆ ถูกยุบรวมให้กลายเป็นกระบวนการเดียวๆ กัน ง่ายต่อการทำงานในระยะยาว โดยสรุปแล้วมีประโยชน์ที่ได้รับหลักๆ ดังนี้
- ลดจำนวน vCPU ที่ QA ใช้ลง 50%
- ลดจำนวน vCPU ที่ Developer ใช้ลง 25%
- ทำการ Revoke Access บนระบบ Production ได้ง่ายขึ้น
- ทำ Automate Patching ได้
- เพิ่มจำนวน Container ได้อย่างรวดเร็ว ไม่ต้องใช้ VM ที่เพิ่มขยายได้ช้าอีกต่อไป
- ระบบมีความทนทานสูงมาก และทุกๆ Application สามารถนำไปขึ้นระบบใช้งานที่ไหนก็ได้
- สามารถ Deploy ทั้งระบบลงไปยัง Availability Zone ใดๆ ก็ได้ในเวลาไม่กี่ชั่วโมง
- ใช้เครื่องมือเดียวดูแลได้ทุกระบบ
- สร้างคู่มือการทำงานสำหรับพนักงานทั้งหมดได้ง่ายขึ้น ไม่ว่าจะใช้ Technology Stack ใดๆ ก็ตาม

สำหรับรายละเอียดฉบับเต็ม สามารถศึกษาได้ที่ https://www.docker.com/customers/paypal-uses-docker-containerize-existing-apps-save-money-and-boost-security ครับ
ที่มา: https://blog.docker.com/2017/12/containers-at-paypal/