JVMエコシステムレポート2018 - プラットフォームとアプリケーションについて
Andrew Binstock
2018年10月17日
0 分で読めますJava開発者を対象とした、これまでで最大規模のアンケートへようこそ。以下のレポートで紹介するデータは、10,200件を超える回答をもとにしています。回答者の皆さま、他の開発者の参考になるよう、ご自身の経験を共有する時間を割いていただき、ありがとうございました。このレポートは全4回です。
JVMエコシステムレポート2018 - プラットフォームとアプリケーションについて
これらすべての情報をまとめた、丁寧に作り上げたPDFレポートもご用意しています。ダウンロードしてご覧いただけます。
プラットフォームについて
15. 利用しているクラウドプラットフォームは?
回答データによると、回答者の57%が何らかのクラウドプラットフォームを利用しています。

クラウドプラットフォームを利用している回答者に絞って見ると、Amazon Web Services(AWS)が約3分の2の票を集め、トップに立っています。Microsoft AzureとGoogle Cloud Platformがそれぞれ18%、20%で続き、Red Hat OpenShiftとOracle Cloudも利用を広げています。

16. 利用しているクラウドの方式は?
コンテナが43%で先行し、VMも33%で健闘しています。比較的新しい技術であるサーバーレス/FaaSも支持を集め、回答者の約10人に1人が採用しています。より長い歴史を持つPaaSも、同じく10%となっています。回答者の3人に1人は、クラウドの方式をまったく利用していません。

17. 利用している継続的デプロイまたはリリース自動化ツールは?
回答者のほぼ2人に1人は、継続的デプロイやリリース自動化のツールをまったく利用していません。さらに、約5人に1人は、継続的デプロイやリリース自動化でどのツールが使われているかを把握していないため、実際の割合はもっと高いかもしれません。bashがChefやPuppetと同じくらい人気なのは、やや意外です。……いや、何を言っているのでしょう?みんなbashが大好きです!継続的デプロイツールでは、Ansibleが16%でトップです。

アプリケーションについて
18. アプリケーションで使用しているJVM以外の言語は?
多様な言語が使われる今日、JVMアプリケーションではJVM言語だけが使われていると考えるのは現実的ではありません。実際、JVMアプリケーションの半数以上でフロントエンドにJavaScriptが使われ、5分の1でPython、ほぼ4分の1でNode.jsが使われています。当然ながら、多くのプロジェクトでSQLも利用されています。

19. 利用しているWebフレームワークは?
このグラフほど、JavaエコシステムにおけるSpringの圧倒的な存在感を示すものはないでしょう。開発者の10人に4人がアプリケーションでSpring Bootを使っており、今回初めてSpring MVCを上回ったのは興味深い結果です。次点は健闘するJSFで19%。ニュースでリモートコード実行の脆弱性が絶えず報じられているStrutsも、開発者のほぼ10人に1人が採用しており、4位につけています。開発者の5人に1人以上は、Webフレームワークを必要としないほどアプリケーションが小さいと自慢できるかもしれません。

20. 利用しているORMフレームワークは?
開発者の2人に1人以上が、アプリケーションでHibernateを利用しています。ほぼ4人に1人は従来型のJDBCを利用し、Spring開発者にはSpring JDBCテンプレートという選択肢もあります。こちらは23%が利用しています。開発者の5人に1人は、データアクセスにORMフレームワークをまったく利用していません。(複数回答可のため、合計は100%になりません。)

21. 本番環境で利用しているデータベースは?
ここでもOracle Databaseがトップで、アプリケーションのほぼ10件に3件が本番環境で利用しています。MySQLとPostgreSQLも強く、それぞれ21%、20%です。利用されているNoSQLデータベースではMongoDBが最も多く、5%となっています。

22. メインアプリケーションの本番環境で利用しているアプリケーションサーバーは?
回答者の10人に4人以上が、アプリケーションサーバーとしてTomcatを利用しています。高速で軽量なオープンソースのコミュニティ定番ツールは、長年トップを走っており、当面その状況が変わる気配はありません。JBossとWildFlyも15%で、わずかな差に迫っています。大規模なエンタープライズ向けアプリケーションサーバーでは、WebLogicがWebSphereをわずかにリードしています。「その他」にはTomEEとLiberty Profileがそれぞれ1%含まれ、このグループをリードしています。

23. 本番環境と同じアプリケーションサーバーで開発していますか?
明らかなリスクがあるにもかかわらず、回答者の3分の1以上は本番環境とは異なるサーバーで開発しており、利便性のために障害発生時のコストを受け入れています。意外なことに、開発環境で異なるアプリケーションサーバー(またはサーバーを使わない)と回答した人の本番環境では、実に多様なアプリケーションとサーバーが使われています。ローカルでの利用に苦労しそうな、大規模なモノリシック向けサーバーが多いと予想していましたが、その割合は同程度でした。

24. メインアプリケーションが持つオープンソースの直接依存関係はいくつですか?
アプリケーションの直接依存関係の数を確認するために、何人が調べ直したのか気になります。きっと大半の方でしょう!直接依存関係だけでなく、推移的依存関係まで聞かなくてよかったですね。実際、回答者のほぼ4人に1人は、依存関係の数を把握していないと率直に答えています。複雑なビルドシステムの中でアプリケーションが分散していることが原因かもしれません。結果を見ると、オープンソースの依存関係をまったく利用していない回答者は20人に1人未満で、圧倒的多数の72%が利用しています。わからないと答えた人を除くと、95%、つまり20人中19人がアプリケーションでオープンソースの依存関係を利用しています。オープンソースの採用がここまで進んだこと、そしてアプリケーション全体に求められるセキュリティ、品質、可用性をサードパーティ製ライブラリにも確保する必要性がよくわかります。

プラットフォームとアプリケーションのまとめ
クラウドプラットフォームを利用する開発者の10人に6人以上がAWSにデプロイ
開発者の10人に4人以上がコンテナを利用
開発者の10人に4人以上が継続的デプロイツールをまったく利用していない
開発者のほぼ10人に6人が、アプリケーションでフロントエンドJavaScriptも利用
開発者のほぼ4人に1人が、アプリケーションでNodeも利用
開発者の10人に4人がSpring Bootを利用
開発者の2人に1人以上がアプリケーションでHibernateを利用
開発者のほぼ10人に3人が本番環境でOracle Databaseを利用
開発者の10人に4人が本番環境でTomcatを利用
開発者の4人に1人は、アプリケーションに含まれるオープンソース依存関係の数を把握していない
開発者の20人に19人がアプリケーションでオープンソースの依存関係を利用
このレポートには、まだ続きがあります!次に読みたいセクションをお選びください。
JVMエコシステムレポート2018 - プラットフォームとアプリケーションについて