ชนิดการปรับใช้แอปพลิเคชัน

เสร็จสมบูรณ์เมื่อ

มีหลายวิธีในการปรับใช้แอปพลิเคชัน Java ไปยังระบบคลาวด์ หน่วยนี้จะสํารวจตัวเลือกต่าง ๆ เพื่อให้ในหน่วยถัดไป คุณสามารถเข้าใจบริการที่ Azure มีให้ได้ดียิ่งขึ้น

เครื่องเสมือน คอนเทนเนอร์ หรือแพลตฟอร์มแบบบริการใช่หรือไม่

คําถามหลักคือ คุณต้องการหรือจําเป็นต้องปรับใช้แอปพลิเคชันของคุณบนเครื่องเสมือน (VM) ภายในคอนเทนเนอร์ หรือเป็นแพลตฟอร์มในฐานะโซลูชันบริการ (PaaS)

  • ด้วย เครื่องเสมือนคุณอยู่ในโลกที่คล้ายกับสภาพแวดล้อมในองค์กรหรือศูนย์ข้อมูลแบบคลาสสิก Azure มีชุดเครื่องเสมือนที่กําหนดค่าไว้ล่วงหน้าซึ่งเรียกใช้ระบบปฏิบัติการหลัก (Windows และ Linux) และคุณจะต้องกําหนดค่าและบํารุงรักษาเครื่องเหล่านั้น

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

    โซลูชัน VM ทํางานได้ดีถ้าคุณมีทีมปฏิบัติงานที่มีประสบการณ์ที่จะกําหนดค่าและรักษาไว้ และถ้าคุณมีกรณีการใช้งานเฉพาะ ตัวอย่างเช่น คุณอาจใช้ไลบรารีดั้งเดิมหรือซอฟต์แวร์ที่เป็นกรรมสิทธิ์บางอย่าง เช่น เซิร์ฟเวอร์ Oracle WebLogic หรือ IBM WebSphere Application Server

  • ด้วย คอนเทนเนอร์คุณยังคงมีตัวควบคุมส่วนใหญ่ที่คุณมีกับ VM แต่ใช้ความพยายามในการดําเนินงานน้อยลง คุณสามารถติดตั้ง Java Virtual Machine (JVM) ของคุณเองหรือซอฟต์แวร์เฉพาะบางตัว และคอนเทนเนอร์ของคุณจะทํางานภายในเครื่องหรือบนผู้ให้บริการคลาวด์ใดๆ

    เนื่องจากคอนเทนเนอร์ให้อิสระเป็นจํานวนมาก จึงต้องทนทุกข์ทรมานจากปัญหาบางอย่างเช่นเดียวกับ VM ถ้าคุณจัดหา JVM ของคุณเอง คุณจะต้องอัปเดตและแก้ไขตามความจําเป็น ด้วยเหตุนี้ รูปภาพ Docker จําเป็นต้องมีการรวมกันอย่างต่อเนื่องและเชนเครื่องมือ (CI/CD) แบบต่อเนื่องเพื่อรักษาคอนเทนเนอร์อย่างถูกต้อง เนื่องจากรูปภาพ Docker สามารถทํางานภายในเครื่องและน้ําหนักเบากว่า VM ดังนั้นจึงยังมอบประสบการณ์ที่ยอดเยี่ยมสําหรับนักพัฒนาอีกด้วย

  • ด้วยแพลตฟอร์ม ที่เป็นโซลูชันบริการ ผู้ให้บริการระบบคลาวด์จัดการการบํารุงรักษาและภาระการดําเนินงานส่วนใหญ่ มีการอัปเดตระบบปฏิบัติการ (OS) โปรแกรมแก้ไข Java ความปลอดภัย และการปฏิบัติตามข้อกําหนดทั้งหมด ดังนั้นตัวเลือกนี้มักจะปลอดภัยกว่าและมีค่าใช้จ่ายน้อยลง นอกจากนี้ยังมาพร้อมกับคุณลักษณะการปรับขนาดบางอย่างซึ่งควรอนุญาตให้แอปพลิเคชันของคุณปรับตัวให้เข้ากับความต้องการของลูกค้าของคุณได้ดีขึ้น นอกจากนี้ยังส่งผลให้ประสิทธิภาพการทํางานดีขึ้นภายใต้การโหลดและต้นทุนที่ต่ํากว่าเมื่อมีปริมาณการใช้งานน้อยลง

    คุณสามารถบรรลุผลได้มากขึ้นโดยใช้โซลูชัน PaaS คุณสามารถตั้งค่าการกําหนดค่าอัตโนมัติ จัดการ และโหลดข้อมูลลับ (ตัวอย่างเช่น โดยใช้ Azure Key Vault) ตรวจสอบแอปพลิเคชันของคุณ เปิดใช้เซสชันการทําโปรไฟล์แบบสด และเปิดใช้งานการปรับใช้แบบไม่มีเวลาหยุดทํางาน

