Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure DevOps と VS でコンテナを CI/CD してみよう

408 views

Published on

2018/10/23 Azure Antenna ワークショップ資料です

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Azure DevOps と VS でコンテナを CI/CD してみよう

  1. 1. Azure DevOps と VS でコンテナを CI/CD してみよう
  2. 2. 今日のアジェンダ 時間 内容 13:00-13:30 オープニング(自己紹介、環境確認) 13:30-14:00 Azure DevOps 概要 14:00-14:45 ASP.NET Core, Containers, Azure Web App for Containers 概要 14:45-15:00 休憩 15:00-16:00 ASP.NET Core アプリ作成と Web App へのデプロイ 16:00-17:00 コンテナ化とビルドパイプライン構築、Web App for Containers へのデプロイ 17:00-17:30 QA + まとめ
  3. 3. 井上 章 (いのうえ あきら) http://aka.ms/chack 2008 年マイクロソフト入社。 主に .NET や Visual Studio, Microsoft Azure などの開発技術を専門とするエバンジェリスト として、技術書籍やオンライン記事などの執筆、 さまざまな技術イベントでの講演などを行う。 2018 年より Global Black Belt (GBB) という 技術専門組織に異動し、モバイルとクラウドを 中心としたアプリ開発技術の訴求活動に従事。
  4. 4. https://azure.microsoft.com/en-us/free/ https://azure.com/devops https://store.docker.com/editions/community/docker-ce-desktop-windows https://visualstudio.microsoft.com/ja/ 本日必要な環境
  5. 5. Microsoft Azure The Visual Studio family Best-in-class tools for any developer Visual Studio App Center Visual Studio Code Visual Studio Visual Studio for Mac Azure DevOps
  6. 6. What is DevOps? People. Process. Products. DevOps is the union of people, process, and products to enable continuous delivery of value to your end users. “ ” Build & Test Continuous Delivery Deploy Operate Monitor & Learn Plan & Track Develop
  7. 7. 優秀な DevOps 企業が達成したこと High Performance DevOps Companies Achieve… DevOps 製品市場投入の 高速化 収益の増加 2,604 倍 平均修復時間の高速化 2,555 倍 変更までの リードタイム短縮 7 倍 低い変更失敗率 46 倍 開発サイクルの高速化 $ Source: 2018 Accelerate: State of DevOps: Strategies for a New Economy." N. Forsgren, J. Humble, G. Kim. DevOps Research and Assessment (DORA)
  8. 8. Azure DevOps (旧 Visual Studio Team Services: VSTS) 実績のあるアジャイル ツールを使用して より迅速にユーザーに価値をもたらし、 チームの垣根を越えて作業を計画、追 跡したり、作業に関する相談をしたりで きます。 あらゆる言語、プラットフォーム、クラウドに 対応した CI/CD を使用して、ビルド、テスト、 デプロイできます。GitHub や他の Git プロ バイダーに接続し、継続的にデプロイするこ ともできます。 クラウドでホストされた容量無制限のプ ライベート Git リポジトリを入手し、プル 要求と高度なファイル管理により、優 れたコードを協力してビルドできます。 手動の探索的テスト ツールを使用す ることで、テストと公開を自信を持って 行うことができます。 パッケージを作成、ホストしたら、チームで共 有し、ワンクリックで CI/CD パイプラインに 成果物を追加できます。 Azure Boards Azure ReposAzure Pipelines Azure Test Plans Azure Artifacts https://azure.com/devops ➔
  9. 9. Azure Pipelines オープン ソース用に 10 個の無料の並列ジョブ (時間制限なし) を実行可能な、Linux, macOS, および Windows 用のクラウド ホステッド パイプライン Any language, any platform, any cloud Build, test, and deploy Node.js, Python, 
