ALM Essentials(5): ALMを支援するAtlassianのツール群(SaaS型/オンプレミス型)
JIRA Software/Bitbucket/Bamboo/HipChat/Confluenceの機能概要と環境構築パターン
オープンソース・ソフトウェアも便利だけど、アプリ開発のライフサイクルを一貫して効率よく管理するには、アトラシアンが提供するツール群がもっと便利。SaaS型/オンプレミス型の両環境の全体像を解説する。
はじめに
下記のように前回までは、マイクロソフトが提供するALM(アプリケーション・ライフサイクル・マネジメント)のツール群を紹介してきた。今回はアトラシアンが提供するALMのツール群について簡単に紹介しよう。
- マイクロソフトが提供するSaaS型のALMツール群: Visual Studio Team Services
- マイクロソフトが提供するオンプレミス型のALMツール群: Team Foundation Server
- [今回]アトラシアンが提供するSaaS型/オンプレミス型のALMツール群: JIRA Software+Bitbucket(Server)+Bamboo+HipChat+Confluence
アトラシアンの提供するALMのツール群
アトラシアンのツール群では、SaaS型/オンプレミス型のどちらのパターンでも環境を構築・構成できる。それぞれについて説明しよう。
SaaSパターン
※以下は、本文中で解説しない、図内にある各省略語の補足説明。なお、JIRA/Bitbucket/Stash/Bamboo/HipChat/Confluenceはいずれもアトラシアン製品。
「Dev」=開発者。「AnyOne」=それ以外の人。
「SourceTree」=分散型バージョン管理システム(DVCS)のGit&Mercurial用のデスクトップクライアントツール。
「Eclipse/IntelliJ/Visual Studio」=いずれも有名なIDE(統合開発環境)。「IDE Connector」=各IDEから各種アトラシアン製品に接続するための機能。
「Web I/F」=アトラシアン製品上のページなどのWebインターフェース。
アトラシアンの提供するALMのツール群(SaaSパターン)の概要を以下にまとめる。
【JIRA Software】: アプリケーションを計画し、開発して、リリースするチームのためのプロジェクトマネジメントのツール。
- バックログ管理: 顧客からの要求(ユーザーストーリー)などを管理する。
- タスク管理: 作業項目などのタスクを管理する。バックログ、スクラムボードやカンバンボードなどのタスクボードを表示できる。
- バグ管理:
【Bitbucket】: GitとMercurialに対応したSaaS型ソースコード管理ツール。デフォルトで課題管理やWiki、コードコメント、プルリクエストの機能も持っている。
- ソース管理
【Bamboo】: 継続的インテグレーション、継続的デプロイのためのツール。
- 自動ビルド
- 自動テスト
- 自動デプロイ
【HipChat】: グループチャット。チーム内の情報共有以外にもAPIが公開されており、アトラシアン製品だけでなく、GitHub、Jenkinsなどからの通知も受け取ることが可能である。
- チャット
【Confluence】: チーム内のナレッジを共有するWikiである。
- Wiki
オンプレミス・パターン
アトラシアンの提供するALMのツール群(オンプレミス・パターン)の概要は、ほぼSaaSパターンと同じになる。1箇所、SaaS型だとBitbucketだったところが、下記のBitbucket Serverに置き換わる。
【Bitbucket Server(旧Stash)】: Gitのオンプレミス型ソースコード管理ツール。コードコメント、プルリクエストの機能の他、ブランチとマージの権限が厳格に制御でき、例えば「プルリクエスト時に、複数の承認者の承認やCI(継続的インテグレーション)で成功していることを条件にマージできる」といった条件設定が可能である。
- ソース管理
各パターンの特徴の比較
アトラシアンの提供するALMのツール群の特徴を以下の表にまとめる。
項目 | アトラシアンの提供するALMのツール群(SaaS) | アトラシアンの提供するALMのツール群(オンプレミス) |
---|---|---|
導入までの時間 | SaaSのため、短時間(10分程度)で導入できる | OSとツール群のインストールなどで半日程度 |
導入までの費用 | ソフトウェアのライセンスが必要*1 | 同左 |
メンテナンス | SaaSのため、随時、自動的に行われる | 自分で管理 |
カスタマイズ | 制限されている | かなり自由にカスタマイズ可能 |
ビルド | Amazon EC2のプラットフォームに依存するが、かなり自由*2 | インストールしたプラットフォームに依存するが、かなり自由 |
機能追加 | 随時、行われている | ツールのバージョンに依存(2~3週間に1度、アップデートされる) |
連携 | アトラシアン製の他のツールと手軽に連携できるだけでなく、他ベンダーのツール(例えばJenkinsやHeroku、GitHubなど)とも連携できる | 同左 |
日本語対応 | Bamboo以外は全て日本語化されている | 同左 |
- *1 オンプレミスとSaaSで各ソフトウェアのライセンス費用が異なる。
- *2 詳しくは「Restricted Functions in Atlassian OnDemand - Atlassian OnDemand Documentation - Atlassian Documentation(英語)」を参照。
図3+図4および上記の表で示した通り、アトラシアンが提供するALMのツール群は、マイクロソフト製品のようにAll-in-OneでALMを支援するのではなく、目的別のツールが個別に提供される分散型である。このようにして個々のツールができる機能を絞り込むことによって、カスタマイズ性を非常に高めているわけだ。Visual Studio Team Service(以下、VSTS)に比べると、SaaSの場合でもカスタマイズ性が高い。
逆にいうと、アトラシアンのツール群は、Team Foundation ServerやVisual Studio Team Servicesのように、利用者が意識せずに各ツールの機能が連携されているわけではなく、自分自身の手で意識して設定を行うことが必要になるので、マイクロソフト製品よりも深い製品知識や設定の手間が必要となるだろう。
では、アトラシアンのツール群が「OSS(オープンソース・ソフトウェア)を組み合わせる場合(例えばRedmineとJenkinsを組み合わせるなど)と同じような連携方法になるのかというと、それも違う。OSS同士の組み合わせでは、それぞれのツールが相手のツールの情報を管理する仕組みになる。それと異なり、アトラシアンのツール群は、ツールを組み合わせても各ツールで二重、三重の管理とならないような粗結合になっているのだ。
これらを鑑みると、アトラシアンの提供するALMのツール群は、既存のツールを活かしつつ、一部のみアトラシアンの提供するALMツールを導入するチームに適している。例えば、既にJenkinsとGitLabが導入されているチームの場合、自動ビルドとソース管理のツールは不要と判断されることがある。そういった場合、自動ビルドとソース管理以外はアトラシアン製品を導入し、連携することでALMを実現することができる。
当然のことながら、全てアトラシアン製品にした方が設定できることや連携のしやすさの面でメリットが大きい。しかしこのように適材適所で組み合わせることで、価値の流れや思想を実現しやすい(=アトラシアン製品以外の価値の流れや思想を妨げない)のが、アトラシアンの提供するALMツール群の特徴ともいえるだろう。
■
全3回でALMを支援する各ベンダーのツールについて触れた。今回のアトラシアンの提供するALMのツール群を読むと、「OSSを組み合わせたシステムと何が違うんだ?」と思われている方もおられるだろう。OSSではいろいろな場所でプラクティスとして蓄積されたノウハウがあるが、それを自分たちで探り当てたり、見付けたりするには情報収集する量が膨大になってしまう。また、OSSは基本的に作成した人間が異なるため、ツールに込められた思い(思想)が異なるので、うまく連携できない面が多々ある。
そういった課題への対応が、同一ベンダーによる包括的なツールの利用である。そうすることで、チームや個人の力量に依存する部分を排除し、Business、Development、Operationsそれぞれが自分たちの役割に専念し、作り上げるアプリケーションのビジネス価値を最大限に高めるのが重要なのである。いかがだろうか?
まだALMを支援するツールを体験されていない方には、体験することをぜひオススメしたい。
2. いまさら聞けない「ALM」。3つの構成要素とは?
ALMを実践するための基礎知識として、ALMの3つの構成要素「Business(ビジネス)」「Development(開発)」「Operations(運用)」について説明する。
3. Visual Studio Team Servicesの機能概要と環境構築パターン
効率的にアプリを開発・運用するには、開発ライフサイクルの流れをスムーズにするツールの活用が欠かせない。その環境の一例として、マイクロソフトが提供するSaaS型のALMツール群の全体像を解説する。
4. Team Foundation Serverの機能概要と環境構築パターン
自社イントラネット内などのオンプレミス環境で、アプリ開発のライフサイクルを全体的に管理できるALMツールとして、マイクロソフトのTFS環境を導入した場合の、ALM環境の全体像について解説する。