4
DevOps でアプリケーション 開発をスピードアップする 7 つのヒント DevOpsでは、当初からスピードが重視されてきました。より迅速なアプリケーション開発、より迅速な変更、 より迅速なアップデートと継続的な開発、そしてより迅速な納品。すべて、システム開発ライフサイクルの 短縮につながるものです。 DevOpsのベストプラクティスに従って優れた業績を上げている開発チームは、 96倍も速くダウンタイムから復旧し、結果的に1 日かからずに復旧していることが、 DevOpsに関する世界的 な調査から明らかになっています。さらに同調査では、変更時の失敗率は5分の1、コード配信回数は46になることも判明しています。つまり、コード配信を週1回という少ない頻度ではなく、 1 日に複数回も実施で きるということです。 ¹ 世界中のあらゆる規模・業種の組織がDevOpsを採用してきたことは、不思議ではありません。別の調査では、全世界で調 査対象となった組織のうち、 4分の3近くがすでにDevOpsを採用していることが明らかになっています。こうした揺るぎな い人気とポテンシャルがあるにもかかわらず、課題が多いのも事実です。同調査からは、プロセスのボトルネックを解消し てリリースを迅速化することが、 DevOpsにおける最重要課題として急浮上していることも判明しており、コラボレーション を合理化することと、自動化などのツールスイートを適切に選択することが、重要課題として続いています。 このホワイトペーパーでは、 DevOpsに対する取り組みと投資を最大化するために優れたチームが実践している、 DevOps に関する7つのヒントを紹介します。 DevOps文化の醸成が重要(特に草の根から構築する場合) 毎年発表され、現在7年目となる調査報告『State of DevOps Survey』の著者は、「私たちにとって最も重要なテーマは、常 に、開発と運用のカルチャーの相違を乗り越え、チームが最高の仕事を実現できるようにすることです」と記しています。 1 1 2018 State of DevOps Report: Practical guidance for your DevOps evolutionPuppet blog20189

DevOpsでアプリケーション つのヒント Seven Tips_DevOps GitHub_JP.pdf · キュアなコードを構築できるよう、セキュリティバグに対す るアップデートも利用することができます。こうしたオープ

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

DevOpsでアプリケーション開発をスピードアップする 7つのヒントDevOpsでは、当初からスピードが重視されてきました。より迅速なアプリケーション開発、より迅速な変更、より迅速なアップデートと継続的な開発、そしてより迅速な納品。すべて、システム開発ライフサイクルの短縮につながるものです。DevOpsのベストプラクティスに従って優れた業績を上げている開発チームは、 96倍も速くダウンタイムから復旧し、結果的に1日かからずに復旧していることが、DevOpsに関する世界的な調査から明らかになっています。さらに同調査では、変更時の失敗率は5分の1、コード配信回数は46倍になることも判明しています。つまり、コード配信を週1回という少ない頻度ではなく、1日に複数回も実施できるということです。¹

世界中のあらゆる規模・業種の組織がDevOpsを採用してきたことは、不思議ではありません。別の調査では、全世界で調査対象となった組織のうち、4分の3近くがすでにDevOpsを採用していることが明らかになっています。こうした揺るぎない人気とポテンシャルがあるにもかかわらず、課題が多いのも事実です。同調査からは、プロセスのボトルネックを解消してリリースを迅速化することが、DevOpsにおける最重要課題として急浮上していることも判明しており、コラボレーションを合理化することと、自動化などのツールスイートを適切に選択することが、重要課題として続いています。

このホワイトペーパーでは、DevOpsに対する取り組みと投資を最大化するために優れたチームが実践している、DevOpsに関する7つのヒントを紹介します。

DevOps文化の醸成が重要(特に草の根から構築する場合)毎年発表され、現在7年目となる調査報告『State of DevOps Survey』の著者は、「私たちにとって最も重要なテーマは、常に、開発と運用のカルチャーの相違を乗り越え、チームが最高の仕事を実現できるようにすることです」と記しています。1

1 『2018 State of DevOps Report: Practical guidance for your DevOps evolution』Puppet blog、2018年9月

優れたD E V O P Sに向けた7つのベストプラクティス

同調査の過去のデータを広範に分析した結果、DevOpsの成功は、小規模な草の根の取り組みから始めることで実現するケースが多いことが明らかになっています。その後、開発者が成功事例や実証済みプラクティスを他のチームにセキュアに共有できる、軽量プラットフォームが必要となります。こうして、1つの部署内で複数のチームに共有されていき、最終的には他の部署にも広がっていきます。つまり、最初から無理をしてDevOpsに取り組もうとしない、ということです。小規模なものから始めるという手法は、まさに、世界最大のビジネスソフトウェアメーカーや世界有数の物流企業が実践していることです。

当初からDevOpsにセキュリティをしっかりと組み込むセキュリティ構成を最大限に自動化しましょう。DevOps組織が草の根の初期段階から発展していくにつれ、運用に不可欠な要素となるのが、セキュリティポリシーです。決して、監査要求事項の遵守を証明するために、IT部門が急いで用意するものではありません。GitHubは、世界をリードするソフトウェア開発プラットフォームとして、送受信中のデータをすべて暗号化し、クラウドセキュリティアライアンス(CSA)のCAIQ評価により業界トップの管理上の考慮事項に対応した、GDPR準拠のソリューションを提供しています。また、セルフホスティング製品であるGitHub Enterprise Serverを使って、厳格なセキュリティ、監査、およびコンプライアンス要件に対応した組織独自のインフラストラクチャにを構築し、コードをホスティングすることもできます。GitHub Enterprise Serverでは、自社のファイアウォール、VPN、IAM、監視システムなどの情報セキュリティで制御できます。このオンプレミスのソリューションによって、クラウドベースのソリューションによく見られる法令遵守に関する問題の多くを回避することができます。監査を避けるのではなく、組織のデータとお客様を保護することに注力することができます。そして何より重要なのは、チームと開発者が、より迅速に、よりセキュアなコードを構築できるということです。

可能な限り自動化するDevOpsにおける自動化というと、通常、システム構成、ワークフロー、およびシステムプロビジョニングの自動化の話になります。こうしたインフラストラクチャの自動化は、開発者の作業遅延を防ぎ、運用能力を超えないようにするという共通の課題に対処するものです。これは、ソフトウェアのデプロイ能力に直接関連しています。自動化によって、もう1つ重要な機能がもたらされます。開発の後半段階において、より広範なセルフサービスを利用できるようになり、当然のことながら効率性の大幅な向上につながるということです。さまざまなテンプレートを活用することで、ワークフローを自動的に構成し、プロジェクトボードのカードのステータスを関連する問題と同期し続けることができます。トリガーとなるイベントに基づいてアクションを自動化し、プロジェクトボードの管理において時間のかかる手動タスクの一部を無くすことができます。また、GitHubのプロジェクトボードをコピーして、カスタマイズの内容を後で類似プロジェクトに再利用することができます。

2

DevOps組織および

チームは、監査や

コンプライアンスの

細部ではなく、

効率的かつ包括的な

プロセスとして

セキュアなコードを

開発することに

注力する必要が

あります。

透明性を確保しオープンなプラットフォームの メリットを活用するコラボレーションは、DevOpsにおける効率性を促す主な要素であり、非常に協力的かつ平等な環境下の公開プロセスでソフトウェアが開発されるオープンソースの核となるものです。ここ数年、あらゆるタイプの組織がDevOps手法にオープンソースを積極的に組み込んでおり、オープンソースの売上は世界中で劇的に増加しています。ウェブベースのソフトウェアプラットフォームによって、所在地や雇用主にかかわらず、非常に多くの他の開発者によるアクションを追跡することができます。また、オープンなプラットフォームによって、開発者やチームがチームの内外でコラボレーションすることができます。それにより、オープンソースコードを活用できるだけでなく、より迅速に、よりセキュアなコードを構築できるよう、セキュリティバグに対するアップデートも利用することができます。こうしたオープンな環境が透明性の可能性をもたらし、非常に複雑なソフトウェア開発業務におけるコラボレーションや学習を根本から向上させることができます。

このようなソーシャルな開発環境では、ユーザが互いに有益なつながりを数多く築き、そうしたネットワーク化された活動からソーシャルな推論を行うことが、ある研究から明らかになっています。たとえば、コードの編集時に他者の技術的な目標やビジョンを推論する、または、長期的に見てどのプロジェクトが最も成功する可能性があるかを推論する、といったことです。そして、推論した結果を、作業の調整や各自の技術的スキルの向上を実現するためのより効果的な戦略へと組み合わせます。2