Java, PHP, Ruby, C/C++, .NET, Android, and iOS apps. Run in parallel on Linux, macOS, and Windows. Deploy to Azure, AWS, GCP or on-premises Extensible Explore and implement a wide range of community- built build, test, and deployment tasks, along with hundreds of extensions from Slack to SonarCloud. Support for YAML, reporting and more Best-in-class for open source Ensure fast continuous integration/continuous delivery (CI/CD) pipelines for every open source project. Get unlimited build minutes for all open source projects with up to 10 free parallel jobs across Linux, macOS and Windows https://azure.com/pipelines➔ Containers and Kubernetes Easily build and push images to container registries like Docker Hub and Azure Container Registry. Deploy containers to individual hosts or Kubernetes.
  10. 10. Azure Boards かんばんボード、バックログ、チームのダッシュボード、カスタム レポートを使用して作業を追跡 https://azure.com/devops➔ Connected from idea to release Track all your ideas at every development stage and keep your team aligned with all code changes linked directly to work items. Scrum ready Use built-in scrum boards and planning tools to help your teams run sprints, stand-ups, and planning meetings. Project insights Gain new insights into the health and status of your project with powerful analytics tools and dashboard widgets.
  11. 11. Azure Repos オープンソース プロジェクトから世界最大規模のリポジトリ までスケール可能な無制限のプライベート Git リポジトリの ホスティングと TFVC のサポート https://azure.com/devops➔ Works with your Git client Securely connect with and push code into your Git repos from any IDE, editor, or Git client. Web hooks and API integration Add validations and extensions from the marketplace or build your own using web hooks and REST APIs. Semantic code search Quickly find what you’re looking for with code-aware search that understands classes and variables.
  12. 12. Azure Test Plans エンドツーエンドの追跡が可能な、スクリプト化されたテスト を計画、実行、追跡し、開発ライフサイクル全体を通して 品質を評価 Capture rich data Capture rich scenario data as you execute tests to make discovered defects actionable. Explore user stories without test cases or test steps. You can create test cases directly from your exploratory test sessions. Test across web and desktop Test your application where it lives. Complete scripted tests across desktop or web scenarios. Test on- premises application from the cloud and vice-versa. Get end-to-end traceability Leverage the same test tools across your engineers and user acceptance testing stakeholders. Pay for the tools only when you need them. https://azure.com/devops➔
  13. 13. Azure Artifacts 完全に統合されたパッケージ管理を CI/CD パイプラインに 追加し、パブリックおよびプライベートソースの Maven、npm、 NuGet のパッケージを作成、共有可能 Manage all package types Get universal artifact management for Maven, npm, and NuGet. Add packages to any pipeline Share packages, and use built-in CI/CD, versioning, and testing. Share code efficiently Easily share code across small teams and large enterprises. https://azure.com/devops➔
  14. 14. Azure DevOps 使用するツールやクラウドを自由に選択可能 Mix and match to create workflows with tools from Microsoft, open source or your favorite 3rd party tools Azure DevOps lets developers choose the tools that are right for them Target any cloud, on-prem or both and deploy to the servers you need
  15. 15. DevOps at Microsoft Data: Internal Microsoft engineering system activity, August 2018 372k Pull Requests per month 2m Git commits per month 78,000Deployments per day 4.4m Builds per month 500m Test executions per day 500k Work items updated per day 5m Work items viewed per day Azure DevOps is the toolchain of choice for Microsoft engineering with over 90,000 internal users https://aka.ms/DevOpsAtMicrosoft➔
  16. 16. Azure DevOps の使用料 無料 無制限のユーザー数とビルド時間 • Azure Pipelines: 10 parallel jobs with unlimited minutes for CI/CD • Azure Boards: Work item tracking and Kanban boards • Azure Repos: Unlimited public Git repos 無料 5 ユーザーまで無料で開始 • Azure Pipelines: Run 1 Microsoft-hosted job for 1,800 minutes per month and 1 self-hosted job for any amount of time • Azure Boards: Work item tracking and Kanban boards • Azure Repos: Unlimited public Git repos • Azure Artifacts: package management • Unlimited stakeholders ¥672/ユーザー/月 Boards & Repos* • Azure Pipelines: Run 1 Microsoft-hosted job for 1,800 minutes per month and 1 self-hosted job for any amount of time • Azure Boards: Work item tracking and Kanban boards • Azure Repos: Unlimited public Git repos • Azure Artifacts: package management • Unlimited stakeholders • Boards & Repos included for Visual Studio subscribers https://azure.microsoft.com/ja-jp/pricing/details/devops/➔ 5 Boards & Repos users and 5 Artifacts users free. Pipelines with unlimited minutes, Test Plans users and additional Artifacts users also available. Please see the Azure pricing calculator for details. *
  17. 17. .NET Everywhere すべてのアプリのための統一プラットフォーム .NET Framework / .NET Core / Xamarin INFRASTRUCTURE .NET Standard DESKTOP WEB CLOUD MOBILE GAMING IoT AI
  18. 18. .NET Application Models .NET Framework .NET Core Xamarin アプリ モデル ベース ライブラリ
  19. 19. .NET Core ASP.NET Core 2.1 .NET Framework
  20. 20. Why Containers ? Write-once, Run-anywhere ‘Write-once, Run-anywhere’ マイクロサービス アーキテクチャ対応 Dev/Test の効率化 確実な Production 環境の配置 Developer Community の成長 アプリケーションのポータビリティ 開発, QA, 運用環境の標準化 OS やインフラ環境の抽象化 リソース配分の最適化 高速起動、スケーラビリティの確保 DevOps Developers Operations
  21. 21. Docker Containers クラウドからオンプレミスまで どこでも実行可能な高速で軽量な アプリケーション / サービスの 配置, 運用, 管理, 自動化のための技術 コンテナー型のアプリ仮想化技術 ◼ ネットワークやリソースを分離 ◼ 高速かつオーバーヘッドの少ない配置展開 ◼ オープンソース WindowsLinux
  22. 22. 仮想マシンと Docker Containers Infrastructure Infrastructure Host Operating System Hypervisor Guest OS Bins/Libs App 1 Guest OS Bins/Libs App 2 Guest OS Bins/Libs App 3 Bins/Libs App/Svc 1 Bins/Libs App/Svc 2 Bins/Libs App/Svc 3 Container Engine Operating System + Network isolation at container level + Resources constraints at container level
  23. 23. Docker Containers ~ 共通デプロイ単位 Optionsofcompute Azure Web App for Containers Service Fabric Ma en Azure Kubernetes Service (AKS) Leverage the Azure platform designed for your container needs Keep using the platform of your choice, running great on Azure Azure Container Registry Docker Hub, private registry Visual Studio tools InteliJ Jenkins Redhat Openshift Container Platform Pivotal Cloud Foundry Kubernetes
  24. 24. ◼ Docker CLI ◼ Azure CLI, SSH ◼ Visual Studio Code & Docker 拡張機能 ◼ Visual Studio 2017 コンテナー サポート (Build, Debug) ◼ Docker Image の管理 • Docker Hub • Azure Container Registry • Private Registry Container 開発とツールサポート
  25. 25. Linux ベースの PaaS サービス & コンテナー実行基盤 App Service on Linux & Web App for Containers Bring your code Bring your container ✓ Azure 上へ高速デプロイ ✓ オンデマンドでスケールが容易 ✓ CI/CD による Agile 開発が可能 ※ 現時点では Basic および Standard の App Service プランのみのサポートとなります。
  26. 26. Web App for Containers Docker コンテナーの実行基盤として最適化された PaaS プラットフォーム
  27. 27. Container 開発ライフサイクル (シナリオ例) Azure 開発環境 git push pull, clone docker push CD (Webhook) docker push
  28. 28. ASP.NET Core アプリ作成と Azure Web App へのデプロイ
  29. 29. 1. Visual Studio 2017 から Azure Web App へデプロイ
  30. 30. 2. Azure DevOps から CI/CD
  31. 31. コンテナ化とビルドパイプライン構築と Web App for Containers へのデプロイ
  32. 32. NuGet パッケージ:Microsoft.DotNet.InternalAbstractions 3. Visual Studio 2017 でのコンテナ化とデバッグ // index.cshtml @using Microsoft.DotNet.InternalAbstractions <h1>@RuntimeEnvironment.OperatingSystem</h1>
  33. 33. 4. Web App for Containers へ CI/CD
  34. 34. Microsoft Developers
  35. 35. © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×