KEMBAR78
Azure DevOps - ALGYAN Oct 2022.pdf
Yasuhiro Handa
Microsoft
Cloud Solution Architect
ALGYAN
エッジAI入門&活用シリーズ#3
『AzureDevOps/GitHubでCI/CD』編
People. Process. Products.
What is DevOps?
DevOps はエンドユーザーに価値を
継続的に提供できるようにする 人,
プロセス, および 製品 の連携です。
“
”
Build
&
Test
Continuous
Delivery
Deploy
Operate
Monitor
&
Learn
Plan
&
Track
Develop
High Performance DevOps Companies Achieve…
DevOps $
Source: 2018 Accelerate: State of DevOps: Strategies for a New Economy." N. Forsgren, J. Humble, G. Kim. DevOps Research and Assessment (DORA)
市場出荷までの
速度加速
収益up
平均リカバリ時間が
2,604倍高速に
変更にかかっていた時間が
2,555倍高速に
故障率が
7倍減少
デプロイの頻度が
46倍に
Introducing Azure DevOps
Azure Boards Azure Repos
Azure Pipelines
Azure Test Plans Azure Artifacts
https://azure.com/devops
➔
実績のあるアジャイルツールで作業を計画、
追跡およびチーム全体で議論することで、
ユーザに価値をより迅速に提供
あらゆる言語、プラットフォーム、クラウドでの
CI/CD を使用して、ビルド、テスト、デプロイ。
GitHub に接続し、継続的デプロイを実施
無制限なクラウドホスティングの Gitリポジトリ。
プルリクエストと高度なファイル管理でより良い
コードを構築
チームでパッケージを作成、ホスト、共有し、
ワンクリックで CI/CD パイプラインにアー
ティファクトを追加
手動もしくは探索テストツールを用いた
テスト・配信
ソフトウェア開発のはじめ
• 何を開発する必要があるか(新しい機能、バグ修正)
• なぜ開発するのか(ビジネス価値)
• どのアイテムがビジネス上最も重要か
Plan Code
As a customer, I
should be able to
use Bluetooth-
enabled IoT
Beacon sensors
for registration
Lengthy
usernames not
accepted
As a hotel
manager, I should
be able to see
guest list for a
date
As a room guest,
I should be able
to control my
room's lighting
within the app
As a reservation
agent, I would like
to send
confirmations to
guest
As a room guest,
I should be able to
personalize the
app with themes
As a room guest,
I should be able to
communicate with
all smart devices
from the app
As a room guest,
I should be able to
enter the room
with facial
recognition
Unable to connect
through 3G
network
ソフトウェア開発のはじめ
• 何を開発する必要があるか(新しい機能、バグ修正)
• なぜ開発するのか(ビジネス価値)
• どのアイテムがビジネス上最も重要か
Plan Code
As a customer, I
should be able to
use Bluetooth-
enabled IoT
Beacon sensors
for registration
Lengthy
usernames not
accepted
As a hotel
manager, I should
be able to see
guest list for a
date
As a room guest,
I should be able
to control my
room's lighting
within the app
As a reservation
agent, I would like
to send
confirmations to
guest
As a room guest,
I should be able to
personalize the
app with themes
As a room guest,
I should be able to
communicate with
all smart devices
from the app
As a room guest,
I should be able to
enter the room
with facial
recognition
Unable to connect
through 3G
network
Azure Boards
かんばんボード、バックログ、チーム ダッシュボード、カスタム
レポートで作業を追跡
Azure Boards
https://azure.com/devops
➔
アイデアからリリースまでつなげる
すべての開発段階ですべてのアイデアを追跡し、作業項目に
直接リンクされたすべてのコード変更をチームに共有
スクラム対応
組み込みのスクラムボードと計画ツールを使用して、チームがス
プリント、スタンドアップ、計画会議を実行
プロジェクトの洞察
強力な分析ツールとダッシュボードウィジェットを使用して、プロ
ジェクトの健全性とステータスに関する新しい洞察を得ることが
可能
開発したコードを、プライベート Git リポジトリにホスト
Plan Code
As a customer, I
should be able to
use Bluetooth-
enabled IoT
Beacon sensors
for registration
Lengthy
usernames not
accepted
As a hotel
manager, I should
be able to see
guest list for a
date
As a room guest,
I should be able
to control my
room's lighting
within the app
As a reservation
agent, I would like
to send
confirmations to
guest
As a room guest,
I should be able to
personalize the
app with themes
As a room guest,
I should be able to
communicate with
all smart devices
from the app
As a room guest,
I should be able to
enter the room
with facial
recognition
Unable to connect
through 3G
network
Azure Boards Azure Repos
無制限のプライベート Git リポジトリ ホスティングと、趣味の
プロジェクトから世界最大の Git リポジトリまで拡張できる
TFVC のサポート
Azure Repos
https://azure.com/devops
➔
いかなる Git Client もサポート
任意の IDE、エディタ、または Git クライアントから Git リポジ
トリに安全に接続し、コードをプッシュ
Webhook と API インテグレーション
マーケットプレイスから検証や拡張機能を追加する、もしくは
webhooks と REST API を使用して独自にビルド
セマンティックコード検索
クラスと変数を理解するコード探知検索で、探しているものを
すばやく検索
CI/CD パイプライン
Code Test Package Deploy
code
changes
main branch
• CI (Continuous Integration):
• ビルド/テスト等の継続的な実行を行う手法
• CD (Continuous Delivery/Deployment):
• CI + リリースプロセスの自動化
CI/CD パイプライン
Code Test Package Deploy
code
changes
main branch Azure Pipelines
• CI (Continuous Integration):
• ビルド/テスト等の継続的な実行を行う手法
• CD (Continuous Delivery/Deployment):
• CI + リリースプロセスの自動化
Linux、Windows、macOS 向けのクラウドホスト型
パイプライン
Azure Pipelines
あらゆる言語、あらゆるプラットフォーム、
あらゆるクラウド
Node.js、Python、Java、PHP、Ruby、C/C++、.NET、
Android、iOS アプリをビルド、テスト、デプロイ。Linux、macOS、
および Windows で並行して実行。 Azure、AWS、GCP、または
オンプレミスにデプロイ。
拡張性
コミュニティが構築した幅広いビルド、テスト、デプロイタスクと、
Slack から SonarCloud までの何百もの拡張機能を探索し
て実装。YAMLのサポート、レポート作成など。
オープンソース向けに無料
すべてのオープンソースプロジェクトで迅速な継続的インテグレーション
/継続的デリバリー(CI/CD)パイプラインを確保します。Linux、
macOS、Windows全体で最大10の無料の並列ジョブを使用して、
すべてのオープンソースプロジェクトの無制限のビルド分を取得。
https://azure.com/pipelines
➔
コンテナと Kubernetes
イメージを簡単にビルドし、Docker Hub や Azure コンテナー レジス
トリなどのコンテナー レジストリにプッシュ。コンテナーを個々のホスト
または Kubernetes にデプロイ。
パッケージの作成、共有
Test Build artifact Push to
repository
single
artifact
source
code
Test Build artifact Push to
repository
single
artifact
source
code
Azure Pipelines (Build) Azure Artifacts
パッケージの作成、共有
パブリックおよびプライベートソースからのMaven、npm、
NuGet、Python パッケージフィードの作成と共有 – CI/CDパ
イプラインに完全に統合
Azure Artifacts
全てのパッケージタイプを管理
Maven、npm、NuGet、Python の汎用アーティファクト管理
を取得
パッケージをパイプラインに追加
パッケージの共有と組み込みの CI/CD、バージョン管理、およ
びテスト
コードを効率的に共有
小規模なチームや大企業間でコードを簡単に共有
https://azure.com/devops
➔
テストプラン
Functional
Tests
Integration
Tests
Load
Tests
• テスト管理ツール
• 統合された全テストケース
のセントラルビュー
User Acceptance
Tests
Azure Test Plans
エンドツーエンドのトレーサビリティを実現します。テストを実
行し、ブラウザから欠陥をログに記録します。テストライフサイ
クル全体を通じて品質を追跡および評価します。
Azure Test Plans
豊富なデータをキャプチャ
検出された欠陥を実行可能にするため、テスト実行時に、豊
富なシナリオデータをキャプチャ
デスクトップ・Web 全体でテスト
デスクトップまたは Web アプリケーション全体でテストを実行し、
アプリケーションをテスト
E2E のトレーサビリティ
ストーリーとフィーチャーのエンドツーエンドのトレーサビリティと品
質を活用
https://azure.com/devops
➔
Introducing Azure DevOps
Azure Boards Azure Repos
Azure Pipelines
Azure Test Plans Azure Artifacts
https://azure.com/devops
➔
実績のあるアジャイルツールで作業を計画、
追跡およびチーム全体で議論することで、
ユーザに価値をより迅速に提供
あらゆる言語、プラットフォーム、クラウドでの
CI/CD を使用して、ビルド、テスト、デプロイ。
GitHub に接続し、継続的デプロイを実施
無制限なクラウドホスティングの Gitリポジトリ。
プルリクエストと高度なファイル管理でより良い
コードを構築
チームでパッケージを作成、ホスト、共有し、
ワンクリックで CI/CD パイプラインにアー
ティファクトを追加
手動もしくは探索テストツールを用いた
テスト・配信
Azure エコシステムの拡大
Azure Pipelines
パブリックプロジェクトのための最大10個の
無料の並列ジョブ(毎月時間制限なし)
Microsoft Open Source
https://azure.com/pipelines
➔
Azure Boards
Azure Repos
Azure Pipelines
Azure Test Plans
Azure Artifacts
GitHub は優れたソーシャルコーディングのワークフローをチーム
にもたらします。サイロを細分化し、以下のものを通してイン
ナーソースを有効化します。
• 専門知識の共有
• チーム間コラボレーション
• 改善されたコードの再利用
• 開発速度の加速
Azure DevOpsとGitHubは同じ
チームで作業しています。
Azure DevOps ユーザーの要件とインサイト
をGitHubに取り込んでいます。
Microsoft 10万人のエンジニアのた
めに標準化されたツール
Microsoft x GitHub
Azure
Repos
Azure
Pipelines
Azure
Artifacts
GitHub
GitHub
Actions
GitHub
Packages
Source control
Based on Git
CI/CD
Based on the Azure
Pipelines technology
Code Packages
Based on standard, open
package formats
使い慣れたツールを使用する
既存のツールおよびワークフローと統合する
Boards
(Azure DevOps)
Visual Studio
Visual Studio Code
Pipelines + Test
Plans & Artifacts
(Azure DevOps)
Monitor
(Azure Monitor)
GitHub
Trello Atom GitHub GitHub Actions Terraform ELK Stack
Azure Key Vault / Service Principal と Azure Pipelines
管理者
開発者
Azure Pipelines
Key Vault
Service Principal を使用して
読み取り専用アクセスを提供
シークレットと値を作成
(=シークレットを管理するユーザー)
(=シークレットを使用するユーザー)
Azure IoT Edge への CI/CD
Azure DevOps Project からテンプレートを提供
MLOps = ML + DEV + OPS
ML
実験
データ検索
ビジネス理解
初期モデリング
Develop Operate
継続的デリバリー
データフィードバックループ
システム+モデル監視
+ テスト
継続的インテグレーション
継続的デプロイ
MLOps のメリット
• コード ドライブの生成とデプロイ
• パイプラインは再現性と検証が
可能
• すべてのアーティファクトにタグを
付けて監査
• 品質管理のためのSWEベスト
プラクティス
• モデル品質のオフライン比較
• バイアスを最小限に抑え、説
明性を提供
• 制御されたロールアウト機能
• 予測パフォーマンスと予想パ
フォーマンスのライブ比較
• ドリフトを監視し、モデルを改善
するための結果フィードバック
自動化/
可観測性
検証
再現性/
監査可能性
== VELOCITY and SECURITY (For ML)
MLOps Workflow
Model
management
& monitoring
Model performance
analysis
Model reproducibility Model retraining
Model deployment
Model validation
Train model Validate
model
Deploy
model
Monitor
model
Retrain model
Build app
Collaborate Test app Release app Monitor app
App developer
using DevOps
Data scientist using
Machine Learning
© Copyright Microsoft Corporation. All rights reserved.

Azure DevOps - ALGYAN Oct 2022.pdf