色々やってるMarcyです。
Azure DevOpsとは
「最新の一連の開発サービスを利用して、よりスマートに計画を立て、より効率的に共同作業を行い、より迅速に公開しましょう。」
(Github + Zenhub + 開発グループウェア + circleci が一つになったような感じです。)
公式サイト引用:https://azure.microsoft.com/ja-jp/services/devops/https://azure.microsoft.com/ja-jp/services/devops/
その中でも、Azure Pipelines(CI/CD)とDockerfileを使い簡単に、ビルドを自動化してみましょう。
(類似するサービスで、circleci codeshipなどがあります。)
CI/CDとは?
継続的インティグレーション/継続的デリバリーを示し、開発に自動化を取り入れ、
バグなどの早期発見および自動デプロイなどを行う。
利用シーン:
例)
ファイルをDockerで作成し変更したファイルをfeatureブランチにプッシュし自動で
ビルドとテストコードが実行されコードが変更されるたびに行われる。
何も問題がなければそのままデプロイされる
百聞はなんとかなので手順を
利用するにはアカウント登録が必要です。こちらから登録)
1.Azure Reposにソースコードをアップする
中身はNginx + golangのDockerfileになっています。
2.左のバーからPipelinesを選択しPipelineNew Pipelineをクリック
3.CIするリポジトリを選択
4.CIするプロジェクトファイルを選択
5.Docker imageを選択
ファイルを自動で識別してくれます。
6.CIの設定
azure-pipelines.yml
imageNameは任意で自由に(プロダクト名に合った名前がベストかと)scriptの
docker build -f Dockerfile -t $(imageName)
のDockerfileの部分はリポジトリにおいてあるDockerfileのパスに合わせてください。
今回自分のリポジトリに合わせて下記の設定にしております。
# Docker image
# Build a Docker image to deploy, run, or push to a container registry.
# Add steps that use Docker Compose, tag images, push to a registry, run an image, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
pool:
vmImage: 'Ubuntu 16.04'
variables:
imageName: 'golangapp:$(build.buildId)'
steps:
- script: docker build -f .docker/golang/Dockerfile -t $(imageName) .
displayName: 'docker build'
7.CI設定ファイルを保存
Commit directiy to the branchを今回選択していますが、CIを設定したいブランチへ作ることも可能です。そのまま Save and Run!
8.CI実行
9.ファイルを変更しmasterブランチにコミット
azure-pipelines.yml にを選択しimageNameの部分だけ変えてコミットしてみましょう。
変更したらコミットしてPipelines戻ってみましょう。
10.変更したコミットファイルの自動実行
先ほどのazure-pipelines.yml を変更したファイルがコミットされるとPipelinesで実行されます。
azure-pipelines.ymlがあるブランチでコミットされたら実行されるのでmasterブランチでなくとも実行されます。
Azure DevOps Azure Pipelines
Pipelinesは10個の無料並列ジョブをサポートされており、先に使っている人をまたずテストが可能です。
(待たなくていいのがいいですね!)
コンテナ開発が主流になっているのでCI/CDを楽にできテストが完了したものをAzure側のKubernetesですぐに使ったり開発環境がとても楽になるのでかなり重宝するかと思います。
蛇の足
昨今クラウドと呼ばれる環境がもてはやされている中、クラウドを主流に扱えるインフラエンジニアの数はものすごく少なく皆人材を求めています。
ですが、専任のインフラエンジアでなくてもクラウドを扱えるよう様々な工夫がなされております。(PaaSすげぇ.....)
参考事例)
【CEDEC2018】Azure最新情報+「オトギフロンティア」運用大公開+サーバーレスアーキテクチャー)
今からインフラ専任で食っていく!というよりも少し開発に携わりつつインフラもやるがベターかもしれません。
(AGMAのクラウドに就職・転職するのであれば専任でいいかもです。)