ปัจจุบันนี้ Ruk-Com Cloud PaaS เป็น multilingual ที่มีการสร้าง Java Cloud และยังคงเน้นภาษาการเขียนโปรแกรมเป็นหลัก คู่มือนี้เราจะอธิบายเกี่ยวกับฟีเจอร์ที่มีลักษณะพิเศษของโฮสต์ Java ภายในแพลตฟอร์มและคุณสามารถใช้งานฟังก์ชันที่หลากหลายได้อย่างง่ายดาย
คุณสามารถใช้สารบัญด้านล่างเพื่อค้นหาข้อมูลที่ต้องการภายในคู่มือได้เร็วขึ้น:
- Java Versions
- Java Application Servers
- Java Environment Creation
- Java Application Deployment
- Domains Management
- Automatic Vertical Scaling
- Horizontal Scaling: Manual and Automatic
- Java Clusterization
- Database Connection to Java Application
Java Versions
ปัจจุบันมีเวอร์ชัน Java ดังนี้
- AdoptOpenJDK: 8.0.312; 11.0.13; 13.0.2; 14.0.2; 15.0.2; 16.0.2
- Amazon Corretto: 8.322.06; 11.0.14.10.1; 15.0.2.7.1; 16.0.2.7.1
- Eclipse OpenJ9: 0.11.0 (8u192-b12; 11.0.1); 0.15.1 (8u222-b10; 11.0.4); 0.17.0 (8u232-b09; 11.0.5; 13.0.1); 0.18.1(8u242-b08; 11.0.6; 13.0.2) 0.20.0 (8u252-b09; 11.0.7); 0.21.0 (8u262-b10; 8u265-b01; 11.0.8; 14.0.2); 0.22.0 (15.0.0); 0.23.0 (8u272-b10; 11.0.9); 0.24.0 (8u282-b08; 11.0.10); 0.25.0-16; 0.26.0 (8u292-b10; 11.0.11); 0.27.0 (8u302-b08; 11.0.12); 0.29.0 (8u312-b07; 11.0.13); 0.30.0 (8u322-b06; 11.0.14)
- Eclipse Temurin: 8.0.322; 11.0.14; 17.0.2
- GraalVM CE (ปัจจุบันสำหรับ Java Engine และ Maven เท่านั้น): 19.3.1; 20.2.0; 21.3.0; 22.0.0.2
- Liberica JDK: 8.0.322; 11.0.14; 13.0.2; 14.0.2; 15.0.0; 16.0.0; 17.0.2
- Oracle JDK Dev: 7.0_79; 8.0_202; 11.0.2
- Oracle OpenJDK: 7.0.261; 8.0.322; 11.0.14; 13.0.2; 14.0.2; 15.0.2; 16.0.2; 17.0.2; 18.0; 19.ea-b16
- Zulu Community: 7.0.332; 8.0.322; 11.0.14; 13.0.9; 14.0.2; 15.0.6; 16.0.2; 17.0.2
Java เวอร์ชัน 6, 9, 10 และ 12 ไม่สามารถสร้าง environment ใหม่ได้เนื่องจากเวอร์ชันเหล่านี้หมดอายุการใช้งานแล้ว อย่างไรก็ตาม อินสแตนซ์ที่มีอยู่แล้วยังสามารถทำงานได้อย่างสมบูรณ์ (รวมถึงการ redeploy การโคลน การปรับขนาดแนวนอน)
คุณสามารถเลือกเวอร์ชันที่ต้องการในขณะที่สร้าง environment ได้และสามารถเปลี่ยนเวอร์ชันได้ภายหลัง คุณสามารถดูขั้นตอนได้ในเอกสาร Java Versions
Java Application Servers
Ruk-Com Cloud รองรับ Java Engine และ Java Application Servers ที่หลากหลายดังนี้:
- GlassFish
- Jetty
- Payara
- Spring Boot
- Tomcat
- TomEE
- WildFly
อ่านเอกสารด้านล่างสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเซิร์ฟเวอร์ Java ภายในแพลตฟอร์ม
- Java App Server Configuration
- Java Garbage Collection
- Java Agent
- Java Tutorials
Java Environment Creation
การโฮสต์แอปพลิเคชัน Java คุณจะต้องสร้าง environment ให้เหมาะสม คลิกปุ่ม New Environment ไปที่แท็บ Java และเลือกแอปพลิเคชันเซิร์ฟเวอร์ Java, database และสแต็กอื่นๆที่ต้องการ คุณสามารถปรับแต่งการตั้งค่า cloudlets, disk space, region และอื่นๆได้ตามการใช้งานของคุณ จากนั้นคลิก Create
เซิร์ฟเวอร์ที่เพิ่มเข้ามาทั้งหมดจะเป็นคอนเทนเนอร์แยกกันอย่างสมบูรณ์ซึ่งตั้งอยู่บนโฮสต์ที่แตกต่างกันเพื่อให้มีความพร้อมใช้งานมากขึ้น โดยการแยกคอนเทนเนอร์จะช่วยลดความเสี่ยงที่จะรบกวนคอนเทนเนอร์อื่น คุณสามารถแนบ public IP กับเซิร์ฟเวอร์เหล่านี้ได้เพื่อเข้าถึงคอนเทนเนอร์โดยตรง (หากใช้การตั้งค่าเริ่มต้น คำขอที่ถูกส่งเข้ามาที่แอปพลิเคชันของคุณจะถูก proxy โดย shared load balancer)
Java Application Deployment
หลังจากสร้าง environment เรียบร้อยแล้วคุณสามารถ deploy แอปพลิเคชัน java ของคุณได้ด้วยกระบวนการ deploy อัตโนมัติอย่างสมบูรณ์ซึ่งจะช่วยให้คุณเริ่มและรันโปรเจกต์ได้อย่างง่ายดาย
วิธีการ deploy ที่รองรับมีทั้งหมด 3 วิธีดังนี้:
- ผ่านแอปพลิเคชัน archive – .war, .zip, .jar, and .ear archives
- จาก GIT/SVN remote repository, โดยใช้ Maven build node
- ใช้ plugins – Ant Task, Eclipse, IntelliJ IDEA, Maven และ NetBeans
คุณสามารถอ่านเอกสารที่เหมาะสมเพื่อเรียนรู้เกี่ยวกับการ deploy แอปพลิเคชัน java ตามหัวข้อนี้
นอกจากนี้ยังมีคำแนะนำสำหรับการจัดการโปรเจกต์ของคุณผ่าน Gitblit และ WebDAV
Domains Management
คุณสามารถผูกชื่อโดเมนของคุณกับ URL ของแอปพลิเคชันและสามารถใช้แทนโดเมน environment ได้
- CNAME redirect หากคุณใช้ Shared Load Balancer; ซึ่งเหมาะสมกับ environment ที่กำลังทดสอบและพัฒนา
- DNS A Record หากคุณใช้ Public IP; สามารถรองรับปริมาณ traffic load สูงและเหมาะสมกับ production environments
นอกจากนี้ยังมีฟีเจอร์สลับโดเมน SwapExtIps API/CLI คุณสามารถอัปเกรดและแก้ไขแอปพลิเคชันของคุณได้โดยไม่มี downtime (ผู้ใช้จะไม่สังเกตเห็นว่าเว็บของคุณหยุดชะงัก)
เคล็ดลับ: ในแต่ละ environment คุณสามารถใช้หลายโดเมนได้เพื่อเพิ่มความสามารถในการใช้งาน ประสิทธิภาพ และความสามารถในการปรับขนาด อีกทั้งประหยัดค่าใช้จ่ายโดยไม่จำเป็นต้องตั้งค่าอินสแตนซ์แยกกันสำหรับแอปต่างๆ ยกตัวอย่างที่เหมาะสมดังนี้:
– Multiple Domains for Tomcat
– Multiple Domains for GlassFish
– Multiple Domains for PHP
Automatic Vertical Scaling
แพลตฟอร์มได้จัดเตรียม cloudlets แบบ dynamic (เช่น ทรัพยากร RAM และ CPU) ที่แอปพลิเคชันของคุณต้องใช้จัดการกับ load ปัจจุบัน เพียงคุณระบุขีดจำกัดสูงสุด maximum limit จากนั้นแพลตฟอร์มจะดำเนินการทุกอย่างโดยอัตโนมัติ คุณไม่จำเป็นต้องแก้ไขทรัพยากรด้วยตนเอง ซึ่งเรียกว่าฟีเจอร์นี้ automatic vertical scaling ทำให้แน่ใจได้ว่าคุณจะไม่จ่ายค่าบริการมากเกินไปสำหรับทรัพยากรที่ไม่ได้ใช้งานและจะไม่ประสบปัญหาทรัพยกรไม่เพียงพอ
ในการตั้งค่าหรือเปลี่ยนขีดจำกัดการปรับขนาดแนวตั้ง คุณสามารถใช้ตัวเลื่อนที่เหมาะสมภายในโทโพโลยี:
Horizontal Scaling: Manual และ Automatic
ในกรณีที่แอปพลิเคชันของคุณได้รับความนิยมอย่างสูงและโหนดเดียวไม่เพียงพอ คุณสามารถปรับขนาดแนวนอนเพื่อเพิ่มโหนดซึ่งจะทำให้มั่นใจได้ว่าแอปพลิเคชันของคุณมีความน่าเชื่อถือและความพร้อมใช้งานสูงโดยโหนดที่เพิ่มใหม่ทั้งหมดจะถูกสร้างขึ้นบน hardware node ที่แตกต่างกัน
คลิกปุ่ม +/- ที่การตั้งค่า Horizontal Scaling ในการตั้งจำนวนโหนดเพิ่มขึ้น load balancer จะถูกเพิ่มโดยอัตโนมัติ
คุณสามารถปรับเปลี่ยนโหมดการปรับขนาดดังนี้:
- Stateless – สร้างโหนดใหม่ทั้งหมดพร้อมกันจากเทมเพลต image ที่มีอยู่ในแพลตฟอร์ม
- Stateful – คัดลอกไฟล์ของคอนเทนเนอร์หลักไปยังโหนดใหม่ตามลำดับ
การปรับขนาดแบบ horizontal สามารถทำได้ทั้งแบบ manual และ automatic คุณสามารถตั้งค่า trigger ให้ระบบปรับขนาดแนวนอนอัตโนมัติได้โดยคลิกปุ่ม Setting ที่ environment ที่คุณต้องการและเลือกเมนู Auto Horizontal Scaling คุณสามารถตั้งเงื่อนไขการปรับขนาดตามที่คุณต้องการ เช่น ตั้งเปอร์เซ็นต์สำหรับการเพิ่มโหนดและลดโหนดสำหรับประเภททรัพยากรที่ระบุในช่วงเวลาหนึ่ง หากโหลดอยู่นอกขีดจำกัดที่ตั้งไว้ กระบวนการลบ/เพิ่มโหนดจะถูกเรียกโดยอัตโนมัติ
คุณสามารถเลือกทรัพยากรที่ต้องการตรวจสอบการใช้งานและตั้งค่า trigger ได้ดังนี้:
- CPU
- Memory (RAM)
- Network
- Disk I/O
- Disk IOPS
ทริกเกอร์จะเริ่มตรวจสอบการใช้ทรัพยากรทันทีหลังจากเพิ่มเงื่อนไข เมื่อระดับการใช้งานเกินขีดจำกัดที่ระบุทริกเกอร์จะถูกเรียกใช้ จากนั้นหากโหลดยังคงอยู่ในช่วงเวลาที่กำหนด ระบบจะดำเนินการโดยปรับจำนวนโหนดโดยอัตโนมัติ
Java Clusterization
การทำแอปพลิเคชันเซิร์ฟเวอร์แบบคลัสสเตอร์เป็นการจำลองเซสชันระหว่างคู่โหนด โดยไม่จำเป็นต้องใช้ซอร์ฟแวร์เพิ่มเติมหรือ memcached เพื่อเพิ่มความพร้อมใช้งานของแอปพลิเคชัน
แพลตฟอร์มได้จัดเตรียมการจำลองเซสชันอัตโนมัติระหว่างเซิร์ฟเวอร์ Tomcat และ TomEE ด้วย multicast เพื่อให้เว็บแอปพลิเคชันมีความพร้อมใช้งานสูงภายในคลัสเตอร์ Java โดยคุณสามารถเปิดใช้งานฟีเจอร์ High Availability ได้ที่หน้าโทโพโลยีในขณะที่สร้าง environment
การทำคลัสเตอร์อัตโนมัติที่ทันสมัยกว่าสำหรับ GlassFish, Payara, และ WildFly สามารถทำได้ตามเอกสารนี้
การเชื่อมต่อ Database ไปยัง Java Application
คุณสามารถติดตั้งเซิร์ฟเวอร์ database ที่สามารถปรับขนาดและจัดการได้อย่างสมบูรณ์ภายใน Java environment สำหรับการสร้างการเชื่อมต่อ คุณสามารถปรับแอปพลิเคชันของคุณตามคำแนะนำ database แต่ละประเภทที่คุณต้องการใช้งาน
Ruk-Com Cloud ให้บริการโฮสติ้ง Java ที่มีความพร้อมใช้งานสูง ความซ้ำซ้อน และมีความสามารถในการปรับขนาดเซิร์ฟเวอร์ที่เป็นจุดแข็งสำหรับแอปพลิเคชันของคุณ