Linux Foudationの2020年上半期の動きを振り返る(2)
こんにちは、吉田です。今回も、前回に引き続き、Linux Foundationが2020年上半期に発表したレポートの中から、いくつかトピックを紹介します。
2020年度版Linuxカーネルの歴史レポート
まず、8月に発表された「2020年度版Linuxカーネルの歴史レポート」です。
Linux Foundationでは、これまでも「Linux Kernel Development Report」を2008年から発行してきましたが、1991年の開発当初からの全容を含めることができていませんでした。そして今回、2020年8月の「Linux 5.8」登場を機に、「過去を振り返ってみよう」という取り組みです。
【参照リリース】Linuxカーネルの歴史をたどる 2020 Linux Kernel History Report を公開
https://www.linuxfoundation.jp/blog/2020/08/download-the-2020-linux-kernel-history-report/
Linuxカーネルは、これまで3つの開発環境を使用してきましたが、このレポートの最大の特徴は、この3つの異なる開発環境を連続的に見ることで、カーネルソースコードの進化を追跡したことです。前置きはこれぐらいにして、実際に内容を見てみましょう。
最初のリリースでは「88ファイル、10,239行」だったソースコードが、現在では「69,325ファイル、28,442,673行」のコードで構成されており、30以上のハードウェアアーキテクチャに対応しています。では、どのようにこの膨大な量のソースコードを開発したのでしょうか。
今年は、コロナ禍の影響で開催されませんが、カーネルのメンテナー達は、毎年開催されるメンテナ・サミットに出席し、開発の際に発生するさまざまな問題点をいかに改善していくかについて話し合っています。サミットのトピックは開発者がメーリングリストに提起することで決定され、議論されることになります。
これらのミーティングの成果を定量化するのは難しいですが、コミュニティのプロセスの継続的な改善に不可欠なものになっています。1996年1月の時点ではLinus Torvalds氏を含め3人のメンテナーで開発されていましたが、2020年8月時点では1,501人のメンテナーがリストアップされています。
次に、開発環境について触れてみたいと思います。中でもバージョン管理システムの選択は、コミュニティの生産性に大きく影響します。Linuxでは、2002年2月にBitKeeperを採用するまでバージョン管理システムを使用していませんでした。しかしながら、このBitKeeperにも大きな不満を持っていたLinus Torvalds氏は、自ら新しいバージョン管理システムとして開発したGitを2005年から使い始めました。Gitに変更されてから、コントリビューター数やコミット数が飛躍的に増加しています。
Linuxカーネルには、さまざまな組織が貢献してきましたが、下図にもあるように上位20の組織がコミットの68%を占めています。また、過去10年間に毎年400以上の組織がLinuxカーネルに貢献してきましたが、1つにしかコミットしていない組織がかなり多くなっています。これは、ビジネスニーズや戦略、また、買収や合併などが影響しているのかもしれません。
ソフトウェア開発者に関する調査報告
「Cloud Native Development Report for Q4 2019」を公開
次に、Linux Foundation傘下のプロジェクトでKubernetesなどのオープンソースソフトウェアの開発をホストし、クラウドネイティブを推進する団体「Cloud Native Computing Foundation」が8/14に発表したソフトウェア開発者に関する調査報告「Cloud Native Development Report for Q4 2019」を紹介します。この調査報告は、米国SlashData社により年2回実施されている調査に基づいて作成されたもので、今回の調査は2019年11月から2020年2月の間に17,000人以上のソフトウェア開発者に対して行われました。
【参照リリース】BLOG State of Cloud Native Development
https://www.cncf.io/blog/2020/08/14/state-of-cloud-native-development/
世界中に650万人のクラウドネイティブ開発者が存在し、2019年第2四半期より180万人多くなっています。これらの開発者のうち、270万人がKubernetesを使用し、400万人がサーバーレスアーキテクチャとクラウド機能を使用しています。また、サーバーレスユーザの46%がAWS Lambdaを使用しており、クラウドネイティブ開発者の62%がAWSを使用しています。
CNCFによると、クラウドネイティブ技術は下記のように定義されています。
『クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。
これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。』
CNCFは、最初 Kubernetesとコンテナ オーケストレーションを中心に開発されましたが、これらがクラウドネイティブコンピューティングの中核であると考えています。そのため、クラウドネイティブ開発者の定義は、何らかのコンテナオーケストレーションを使用する開発者に限定されています。
本レポートによると、世界中のバックエンド開発者の60%が現在コンテナを使用しています。2019年第2四半期と比較して、コンテナの使用は平均で10パーセントポイント(pp)増加しています。コンテナオーケストレーションツールの使用は平均で約7pp増加しましたが、クラウド機能とサーバーレスアーキテクチャの使用は比較的安定しています。
また、クラウドネイティブ技術は、北米、南米、ヨーロッパ、オセアニアで広く利用されています。2019年第2四半期と比較すると、コンテナの使用は平均して10%ポイント(pp)増加しています。オセアニアは最大の増加(+16pp)を示し、東ヨーロッパは最小(+5pp)になっています。これらは、コンテナの使用が徐々にバックエンドサービスの生産における標準的な手順になっていることを示しています。技術が向上や開発者の間でさらに人気が高まるにつれて、コンテナの浸透は今後数か月続くと予測しています。
では、このようなクラウドネイティブ開発者は、どのような環境でコードを実行しているのでしょうか。
コンテナ技術の最大の利点の1つに柔軟性があります。開発者は分散インフラを活用して、あるジョブに最適な方法でワークロードを割り当てることができます。
開発者にパブリッククラウド、プライベートクラウド、ハイブリッドクラウド、マルチクラウド、またはオンプレミスサーバーでコードを実行しているかを質問しています。今回の調査では、320万人の開発者(49%)がパブリッククラウドでバックエンドコードを実行しており、270万台(41%)がプライベートクラウド、300万台(46%)がオンプレミスサーバー、180万台(28%)がハイブリッドクラウド上、160万(25%)マルチクラウド上で実行していることがわかりました。
コンテナはバックエンド開発者の間で人気がありますが、コンテナを管理するためのツールとしてKubernetesを必ずしも使用していないようです。バックエンド開発者の59%が過去12か月間にコンテナを使用したのに対し、開発者の27%のみがKubernetesを使用してコンテナを管理していました。
しかしながら、Kubernetesを使用していないと回答した開発者の中で最も使用されているサービスはAWS ECS/EKSであり、Google Kubernetesエンジン(GKE)やDocker SwarmやAzureまで含めると全体の約4分の1に達しています。このことは、最も人気のあるオーケストレーションエンジンの多くが内部でKubernetesを使用していることに開発者が気付いていないことが原因であると考えられています。
* * *
今回は、LFとCNCFが発表した2つのレポートを紹介しました。「2020年度版Linuxカーネルの歴史レポート」では、Linuxカーネルの発展に「Git」が大きく関係していることがお分かりいただけたのではないでしょうか。OSSプロジェクトの発展には大きくツールが影響していることは、大きな発見だったと思います。
また「Cloud Native Development Report for Q4 2019」では、コンテナ活用にあまり地域差がないこと、Kubernetesは単体で使用されるというより、マネージドサービスとして活用されていることなどが分かります。Cloud Nativeの技術は、それ自体が今後発展していくことになると思いますが、そのような新しい技術をいかに賢く活用するかが今後の各企業の課題になってくるでしょう。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CNCFが2021年のプロジェクトやユーザーに関する最新レポート「CNCF 2021 ANNUAL REPORT」を公開、よりクラウドネイティブの採用が増加
- CNCFのCTO、Chris氏の「Cloud Native Predictions for 2021 and Beyond」に見る、クラウドネイティブに関する予測【後編】
- LFが「Kubernetesプロジェクト ジャーニー レポート」とKubernetesの新トレーニング「Kubernetes アプリケーション開発」を発表
- LFが「LF Research調査レポート」日本語版を公開、オープンソースのクラウドネイティブ技術を推進するCNCFの日本における正式コミュニティを設立
- LFがエントリーレベルの認定試験「認定Kubernetesクラウドネイティブアソシエイト(KCNA-JP)」日本語版を提供開始
- eBPF FoundationとLF Researchがクラウドネイティブで注目される「eBPF」に関する調査レポートを公開
- CNDO2021、CNCFの提供するクラウドネイティブランドスケープを解説するセッションを紹介
- KubeCon China開催。DPDKとCI/CDのプレカンファレンスを紹介
- CNCFが2022年の活動と成果を振り返る「CNCF Annual Report 2022」を公開
- 3日目はクラウド+コンテナに加え、セキュリティやAIといったキーワードも話題に