連載 [第2回] :
  月刊Linux Foundationウォッチ

Linux Foudationの2020年上半期の動きを振り返る(2)

2020年11月27日(金)
吉田 行男

こんにちは、吉田です。今回も、前回に引き続き、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の技術は、それ自体が今後発展していくことになると思いますが、そのような新しい技術をいかに賢く活用するかが今後の各企業の課題になってくるでしょう。

2000年頃からメーカー系SIerにて、Linux/OSSのビジネス推進、技術検証を実施、OSS全般の活用を目指したビジネスの立ち上げに従事。また、社内のみならず、講演執筆活動を社外でも積極的にOSSの普及活動を実施してきた。2019年より独立し、オープンソースの活用支援やコンプライアンス管理の社内フローの構築支援を実施している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています