TFSをAzure DevOpsに移行する方法とは?

TFSをAzure DevOpsに移行する方法とは?

DevOpsは市場の変化に対応するスピーディーなソフトウェア開発手法です。DevOpsの概要やメリット、Microsoft社のAzure DevOps ServicesへTeam Foundation Server(TFS)を移行する方法やメリットについて解説します。

TFSをAzure DevOpsに移行する方法とは?

Microsoft Azure製品カタログ

そもそもDevOpsとは

DevOpsは「Development(開発)」と「Operation(運用)」の略語を組み合わせた造語です。システムの開発担当と運用担当が相互に連携・協力して柔軟かつスピーディーにソフトウェアを開発する手法のことを指します。それまで新しく開発した機能を追加したい開発担当と、安定稼働を優先したい運用担当では、立場の違いから対立が起こりがちでした。DevOpsでエンジニアやノウハウ、ツールを連携させることで互いのチームのサイロ化(システムや業務プロセスなどの孤立化)を解消し、両者の理想的な協力関係と開発環境を作り出せます。

DevOpsの6つの原則

DevOpsは固定したルールがあるわけではありません。小売りや製造、金融、通信サービスなど、導入する各業界で最適なモデルは異なり、開発エンジニアのニーズもさまざまです。DevOpsのスキル開発を行うグローバルコミュニティDASAではDevOpsの6つの原則を定めています。

  1. 顧客視点を取り入れる顧客中心の活動
  2. 組織全体で目標を意識した創造
  3. チーム全体で成果を出すためのエンドツーエンドの責任
  4. あらゆるスキルで責任を果たす機能横断的な自律型チーム
  5. スピードとムダ排除の継続的改善
  6. 可能な限りすべて自動化

アジャイル開発との違い

アジャイル開発は小さな単位のサイクルで計画から開発、テスト、運用までの工程をスピーディーに繰り返します。それまでの開発手法では、すべての機能の要件定義を完了させないと、開発・テストに移行できませんでした。原則的に工程の後戻りができず、仕様変更が生じるとプロセスを繰り返すことになるため、工数が膨大に増えます。アジャイル開発はその問題を解消するために考案された開発手法なのです。

前述の通り、DevOpsとは開発チームと運用チームの連携を・協力体制を作る考え方や仕組みのことで、アジャイル開発とはコンセプトが異なります。ただ、アジャイル開発との相性は良く、DevOpsで開発する際にアジャイルを取り入れることで、さらに開発スピードをアップさせられます。

国内外のIoT先進事例100選
Azure Cosmos DB 自習書 - Azure Cosmos DB Gremlin API 編 -

DevOpsのメリットについて

DevOpsには多くのメリットがありますが、主に「安定性と信頼性」と「生産性」の向上、「開発スピードアップ」が挙げられます。これらが実現されることで組織全体の文化を変化させ、改善活動を常態化できるようになるでしょう。アジャイル開発だけでは運用チームで迅速にテストして実際に稼働させることは困難でした。DevOpsにより提案から製品のサービス提供までを最適化できます。これは新しいアイデアを製品化し市場にリリースするまでの時間を短縮できるということです。同時にバグやエラーを抑制できるので、稼働の安定性も向上します。

Azure DevOpsについて

Azure DevOpsはMicrosoft社が提供するエンジニアのための共同開発ツール群です。開発エンジニアチームはクラウド、またはオンプレミスでソフトウェアの構築や配置、デプロイを共同で行えます。以前はVisual Studio Team Servicesという名称で稼働していました。Azure DevOpsを利用すれば、よりスマートな計画の立案、共同作業の効率化・迅速化も叶えられるでしょう。開発環境を高速化し、すぐにリリース可能な環境にできるCI/CDなどの機能や、アジャイル開発向けツールを利用など、業務の最適化に役立つサービスが揃っています。主なサービスは以下の5つです。

Azure Boards

ダッシュボードやカスタムレポートの機能で開発プロセスの作業を追跡・記録するためのツールです。最初のアイデアから計画、プロセスの確認、相談、課題などを共有できます。ドラッグアンドドロップの簡単操作で、アジャイル開発の各ステップや計画ミーティングが可能です。無料でスタートできますが、ユーザー数によりサブスクリプション価格が発生します。

Azure Pipelines

Windowsだけでなく、LinuxやmacOSで並列実行できるクラウド型ホストのパイプラインです。さまざまな言語のコードを共通言語に変換し、実行ファイルを作成してテスト運用、デプロイしたサービス機能を共有できます。構築とデプロイを機械学習で自動化することで、作業時間の削減に貢献します。無料並列ジョブ1つで毎月1,800分の利用が可能です。並列ジョブを追加すると都度料金がかかります。

Azure Repos

ソフトウェア開発のプロセスや仕様、コード修正、運用テストなどの情報を、データベースとして蓄積保存するリポジトリ機能です。クラウド型ホストで、容量無制限で利用できます。小さなプロジェクトからグローバルな規模のリポジトリまで、スケール調整も可能です。加入後は無料でスタートできますが、ユーザーが5人以上になるとサブスクリプション価格が発生します。

Azure Test Plans

手動や探索的テストのツールキットを使ったオールインワンのテストサポート機能です。必要なテストの実行を管理し、手順書をチームで共有できるので、開発エンジニアの認識のズレを防止し、管理の負担を削減します。Azureで開発やテスト作業を担当するため、サービスは有料です。

Azure Artifacts

分散型管理システムの情報を収納するリポジトリを共有する機能です。クラウドで開発エンジニアが容量無制限のプログラムソースコードの開発や変更、ログの記録、追跡の際に利用します。チームの規模にかかわらず、パブリックやプライベートソースのMavenなどのパッケージフィードを作成し、共有できます。価格体系は、ユーザー5人以上で有料になるプランと、テストの計画追跡実行するユーザーのみ月額料金になるプランの2種類です。

TFSからAzure DevOpsに移行する方法・メリット

Azure DevOps をリリースされる以前は、オンプレミスでのソフトウェア開発は同社が提供するTFS(Team Foundation Server)がよく利用されていました。そのため、TFSからAzure DevOpsへの移行は比較的容易で、親和性も高いです。ちなみにオンプレミスのTFSからAzure DevOpsに移行するには、AzureサブスクリプションとAzureインフラストラクチャの適切な設定、Azureサービスを購入(IDの所有)していることが前提になります。

まず、Azure Storage アカウントを作成しましょう。アカウントを作ったら、TFSインスタンスを「Team Foundation Server 2018 Update 3」にアップデートします。さらにTFS移行ツールをインストール後に実行して、TFSコレクションを検証します。検証が終わったら、同ツールを使用して移行ファイルを作成しましょう。これで準備は終わりです。あとはコレクションのデタッチテストや、移行のドライランの実行などをし、ソースコード管理をTFVCからGitに移行すれば完了です。
なお、移行は許可された期間内に完了させましょう。完了させない場合はアクセス許可が失効します。

TFSからAzure DevOpsに移行することで、直接Azureへのデプロイができるようになります。また、最新の機能を利用できるなどといったメリットも享受できます。

ヒューマンエラー防止

アジャイル開発のように小規模の開発を繰り返すため、不具合やバグを発見しやすくなります。もちろんセキュリティ面も安心です。手作業で行ってきたプロセスをツールの活用で自動化できるので、ヒューマンエラーを未然に防ぎ、安定した稼働性を高められます。

生産性向上につながる

開発担当と運用担当のサイロ化を排除し、互いの連携で情報のやり取りが効率化されるため、開発環境の作業のムダを削減できます。ツールで情報共有が図れるので、開発したソフトウェアの品質改善もスムーズに行え、生産性が向上します。エンドユーザーのフィードバックなども反映しやすくなることも、生産性の向上に有効です。

開発の高速化

開発環境では作成・修正したコードの試行と本番モードのデプロイを機械学習で自動的に繰り返します。そのため、変更要求がしやすく、柔軟でスピーディーな開発が可能です。サービスの販売までの時間を短縮できるので、市場に適したサービスを提供することで、競争力の向上が望めるでしょう。

まとめ

DevOpsを導入すれば、インフラシステムの「安定性と信頼性」、「生産性」の向上、「開発スピードアップ」が期待できます。Azure DevOpsはクラウドとオンプレミス、どちらにも対応し、エンジニアの開発共同作業を効率化・迅速化することも可能です。無料で利用できるサービスもあるので、ぜひ一度お試しください。

Azure利用ガイド

RELATED POST関連記事


RECENT POST「クラウド移行(インフラ・DB)」の最新記事


TFSをAzure DevOpsに移行する方法とは?
New call-to-action

RECENT POST 最新記事

ブログ無料購読
New call-to-action

関連サイト

サイト掲載へのお問い合わせ