オープン クラウドに価値を置く理由
オープン性はイノベーションの迅速な実現とセキュリティの厳格化をもたらし、特定ベンダーへの依存をなくします。Google は、クラウドにおけるオープン性の重要性がこれまで以上に増していると認識しています。
オープンとはアプリを自由に移植できること
オープン クラウドは、特定のクラウドに縛られることが目標達成の妨げになってはならないという信念に基づいています。オープン クラウドは、共通の開発および運用アプローチを使用しながらアプリを異なるクラウドに導入することで、そのときどきで優先すべき目標の達成が容易になるという考え方を採用しています。それは目標がチーム全体の共通スキルを最大限に活用することであっても、イノベーションを急加速させることであっても変わりありません。オープンソースは、IT 投資の行方をお客様が自由に決定できるようにするという意味において、オープン クラウドを可能たらしめる要素のひとつです。たとえば、多くのお客様がコンテナの管理に Kubernetes を使用し、機械学習モデルの構築に TensorFlow を採用して、オンプレミスと複数のクラウド上でこれらを同時に稼働させているのはその一例です。
オープンソースは 1 つの連続体
オープンソース ソフトウェア / ソリューション(OSS)にかける Google の意気込みと、それぞれに必要とされる取り組み方の違いをいくつかご紹介します。
- Android など一部の OSS はオープンなコードベースを維持しつつ、開発は 1 つの組織が単独で行います。
- TensorFlow などのコミュニティ主導で変更が行われる OSS は多数の企業と個人の間の調整を必要とします。
- Linux や Kubernetes などのコミュニティ主導の戦略を持つ OSS は協調的意思決定と「コントロールよりコンセンサス」の受け入れを必要とします。
オープンソース ソフトウェアはさまざまな考え方を許容し、ユーザーとの継続的なフィードバック ループを実現します
Google は、オープンソースをとても重要なものと位置づけており、企業理念の中で 2 回取り上げています。また、従業員とすべてのデベロッパーに、オープンソースに取り組むように奨励しています。
BigQuery を使用して GHarchive.org のデータを分析した結果によると、2017 年に 5,500 人を超える Google 社員が約 26,000 のリポジトリにコードを提供していました。作成した pull リクエストは 215,000 を超え、数え切れないほどのコミュニティに参加して、450,000 ものコメントをやり取りしていました。オープンソースに対する Google の貢献度の比較分析を見ると、正規化されたデータに基づくオープンソースへの貢献度の高い企業の相対的な位置付けがわかります。
Linux、LLVM、Samba、Git といった皆様がご存知のプロジェクトにも Google 社員が積極的に参加しています。
Google では定期的に内部プロジェクトの一部をオープンソース化しています
Google が始めた主なプロジェクトをご紹介します。
Google はオープンな API の使用に積極的に取り組んでいます
オープンな API は、すべての人がお互いの成果を基にソフトウェアを改良し、そうした作業を多数の人が協力しながら反復的に継続できるようにします。また、企業や個人の開発者にサービス プロバイダの選択の自由を与えます。同業者の審査を受けたある調査によると、オープンな API は業界全体のどのエコシステムにおいてもイノベーションを加速させていることが明らかになっています。オープンな API は、確立された API を再利用する権利に支えられており、独立していながら互換性のある実装を作成するという形で開発されます。Google Cloud は、Open API イニシアチブへの参加、Open API 仕様への関与、gRPC のサポートを通して、さらには Cloud Bigtable の HBase API との互換性、Cloud Spanner と BigQuery の SQL:2011(拡張機能を含む)との互換性、Cloud Storage の共有 API との互換性を介して、オープンな API のサポートに尽力しています。
注目のオープンソース
Kubernetes
コンテナ オーケストレーション用のオープンソース システム
Google は、12 年以上にわたり研究・開発資源を投入した Kubernetes を完全にオープンソース化しました。緊密で方向性を持ったエンジニアリング、オープン性、そしてコミュニティ形成に向けた努力が相まって、Kubernetes は GitHub で最も活発なプロジェクトの 1 つになっています。このプロジェクトには 1,500 を超えるコントリビューターによる 45,000 件を超える commit があり、それらは今も増え続けています。この驚異的なイノベーションの速度は、Kubernetes コミュニティにおける業界横断的なコラボレーションとリーダーシップの賜物です。Kubernetes オープンソース プロジェクトについてはこちらを、コンテナ化されたアプリケーションのデプロイに最適な環境を提供する Google Kubernetes Engine マネージド サービスについてはこちらをご覧ください。
機械学習用のオープンソース ライブラリ
2015 年に Google がオープンソース化して以来、TensorFlow は GitHub で最も活発な機械学習コミュニティとなり、機械学習ツールキットの分野でデファクトの地位を確立しました。このプロジェクトは人類にとって重要なものであるため、Google はこのプロジェクトをオープンソース化してすべての人がオープンに共同作業できるようにしなければならないと考えました。TensorFlow オープンソース プロジェクトについてはこちらを、Google Cloud Machine Learning Engine マネージド サービスについてはこちらをご覧ください。このサービスは、TensorFlow モデルを用いた大規模なトレーニングをマネージド クラスタ上で行うための最良の手段です。
Istio
マイクロサービスを接続するためのオープン プラットフォーム
Istio は、マイクロサービスを接続、管理、保護するための統一された方法を提供するオープン プラットフォームです。マイクロサービス間のトラフィック フローの管理、アクセス ポリシーの適用、テレメトリー データの集計をサポートしており、これらすべてをマイクロサービスのコードを変更せずに実施できます。
Android
Android は、機械学習によるウィルスの検出、クラウド セキュリティ、AI を活用したスマートなコンテキスト アシストなど、さまざまな機能に Google の最新のイノベーションを活用しています。Android Enterprise モバイル管理のウェブページで詳細をご確認ください。