2 『Social coding in GitHub: Transparency and Collaboration in an Open Software Repository』 jsntsay.com、2012年

世界中で数百万の組織と数千万人の開発者が利用するGitHubは、世界最大のオープンソースコミュニティです。このコミュニティでは、直感的で非常に使いやすいプラットフォームを背景として、コードの共有や密接なコラボレーションがDevOps手法のあらゆる段階で行われ、結果として効率よくソフトウェアが構築されています。

できる限り広範なツールセットと連携させる企業のDevOps導入に関する年次調査の最新版によると、より効果的なDevOpsプロセスに向けた課題の上位2つは、人的なものとなっています(プロセスのボトルネック解消および開発者のコラボレーションの合理化)。しかし、僅差で3位となった課題は、アプリケーションの監視、管理、および自動化ツールの選択と実装です。DevOpsの取り組みを、できる限り広範なツールセットと連携できれば、DevOpsの成功の土台となります。継続的インテグレーションの推進かコードのレビューかにかかわらず、開発プロセスのあらゆる段階において、適切なツールを見つけられることが不可欠です。その後、ツールを現場で使うことになります。GitHubでは、開発チームのコミュニケーション向上、作業の自動化、および優れたソフトウェアの開発に役立つ、 文字通り何百というツールを利用することができます。特定のタスクのために、カスタム開発されたツールのみが必要となる場合もあります。GitHub GraphQL APIを使用することでデータへのアクセスが容易となり、カスタマイズされたツールを作成することができます。

優れたD E V O P Sに向けた7つのベストプラクティス

3

インナーソースでオープンソースの効率性を最大化するインナーソースを採用し、利用している組織が急増しています。インナーソースとは、 大規模なオープンソースプロジェクトのベストプラクティスを活用する開発手法です。このように非常に複雑な多重開発の取り組みでは、何百、何千という開発者やチーム間の調整が必要になります。インナーソースは、大規模なDevOpsプロジェクトで生じる多くの課題に対処できることが証明されつつあり、コードの再利用によって効率を高められる優れた手法となっています。

企業は、各社のファイアウォールを越えて、世界最大のオープンソースコミュニティでオープンソースのベストプラクティスにアクセスし、活用することができます。GitHubを利用する開発者とチームは、オープンソースライセンスに基づき、選択した目的に応じてプロジェクトを表示、変更、配布することができます。GitHubではさらに、プロジェクトのためのユーザの検索、居心地の良いコミュニティの構築、管理と制御、およびオープンソースの指標の適用について、広範なセルフヘルプガイドを提供しています。

継続的フィードバック、インテグレーション、変更管理、およびデプロイを 推進するまずは、DevOpsにおける一般的な手法や業界標準を見つけ出すことです。さらに重要なのは、それらを統合し、開発からデプロイ、運用に至るまで、データと情報の障壁を取り除くプロセスにしっかりと組み込むことです。

継続的インテグレーションは、テストの自動化をベースとして、アプリケーションに追加された新規または変更コードの品質を確保します。変更管理は、他のシステムへの影響の可能性、および変更によって広範なレベルで顕在化し得る結果や機会に関する情報を提供します。段階的デプロイ戦略は、運用上の制約の犠牲になることが多く、継続的デプロイの制限や停止を引き起こすことがあります。これは技術的な問題ではなく、人的な問題です。対応策としては、アプリケーション開発、運用、およびサポートのすべての関係者を関与させることです。このように継続的に部署内から情報を得ることで、アプリケーションがユーザのニーズと期待にも応える可能性を著しく高めることができます。

GitHubは、ソフトウェアを構築する手段です。3,600万人を超える開発者とFortune 500企業の半数に信頼されているGitHubは、あらゆる規模のDevOpsチームによるセキュアなコラボレーション、そして優れたカスタマーエクスペリエンスの迅速な提供をサポートします。無料トライアルの開始またはGitHub Enterpriseの詳細については、 https://github.co.jp/enterprise をご覧ください。

優れたD E V O P Sに向けた7つのベストプラクティス

4

GitHubは、

ソフトウェアを

構築する手段です。

3,600万人を超える

開発者とFortune 500

企業の半数に信頼され

ているGitHubは、

あらゆる規模のDevOps

チームによるセキュアな

コラボレーション、

そして優れたカスタマー

エクスペリエンスの

迅速な提供をサポート

します。