Java Developer’s Center




ปัจจุบันนี้ 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

Java environment creation

เซิร์ฟเวอร์ที่เพิ่มเข้ามาทั้งหมดจะเป็นคอนเทนเนอร์แยกกันอย่างสมบูรณ์ซึ่งตั้งอยู่บนโฮสต์ที่แตกต่างกันเพื่อให้มีความพร้อมใช้งานมากขึ้น โดยการแยกคอนเทนเนอร์จะช่วยลดความเสี่ยงที่จะรบกวนคอนเทนเนอร์อื่น คุณสามารถแนบ 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 TaskEclipseIntelliJ IDEAMaven และ NetBeans

Java application deployment

คุณสามารถอ่านเอกสารที่เหมาะสมเพื่อเรียนรู้เกี่ยวกับการ 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 (ผู้ใช้จะไม่สังเกตเห็นว่าเว็บของคุณหยุดชะงัก)

Java domains management

เคล็ดลับ: ในแต่ละ 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 ทำให้แน่ใจได้ว่าคุณจะไม่จ่ายค่าบริการมากเกินไปสำหรับทรัพยากรที่ไม่ได้ใช้งานและจะไม่ประสบปัญหาทรัพยกรไม่เพียงพอ

automatic vertical scaling pricing image

ในการตั้งค่าหรือเปลี่ยนขีดจำกัดการปรับขนาดแนวตั้ง คุณสามารถใช้ตัวเลื่อนที่เหมาะสมภายในโทโพโลยี:

configure Java vertical scaling

Horizontal Scaling: Manual และ Automatic

ในกรณีที่แอปพลิเคชันของคุณได้รับความนิยมอย่างสูงและโหนดเดียวไม่เพียงพอ คุณสามารถปรับขนาดแนวนอนเพื่อเพิ่มโหนดซึ่งจะทำให้มั่นใจได้ว่าแอปพลิเคชันของคุณมีความน่าเชื่อถือและความพร้อมใช้งานสูงโดยโหนดที่เพิ่มใหม่ทั้งหมดจะถูกสร้างขึ้นบน hardware node ที่แตกต่างกัน

Java horizontal scaling

คลิกปุ่ม +/- ที่การตั้งค่า 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 auto horizontal scaling

ทริกเกอร์จะเริ่มตรวจสอบการใช้ทรัพยากรทันทีหลังจากเพิ่มเงื่อนไข เมื่อระดับการใช้งานเกินขีดจำกัดที่ระบุทริกเกอร์จะถูกเรียกใช้ จากนั้นหากโหลดยังคงอยู่ในช่วงเวลาที่กำหนด ระบบจะดำเนินการโดยปรับจำนวนโหนดโดยอัตโนมัติ

Java Clusterization

การทำแอปพลิเคชันเซิร์ฟเวอร์แบบคลัสสเตอร์เป็นการจำลองเซสชันระหว่างคู่โหนด โดยไม่จำเป็นต้องใช้ซอร์ฟแวร์เพิ่มเติมหรือ memcached เพื่อเพิ่มความพร้อมใช้งานของแอปพลิเคชัน

แพลตฟอร์มได้จัดเตรียมการจำลองเซสชันอัตโนมัติระหว่างเซิร์ฟเวอร์ Tomcat และ TomEE ด้วย multicast เพื่อให้เว็บแอปพลิเคชันมีความพร้อมใช้งานสูงภายในคลัสเตอร์ Java โดยคุณสามารถเปิดใช้งานฟีเจอร์ High Availability ได้ที่หน้าโทโพโลยีในขณะที่สร้าง environment

Java clusterization

การทำคลัสเตอร์อัตโนมัติที่ทันสมัยกว่าสำหรับ GlassFish, Payara, และ WildFly สามารถทำได้ตามเอกสารนี้

Java auto-clustering

การเชื่อมต่อ Database ไปยัง Java Application

คุณสามารถติดตั้งเซิร์ฟเวอร์ database ที่สามารถปรับขนาดและจัดการได้อย่างสมบูรณ์ภายใน Java environment สำหรับการสร้างการเชื่อมต่อ คุณสามารถปรับแอปพลิเคชันของคุณตามคำแนะนำ database แต่ละประเภทที่คุณต้องการใช้งาน

Ruk-Com Cloud ให้บริการโฮสติ้ง Java ที่มีความพร้อมใช้งานสูง ความซ้ำซ้อน และมีความสามารถในการปรับขนาดเซิร์ฟเวอร์ที่เป็นจุดแข็งสำหรับแอปพลิเคชันของคุณ