初心者でも始められるAzure DevOps

この記事は
[Azure DevOps Advent Calendar 2019](https://qiita.com/advent-calendar/2019/azuredevops)　の　1日目です。

## Azure DevOpsとはなんですか？

Microsoftが提供するDevOpsを強力に押し進められるようにした
**ツール群** です。

これといった特定のツールではなく、
素晴らしいテクノロジが搭載されたツール群です　これらを組み合わせて
**DevOpsを押し進める協力な武器になります。**


DevOpsは　アプリケーションの「計画」「開発」「配信」「運用」
のライフサイクルに影響を与えますが、テクノロジの利用によって
ある程度シームレスにつながっています。


公式ページから文章を一部拝借して説明
https://azure.microsoft.com/ja-jp/services/devops/

## でもお高いんでしょう？

AzureDevOpsは導入しやすいシステムです。
**「５名以下のチーム開発ならおそらく無料の範囲内で利用できてしまう」ので使ってしまうのもてだと思います。**

↓で料金を確認してみましょう。
https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/


### 導入前の説明

**「開発」「配信」部分に重点を当てたビギナー導入を説明します。**


AzureDevOpsは進化が早く、随時アップデートが行われています。
特に　親和性の高いAzureとの連携は　1年前より**格段に早くなっており**

**チュートリアルレベルなら　あっとういうまに導入が終わります。**

## 具体的な手順
ここでは一般的なAppServeiceを立ち上げることにしましょう。
今回は例として　.NET core Webapp を選びます

用意するのは ローカルで動くソースコードです。
できれば、git形式で、クラウドサービスのどこかに保存しておきましょう。

### アウトプット先の　Azure　App Serivceを指定する

Azure  にログインして　Webアプリを選びます

<img width="681" alt="スクリーンショット 2019-12-01 10.35.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/49238f3c-2bed-e6f6-98d1-8e71f0baf8c1.png">

項目を選んで　.net core のWebアプリ
を選んで、一度ビルドが終わったら
デプロイセンターを選んでみましょう

## デプロイセンターからCICD環境を構築してみよう

<img width="1621" alt="スクリーンショット 2019-12-01 10.39.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/531be701-cd5b-b668-274c-35d9d9aeea14.png">


すると、実はAzureDevopsを意識していなくても、実はここから開発のDevOpsを押し進める機能が
作れてしまいます。

**2018年にはありませんでした！（多分）**


ソース管理はGitを選んでいればどこでも構いませんが、多くの人はGitHubを選ぶのではないでしょうか
AzureDevOps内には　AzureReposという　Gitホスティングサービスがあります。

### ビルドする方法を選ぼう

<img width="726" alt="スクリーンショット 2019-12-01 10.57.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/cf48c3d6-a1e7-8268-c209-00e4e1db3405.png">


ここではAzurePipeleを選びます

３の構成でソースを選ぶとあっという間に完成します。
ここでは私のGitHubにある　Blazorというアプリを選んでいます
これはAsp.NETCoreなので、それを選んでいます。　デフォルトでは　Node.js python PHPも選べます。


<img width="851" alt="スクリーンショット 2019-12-01 11.01.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/306f7332-188a-9c5c-cf04-8e057a5bf7f5.png">

ここで初めてAzureDevOpsを意識します。ここではAzureDevOps内のツール　AzurePipelineを使うために利用します。
新規の人は新規でつくりましょう。


<img width="1062" alt="スクリーンショット 2019-12-01 10.59.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/d0f14d9b-7782-63ad-87c4-1fa8280839dc.png">


するとAzureDevOps内の Pipelineの　buildと　Releaseに　キューが設置されます。
<img width="258" alt="スクリーンショット 2019-12-01 11.10.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/5c8a272e-a933-839a-4376-998f0322c88f.png">

ビルドパイプラインでは、gitから入手したソースコードを　テスト＆ビルドできます。


<img width="1056" alt="スクリーンショット 2019-12-01 11.11.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/da084ba3-e55d-8e05-d896-589e9ef2f14f.png">

具体的にBuildで何が起きているかみることができます Editボタンを選んでみましょう
リストア⇨ビルド⇨テスト⇨パブリッシュまで行ってくれます。

<img width="644" alt="スクリーンショット 2019-12-01 11.13.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/c2ed65dc-9f48-88c5-fa84-188e24951909.png">

GUI以外にも　全てコードレベルのYamlも対応してます。
デフォルト構成で作っただけでは　CIが失敗することがあるので、その時には↓のリファレンスが役に立ちます。
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema


同時にリリースパイプラインも作られています。
<img width="675" alt="スクリーンショット 2019-12-01 11.34.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46608/6412bfa4-052c-4e20-8f82-dc5bc9bee4db.png">

これが成功すると、
Azure でHPがappが公開されます。


## お伝えしたいこと

以上の用に簡単にCI開発環境が作れるようになりました。
設定してしまえば、GITのブランチが更新されるたびに自動でデプロイが実行されます。

後最近、Microsoft は　ドキュメントと教育に非常に力を入れているように見えます。
（誤字脱字が多いのは目を瞑ってください！）

この記事を流し読みしたら
できれば！詳細な公式ページを読んで、実行してみてください↓（日本語対応しました）
https://docs.microsoft.com/ja-jp/aspnet/core/azure/devops/?view=aspnetcore-3.0

もっとできることなら公式の教育ページMSlearnをやってみましょう。
https://docs.microsoft.com/ja-jp/learn/browse/?products=azure&roles=devops-engineer