İlginç bir soru. Bu sadece konuyla ilgili görüşüm, bu yüzden her şeyi bir miktar tuzla alın. Zaman zaman uygulamaları hem servlet kapsayıcılarını hem de yerleşik sunucuları kullanarak konuşlandırdım ve yönettim. Eminim servlet kapları kullanmak için hala birçok iyi neden vardır, ancak bugün neden daha az popüler olduklarına odaklanmaya çalışacağım.
Kısa sürüm: Servlet kapsayıcıları, tek bir ana bilgisayarda birden çok uygulamayı yönetmek için harikadır, ancak tek bir uygulamayı yönetmek için pek kullanışlı görünmemektedir. Bulut ortamlarında, sanal makine başına tek bir uygulama tercih edilir ve daha yaygın görünür. Modern çerçeveler bulut uyumlu olmak istiyor, bu nedenle gömülü sunuculara geçiş.
Bu yüzden bulut hizmetlerinin servlet konteynerlerini terk etmenin ana nedeni olduğunu düşünüyorum. Tıpkı servlet konteynerlerinin uygulamaları yönetmenize izin verdiği gibi, bulut hizmetleri de sanal makineleri, örnekleri, veri depolamayı ve çok daha fazlasını yönetmenize olanak tanır. Bu kulağa daha karmaşık geliyor, ancak bulut ortamlarında tek uygulama makinelerine geçiş oldu. İşte bu gibi sık sık tüm makineyi davranabilirsiniz anlamına uygulaması. Her uygulama uygun büyüklükteki bir makinede çalışır. Bulut örnekleri, herhangi bir zamanda açılıp kaybolabilir, bu da ölçeklendirme için harikadır. Bir uygulama daha fazla kaynağa ihtiyaç duyarsa, daha fazla örnek oluşturursunuz.
Öte yandan, özel sunucular genellikle güçlüdür ancak sabit boyuttadır, bu nedenle kaynakların kullanımını en üst düzeye çıkarmak için tek bir makinede birden çok uygulama çalıştırırsınız. Düzinelerce uygulamayı - her biri kendi konfigürasyonlarına, web sunucularına, rotalarına ve bağlantılarına sahip - yönetmek eğlenceli değildir, bu nedenle bir servlet konteyneri kullanmak her şeyi yönetilebilir ve aklı başında tutmanıza yardımcı olur. Yine de ölçeklendirmek daha zordur. Buluttaki sunucu kapsayıcıları pek kullanışlı görünmüyor. Yalnızca tek bir uygulamayı yönettikleri için çok fazla değer sağlamadan her küçük örnek için kurulmaları gerekirdi.
Ayrıca, bulutlar havalıdır ve bulut olmayan şeyler sıkıcıdır (eğer hala aldatmacaya inanıyorsak). Birçok çerçeve varsayılan olarak ölçeklenebilir olmaya çalışır, böylece bulutlara kolayca dağıtılabilirler. Gömülü sunucular hızlı kurulur ve çalışır, bu nedenle makul bir çözüm gibi görünürler. Servlet kapsayıcıları genellikle hala desteklenir ancak daha karmaşık bir kurulum gerektirir.
Diğer bazı noktalar:
- Gömülü sunucu olabilir çerçevesi için optimize edilebilir veya daha iyisi (örneğin oyun konsolu gibi) çerçeveler kalıp ile entegre edilmiştir.
- Tüm bulut ortamları özelleştirilebilir makine görüntülerine sahip değildir. Servlet kapsayıcılarını indirmek ve kurmak için başlatma komut dosyaları yazmak yerine, bulut uygulama dağıtımları için özel yazılım kullanmak çok daha basittir.
- Uygulamanızın her birkaç yeniden dağıtımında bir kalıcı alan alanı hatasıyla sizi karşılamayan bir Tomcat kurulumu henüz bulamadım . Herhangi bir kesinti olmadan aşamalı ve üretim örnekleri arasında neredeyse anında geçiş yapabildiğiniz zaman, yerleşik sunucuları (yeniden) başlatmak için biraz daha uzun sürmek sorun olmaz.
- Soruda daha önce de belirtildiği gibi, son kullanıcının uygulamayı çalıştırması çok uygundur.
- Gömülü sunucular taşınabilir ve geliştirme için uygundur. Bugün her şey hızlı , prototiplerin ve MVP'lerin olabildiğince hızlı oluşturulması ve teslim edilmesi gerekiyor. Hiç kimse her geliştirici için bir ortam oluşturmak için çok fazla zaman harcamak istemez.