ตัวเลือกการปรับใช้

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

  • การปรับใช้โค้ดต้นทาง: คุณยอมรับซอร์สโค้ดของคุณไปยังที่เก็บข้อมูล Git และผู้ให้บริการระบบคลาวด์เรียกใช้กระบวนการที่คอมไพล์ สร้าง และทําแพคเกจแอปพลิเคชัน
  • การปรับใช้ไฟล์ JAR, WAR หรือ EAR: คุณแพคเกจแอปพลิเคชันของคุณ โดยปกติจะเป็นไฟล์ JAR (Java ARchive) ที่ใช้งานได้ แต่ WAR (Web Application ARchive), EAR (Enterprise Application ARchive) และรูปแบบไฟล์อื่น ๆ ก็เป็นไปได้เช่นกัน จากนั้นผู้ให้บริการระบบคลาวด์จะเรียกใช้ไฟล์ปฏิบัติการได้

ตัวเลือกการปรับใช้ทั้งสองนี้เป็นวิธีที่คลาสสิกในการเรียกใช้แอปพลิเคชัน Java สําหรับทั้งสองตัวเลือก กระบวนการสร้างมักจะคล้ายกัน และความแตกต่างหลักคือตําแหน่งที่เรียกใช้กระบวนการนั้น การอนุญาตให้ผู้ให้บริการระบบคลาวด์สร้างเอกสารเป็นเรื่องง่ายขึ้น และด้วยวิธีนี้ผู้ให้บริการระบบคลาวด์จะใช้การตรวจสอบความปลอดภัยและโปรแกรมแก้ไขของตนเอง ด้วยการสร้างแอปพลิเคชันภายในเครื่องหรือโดยใช้แพลตฟอร์ม CI/CD เช่น การดําเนินการ GitHub คุณจะได้รับความยืดหยุ่นและการควบคุมที่มากขึ้น

ฟังก์ชันแบบไร้เซิร์ฟเวอร์

ฟังก์ชันไร้เซิร์ฟเวอร์หรือโดยเฉพาะ Azure Functions คือการผสมผสานของโซลูชันต่าง ๆ ที่เราได้เห็นและนําเสนอคุณลักษณะที่เฉพาะเจาะจงมาก: ฟังก์ชันแบบไร้เซิร์ฟเวอร์มีไว้เพื่อเรียกใช้ในช่วงเวลาสั้น ๆ โดยปกติแล้ว ฟังก์ชันจะถูกเรียกใช้งานตามเหตุการณ์ เช่น คําขอ HTTP และจะยังคงเป็น "ร้อน" อยู่เป็นเวลาสองสามนาทีจนกว่าจะกลับไปนอน

ฟังก์ชันแชร์คุณลักษณะกับโซลูชัน PaaS เราได้อธิบายไว้ก่อนหน้านี้ ใน Azure โซลูชัน PaaS ของเรา (Azure App Service) และโซลูชันแบบไร้เซิร์ฟเวอร์ (Azure Functions) ของเรามีความคล้ายคลึงกันทางเทคนิคและแบ่งปันโค้ดและบริการทั่วไป

สําหรับตัวเลือกการปรับใช้ ฟังก์ชันมักจะทํางานกับไฟล์ JAR ตัวเลือกอื่น ๆ เช่น Docker จะพร้อมใช้งาน แต่ได้รับความนิยมน้อยกว่าและโดยปกติแล้วจะไม่ทํางานเช่นกัน นี่เป็นเพราะแพลตฟอร์มพื้นฐานไม่สามารถปรับให้เหมาะสมในลักษณะเดียวกับที่สามารถทําได้สําหรับไฟล์ JAR

โดยธรรมชาติแล้วฟังก์ชันไร้เซิร์ฟเวอร์จะต้องได้รับการเขียนโค้ดโดยเฉพาะ คุณลักษณะของพวกเขาขึ้นอยู่กับผู้ให้บริการระบบคลาวด์ที่ทํางานและอายุการใช้งานสั้นทําให้การใช้โซลูชันแบบดั้งเดิมที่ซับซ้อนเช่นการแคชหรือการจําลองแบบเซสชัน HTTP

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