Deploy โดยไม่แก้ Code และไม่ติด Vendor Lock-In เพื่อย้ายระหว่าง Cloud Platform
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน Deploy โดยไม่แก้ Code และไม่ติด Vendor Lock-In เพื่อย้ายระหว่าง Cloud Platform บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
สิ่งที่แตกต่างจากบริการ Hosting ส่วนใหญ่ Ruk-Com Cloud PaaS ไม่มีการบังคับให้นักพัฒนาปฏิบัติตามข้อกำหนดเฉพาะของ Immutable Infrastructure แบบ เจ้าของ Runtime หรือ API เพื่อ Host โปรเจกต์ วิธีการดังกล่าวมีความสำคัญอย่างยิ่งเมื่อต้องย้ายจาก virtual machines ไปยัง Container การสลายตัวแบบดั้งเดิม (ที่เรียกว่า legacy) ไปยัง microservices หรือในขณะที่ย้ายจากผู้ให้บริการรายหนึ่งไปยังอีกรายหนึ่ง
การขจัดความจำเป็นของการออกแบบ Application ใหม่ ทำให้ deploy ได้ง่ายโดยใช้ไฟล์เก็บถาวร (zip, tar.gz, war, jar, ear), FTPS/SFTP, GIT/SVN พร้อมการอัปเดตอัตโนมัติจากแผงควบคุม dev หรือผ่าน Plugin ที่รวมกันสำหรับ Maven, Eclipse, NetBeans, IntelliJ IDEA ทั้งหมดนี้ทำให้จุดเริ่มต้นง่ายขึ้นและราบรื่นยิ่งขึ้นและช่วยลดเวลาออกสู่ตลาดและกำจัดการ lock-in ของผู้ขาย

วิธีการเปลี่ยน Code เป็นศูนย์ เช่นเดียวกับการรองรับ Application และ System Container จัดเตรียมความสามารถในการรันทั้ง cloud-native microservices และ legacy monolithic applications ขึ้นอยู่กับ Java, PHP, Ruby, Node.js, Python และ Docker

นอกจากนี้การ deploy และการรัน Application เพิ่มเติมภายใน Container จะไม่ถูกจำกัดหลังจากการโยกย้ายจาก VM ทำให้คุณสามารถ:
- Run services ต่างๆภายใน Container เดียว
- ใช้ Port node ที่จำเป็น
- แนบ Public IPv4 หรือ IPv6 หลายรายการต่อ Container
- เขียนไปยัง File System ในเครื่องหรือ remote ระยะไกล
- เข้าถึง Container ผ่าน SSH ที่เข้ากันได้กับเครื่องมือการจัดการการกำหนดค่า เช่น Chef หรือ Puppet
- Deploy แผงควบคุมที่รู้จักกันทั่วไปสำหรับ VPS และการจัดการ Hosting ที่ใช้ร่วมกัน (cPanel, Plesk และ ISPManager)
- การดำเนินการ live migration คล้ายกับ vMotion
- Deploy Docker Engine ในลักษณะเดียวกันกับที่คุณทำกับ VMs
- การดำเนินการอื่น ๆ ที่ดำเนินการก่อนหน้านี้ภายใน VPS
นอกจากนี้ Ruk-Com Cloud ยังเก็บ IPs และชื่อ Host เดียวกันสำหรับแต่ละ Container หลังจากการหยุดทำงานตามแผนหรือเป็นครั้งคราวการหยุดทำงานด้วยเหตุนี้คุณจะเป็นอิสระจากความจำเป็นในการเขียนใหม่เพื่อให้บริการติดตามการเชื่อมต่อที่ถูกต้อง
การ Deploy โครงการด้วยการเปลี่ยนแปลงรหัสเป็นศูนย์
เพื่อให้ข้อมูลข้างต้นชัดเจนยิ่งขึ้นเราจะอธิบายขั้นตอนง่ายๆที่จำเป็นในการ deploy project ที่ Ruk-Com Cloud
1. สร้าง environment ผ่าน topology wizard ที่ครอบคลุมพร้อมกับกอง Softwareที่กำหนดค่าไว้ล่วงหน้ามากมาย (เช่น application servers, database, load balancers, cache, และ build nodes)

2. เมื่อมีการสร้าง environment ที่เหมาะสม คุณสามารถ deploy Application ของคุณด้วยตัวเลือกการ deploy ที่รองรับอย่างใดอย่างหนึ่ง:
- จัดเตรียมการเก็บไฟล์แบบถาวร (zip, bzip2, tar, tar.gz, tar.bz2, war, jar หรือ ear) พร้อม Application Resource ที่บรรจุไว้ล่วงหน้าโดยอัปโหลดไปยังที่เก็บข้อมูล Platform หรือให้ลิงก์ไปยังตำแหน่งที่เก็บไว้
- ส่งไฟล์การติดตั้งผ่านช่องทางFTPS/SFTP
- ดึง sources จาก Git/SVN Repository (นอกจากนี้คุณสามารถตั้งค่าการอัปเดตอัตโนมัติได้)
- ใช้ Plugin แบบรวม (Maven, Eclipse, NetBeans, IntelliJ IDEA)
หลังจากการเริ่มต้นกระบวนการกำหนดค่าทั้งหมด (เช่น การเชื่อมต่อกับ load balancer, การปรับแต่งการใช้หน่วยความจำ, การเปิดใช้ SSL หรือ IP หากจำเป็น เป็นต้น) จะได้รับการจัดการโดยอัตโนมัติ โดยไม่จำเป็นต้องแก้ไข source code ซึ่งมีการปรับแต่งเพียงอย่างเดียวที่คุณอาจจำเป็นต้องใช้คือการปรับเปลี่ยนการตั้งค่า Application แบบกำหนดเองบางอย่างเนื่องจากตำแหน่งใหม่ (เช่น ที่อยู่ IP หรือชื่อ Domain - การกำหนดค่า Server ที่เหมาะสมทั้งหมดจะสามารถแก้ไขได้โดยตรงเสมอ ผ่าน Ruk-Com Cloud Dashboard พร้อมกับการจัดการไฟล์ในตัว)
ด้วยวิธีนี้คุณสามารถโยกย้าย Application ใดๆ ไปยัง PaaS จาก Cloud, VPS หรือ VM อื่นๆได้อย่างง่ายดายโดยไม่จำเป็นต้องปรับเปลี่ยน Code
