継続的デリバリーのデモ動画(無音声)を公開

【 この記事は、5671人に読まれています】

一連の投稿で紹介してきたデモ環境、技術を使ったデモ動画(無音声)を公開しました。

20分程度で、企画から計画、開発、ビルド、テスト、デプロイをするところをご覧いただけます。

biz_value_pipeline_with_atlassian_products

企画・計画


Confluence で共有している企画書を企画担当者が作成、変更していきます。そのあとに、実際に開発チームに実装してほしいサービスや機能が洗い出されるので、それを開発チームに依頼する必要があります。しかし、企画担当者と開発チームでは、動きもパラレル、価値観もパラレルです。さてどうする

か。Confluence で書いた企画書からそのまま、プロダクトバックログ項目 (PBI) として JIRA Software に登録できると便利ですね。

登録された PBI は、開発チームによって意思決定されます。このとき、企画担当者と開発チームで JIRA Software の バックログや、カンバンで議論しながら、意思決定するのもいいですね。 Confluence の企画書もお互いに確認しながら。

開発


開発では、主に JIRA Software でチームの状況と各自の動向を見ながらタスクを遂行していきます。このときに、全体と個別の状況が見えていないと悲劇がはじまるわけです。では、状況とは何をさすか?それは、各 PBI, タスクのステータスだけでは計れない一貫性です。何か変更するということは必ず成果物に変化があります。コードが変更されるというと分かりやすいでしょう。ただ、変化があるのはコードだけではありません。ブランチ、コミット、ビルド、テスト、、、ありとあらゆるものに変化をもたらします。したがって、PBI, タスクと成果物が追跡可能になることが大切です。ただし、開発者の負担を増やしてはいけません。ただ、これをやらないと、あとで複雑さが止まらなくなります。

そこで、フィーチャーブランチ (GitHub フロー) という考え方を用い、目的ごとのブランチで作業をし、プルリクエストの仕組みとコードレビューで整合性をとります。このときにも、いくつも注意点があります。まず、ブランチを作るときのブランチ元の品質が怪しければお話になりません。また、通常複数のタスクを遂行するので、ブランチ戦略が適切でないといくら Git でバージョン管理していても複雑さは軽減されません。そこで、適切にブランチを作成し、適切にコミットとプッシュをする開発フローの簡素化が重要になります。それをやってくれるのが、JIRA Software と Bitbucket の連携です(共同所有の仕組み)。また、Bitbucket と  SourceTree の連携も効果的です(個別所有の仕組み)。また、Bitbucket と Bamboo の密な連携により、コードのコミットと同時に CI が発動し、各ブランチのヘルスチェック状態が可視化できます。コードの変更(Bitbucket のコミット/ブランチ)、コードの変更理由(JIRA Software のPBI, タスクとそのステータス)、CI の結果(Bamboo のPlan Branch CI)がセットになってはじめて負担のかからないコードレビューにつながります。

ビルドとテスト


CI では、ビルドを行うだけでなく、テストも実施します。また、master や Release ブランチで CI するだけでなく、コードの変更は、可能な限り頻繁に統合する必要があるので、そのきっかけとなるタイミングで CI が稼働するのが適切です。Bamboo は、Bitbucket と連携して、適切なタイミングで  CI を稼働させ、結果を Bitbucket、JIRA Software に提供してくれます。それぞれの情報を適切に共有するので、開発者にとっては今まで頭の中で繋げなければならなかった情報をツールが自然と提供してくれる感覚になります。

また、ステージングや、本番稼働環境にデプロイするビルドをデプロイのつど、再ビルドするのは非効率ですし、リスクも伴います。一度ビルドしたらそれをどこにデプロイすべきかといったデプロイ戦略を立てられるようにすべきです。

デプロイ


Bamboo は、ビルド  (CI) のプロジェクトとデプロイのプロジェクトが明確に分離しているので、ビルドワンスとデプロイ戦略が立てやすくできています。また、Docker イメージの作成と実行なども含む多くのタスクを標準搭載(&アドオンで提供)しているので、複雑なスクリプトやワークフロー管理をシンプルにすることができます。

これらを使い、CI で作成済みの Docker イメージをデプロイで、コンテナを実行する形式にすることでより安全なデプロイが実施できるようになります。

もちろん、デプロイは、CI の継続処理として実施できます。今回のデモでは、master ブランチで CI が成功したら、ステージング環境に自動的にデプロイされるようにしています。デプロイされたかどうかも、JIRA Software の PBI, タスクの単位で、追跡できるようにもなっています。

手動デプロイの場合は、デプロイ時に、現在デプロイされているプロダクトとこれからデプロイするプロダクトの差分を、JIRA の PBI, タスク、バグの単位で把握できます。必要に応じて Bitbucket のコミット単位でコードの Diff を見ることもできます。このあたりも信頼できる情報が集約されている利点です。

では、20分程度のデモ動画をお楽しみください:

 



企画・計画・開発・ビルド・デプロイの価値のパイプラインを実現するデモンストレーション from Tomoharu Nagasawa on Vimeo.

この動画は、企画・計画・開発・ビルド・デプロイを一気通貫で実施した「価値のパイプライン」をツール活用により実現したライブデモンストレーションの収録です。
ツールは、Confluence, JIRA Software, Bitbucker Server, SourceTree, Bamboo, HipChat と使っています。その他に、Docker, Linux 上の .NET 実行環境 DNX, Sublime Text を使っています。ビルドとデプロイのプロセスでは、Dcoker コンテナを活用しています。
皆様の開発環境で価値を継続的に提供するための参考にしていただければ幸いです。
なお、本環境は、いつでもデモ可能です。お気軽にお声がけください。

【 この記事は、5671人に読まれています】

コメントを残す