ดูเหมือนว่าจะมีแนวโน้มในปัจจุบันในพื้นที่จาวาที่จะย้ายออกจากการปรับใช้เว็บแอปพลิเคชัน java ไปยังคอนเทนเนอร์ java servlet (หรือแอปพลิเคชันเซิร์ฟเวอร์) ในรูปแบบไฟล์ war (หรือไฟล์ ear) และแทนที่แอปพลิเคชันเป็น jar ปฏิบัติการด้วย เซิร์ฟเวอร์ servlet / HTTP ที่ฝังตัวเช่นท่าเทียบเรือ และฉันหมายถึงสิ่งนี้มากกว่านั้นในวิธีที่เฟรมเวิร์กรุ่นใหม่มีอิทธิพลต่อวิธีการพัฒนาและปรับใช้แอปพลิเคชันใหม่มากกว่าการส่งมอบแอปพลิเคชันไปยังผู้ใช้ปลายทาง (เพราะตัวอย่างเช่นฉันเข้าใจว่าทำไมเจนกินส์ถึงใช้คอนเทนเนอร์แบบฝังตัวง่ายมากในการหยิบจับ ). ตัวอย่างของเฟรมเวิร์กที่ใช้อ็อพชัน jar ที่เรียกใช้งานได้: Dropwizard , Spring BootและPlay (มันไม่ได้ทำงานบนคอนเทนเนอร์ servlet แต่เซิร์ฟเวอร์ HTTP ถูกฝังอยู่)
คำถามของฉันคือมาจากสภาพแวดล้อมที่เราได้ปรับใช้แอปพลิเคชัน (จนถึงจุดนี้ส่วนใหญ่เป็น Struts2) กับแอปพลิเคชันเซิร์ฟเวอร์ Tomcat เดียวต้องมีการเปลี่ยนแปลงแนวทางปฏิบัติที่ดีที่สุดหรือข้อควรพิจารณาอะไรบ้างหากเราวางแผนที่จะใช้แนวทางคอนเทนเนอร์แบบฝัง เหรอ? ขณะนี้เรามีแอปพลิเคชันพื้นบ้านประมาณ 10 รายการที่ทำงานบนเซิร์ฟเวอร์ Tomcat ตัวเดียวและสำหรับแอปพลิเคชันขนาดเล็กเหล่านี้ความสามารถในการแบ่งปันทรัพยากรและจัดการบนเซิร์ฟเวอร์เดียวนั้นดี แอปพลิเคชันของเราไม่ได้มีวัตถุประสงค์เพื่อแจกจ่ายให้กับผู้ใช้ปลายทางเพื่อให้ทำงานภายในสภาพแวดล้อมของพวกเขา อย่างไรก็ตามหากเราตัดสินใจที่จะใช้ประโยชน์จาก java framework ที่ใหม่กว่าแนวทางนี้ควรเปลี่ยนไปหรือไม่? การเปลี่ยนไปใช้ขวดปฏิบัติการได้เกิดขึ้นจากการใช้งานระบบคลาวด์ที่เพิ่มขึ้น (เช่น Heroku) หรือไม่
หากคุณเคยมีประสบการณ์ในการจัดการแอพพลิเคชั่นหลายตัวในรูปแบบการเล่นกับการปรับใช้ไฟล์สงครามแบบเดิมบนแอปพลิเคชันเซิร์ฟเวอร์เดียวโปรดแบ่งปันข้อมูลเชิงลึก