Skip to main content

JVMエコシステムレポート2018 - プラットフォームとアプリケーションについて

著者
Headshot of Andrew Binstock

Andrew Binstock

2018年10月17日

0 分で読めます

Java開発者を対象とした、これまでで最大規模のアンケートへようこそ。以下のレポートで紹介するデータは、10,200件を超える回答をもとにしています。回答者の皆さま、他の開発者の参考になるよう、ご自身の経験を共有する時間を割いていただき、ありがとうございました。このレポートは全4回です。

  1. JVMエコシステムレポート2018 - JDKについて

  2. JVMエコシステムレポート2018 - ツールについて

  3. JVMエコシステムレポート2018 - プラットフォームとアプリケーションについて

  4. JVMエコシステムレポート2018 - プロセスと開発者について

これらすべての情報をまとめた、丁寧に作り上げたPDFレポートもご用意しています。ダウンロードしてご覧いただけます。

JVMエコシステム2018レポートをダウンロード!

プラットフォームについて

15. 利用しているクラウドプラットフォームは?

回答データによると、回答者の57%が何らかのクラウドプラットフォームを利用しています。

「はい、実施しています」が57%、「いいえ、実施していません」が43%を示すドーナツグラフ。

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

クラウドプラットフォームを比較した横棒グラフ:Amazon AWS 63%、Google Cloud 20%、Azure 18%、その他のプロバイダーは3%~10%。

16. 利用しているクラウドの方式は?

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

クラウドの利用形態を示す棒グラフ:コンテナ43%、仮想マシンと利用なしが各33%、PaaS 10%、サーバーレス/FaaS 9%、その他1%。

17. 利用している継続的デプロイまたはリリース自動化ツールは?

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

継続的デリバリーに使用されるツールを示す棒グラフ:Ansible 16%、bash 12%、Chef 5%、Puppet 8%、その他 9%、わからない 18%、使用していない 43%。

アプリケーションについて

18. アプリケーションで使用しているJVM以外の言語は?

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

プログラミング言語の使用状況を示す横棒グラフ:フロントエンド JavaScript 57%、SQL 56%、Node.js 23%、Python 21%、その他の言語。

19. 利用しているWebフレームワークは?

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

JVM Webフレームワークの利用状況を示す横棒グラフ:Spring Boot 40%、Spring MVC 36%、JSF 19%、なし 21%。その他のフレームワークはいずれも10%未満。

20. 利用しているORMフレームワークは?

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

ORMプロバイダーの利用状況を示す棒グラフ:Hibernate 54%、Plain JDBC 23%、Spring JDBC Template 23%、EclipseLink 10%、MyBatis 6%、その他 6%、利用なし 20%。

21. 本番環境で利用しているデータベースは?

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

データベースの人気度を示す横棒グラフ:Oracle Database 27%、MySQL 21%、PostgreSQL 20%。その他のデータベースは1~9%。

22. メインアプリケーションの本番環境で利用しているアプリケーションサーバーは?

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

アプリケーションサーバーの人気を示す棒グラフ:Tomcat 41%、JBoss/Wildfly 15%、Jetty 9%、WebLogic 6%、WebSphereとGlassfish/Payaraはそれぞれ5%。

23. 本番環境と同じアプリケーションサーバーで開発していますか?

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

「はい」が64%、「いいえ」が36%の回答を示すドーナツグラフ。

24. メインアプリケーションが持つオープンソースの直接依存関係はいくつですか?

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

オープンソース依存関係の数を示す棒グラフ:0(4%)、1~5(15%)、6~10(15%)、10~20(18%)、20以上(25%)、わからない(23%)。

プラットフォームとアプリケーションのまとめ

  • クラウドプラットフォームを利用する開発者の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人がアプリケーションでオープンソースの依存関係を利用

このレポートには、まだ続きがあります!次に読みたいセクションをお選びください。

  1. JVMエコシステムレポート2018 - JDKについて

  2. JVMエコシステムレポート2018 - ツールについて

  3. JVMエコシステムレポート2018 - プラットフォームとアプリケーションについて

  4. JVMエコシステムレポート2018 - プロセスと開発者について

JVMエコシステム2018レポートをダウンロード!