MicrosoftAzureとコンテナサービスたち

4652ce7ea075507613d7b982283f0c18?s=47 derui
July 24, 2019

 MicrosoftAzureとコンテナサービスたち

4652ce7ea075507613d7b982283f0c18?s=128

derui

July 24, 2019
Tweet

Transcript

  1. Microsoft Azureと コンテナサービスたち ~DevOpsを添えて~ 高橋 裕也 株式会社オープンストリーム アーキテクト

  2.  名前: 高橋 裕也  所属: 株式会社オープンストリーム 戦略技術推進本部  やってること:

    アーキテクト  好きな技術: コンテナ、フロントエンド、OCaml Who are you?
  3. Microsoft Azureのコンテナサービス コンテナのCI/CD Azure DevOps 今回話すこと

  4.  コンテナとは  Dockerとは  Kubernetesとは  他のクラウドサービスとの詳細な比較 今回話さないこと

  5.  Microsoft Azureを聞いたことがあるか  Microsoft Azureを使ったことがあるか  コンテナサービスを使ったことがあるか 質問です

  6.  Microsoft社が運営しているパブリックク ラウド(IaaS、PaaS)  2010年からサービス開始  世界2位(2019年7月時点)の売り上げ  世界1位はAWS Microsoft

    Azureとは
  7.  Microsoft製品との親和性の高さ  AD、Windows Server、SQL Server・・・  特にAD関連については他のクラウドを圧倒  サービス数の多さ

     およそAWSの倍(200~)のサービス数 Microsoft Azureの特徴
  8.  AI関連サービスの充実  AI関連サービス数は主だったクラウドの中で も際立って多い  テキスト分類、画像分類、Text to speech・・・ 

    MLなどの機械学習系 Microsoft Azureの特徴
  9. Azureのコンテナサービス Kubernetes Service Service Fabric Container Instances Container Registry Web

    App For Containers Red Hat OpenShift
  10.  Docker Registry互換のフルマネージドな コンテナーレジストリ  Azureの認証基盤と統合されている  ACRタスクという形で、イメージのビルドと かをAzure上で実行可能 Container

    Registry
  11.  Web Appsの上でカスタムコンテナを動作 させる  Web Apps=特定の言語でWebアプリを簡単 に動作させることができるサービス  カスタムコンテナのイメージはDockerHub

    やContainer Registryから取得可能 Web App for Containers
  12.  .NET/Javaで作られたマイクロサービスを 管理する基盤を提供  .NET/Javaで作る場合は提供されたSDKを利 用  ステートレス、ステートフルという区別がある  Azure上のサービス基盤としても利用され

    ている Service Fabric
  13.  Linuxのコンテナ、Windowsのコンテナそ れぞれ実行させることができる  Linuxコンテナの場合、docker-composeの設 定ファイルに変換が可能  コンテナを直接動作させる場合、ステートレ ス・ステートフルという区別は無くなる Service

    Fabric
  14.  Azureの管理するVM上でコンテナを直接 動作させる  AWSのFargateと同じ感じ  数秒のスピンアップ、メモリとCPUだけの 設定、パブリックへの公開が可能  お手軽さNo.1

    Container Instances
  15.  Azure上で動作するフルマネージドな Kubernetesクラスター  管理ノードはフルマネージド  エージェントノードもマネージド  エージェントノードは、タイプと数が選べる 

    エージェントノードのスケーリングはユーザー が行う Kubernetes Service (AKS)
  16.  Azure上で動作するフルマネージドな OpenShift  Kubernetesをエンタープライズで利用す る場合に必要な諸々を組み込める  ただしミニマムコストが高い Red Hat

    OpenShift
  17.  選択肢は他のクラウドと遜色ない  AWS Fargate的なサービス、Web Appsの拡 張、独自のServiceFabric  スタンダードはKubernetes 

    OpenShiftはエンタープライズ向け  直近だと大抵AKSが選択される雰囲気 コンテナサービスのまとめ
  18.  AKSを使うことになったとして  アプリケーション、どうCIしていきますか?  Jenkinsと共に生きる  Jenkinsでビルド、どこかへイメージをpush  外部サービスを使う(最近の主流)

    コンテナサービスとCI
  19.  AKSを使うことになったとして  アプリケーション、どうデプロイしますか?  手作業の温もり、念じながらkubektl  Jenkinsと共に生きる  外部サービスを使う(最近の主流)

    コンテナサービスとデプロイ
  20.  通称三種の神器(今命名)  VCS → Github  CI/CD→CircleCI  コンテナレジストリ→DockerHub

    外部サービスといえば
  21.  好きなサービスを選択できる  単機能なサービスを組み合わせられる  別のサービスに切り替えられる  ソフトウェア、ミドルウェアの運用が不要  じゃあ外部サービスだ、とやってみる

    外部サービスには選択の自由がある
  22.  認証情報の設定が煩雑  CircleCIからGithubへの接続を許可  CircleCIからDockerHubにpushするために DockerHubのuser/passをCircleCI上に設 定  CircleCIからAKSにデプロイするために、

    Azureでトークンを発行して設定 外部サービスを使っていくと・・・
  23.  ビルド設定などが分散する  コードで設定できるとは言っても、各プロ ジェクトごとに設定が分散する  マイクロサービスの管理が完全に独立して いるケースはまれ  ある程度管理を利かせたい場合、それぞ

    れ確認しないとならない 外部サービスを使っていくと・・・
  24.  認証情報の管理が辛い  各サービスごとに別々の設定方式  外部サービスごとのアカウント管理  全部がGoogle認証できるわけでもない  もっといい方法はないものか・・・

    ふと思う
  25. https://azure.microsoft.com/ja-jp/blog/introducing-azure-devops/ Azure DevOps

  26.  2018年9月に発表  元々VSTSとなっていたものをリブランド  VSTSにあった機能をリネームしてまとめた ものがDevOps、という位置づけ  GitHubのリポジトリと簡単に統合可能 Azure

    DevOpsとは
  27.  Azure Repos  Azure Boards  Azure Pipelines 

    Azure Test Plans  Azure Artifacts Azure DevOpsの機能
  28. Azure Repos

  29.  いわゆるGitリポジトリのホスティング機能  GitHub/GitLab/BitBucketとかと同じような 機能を提供  SSH/HTTPSでアクセス可能  無制限のプライベートリポジトリ Azure

    Repos
  30. Azure Boards

  31.  いわゆるカンバン  バックログ、スプリント、ダッシュボードなど が実装  バックログだけを使う、とかも可能  GitHub統合を利用すると、GitHubのPRと かもここから見えるようになる

    Azure Boards
  32. Azure Pipelines

  33.  CI/CDパイプライン  すごいざっくり言うと、Azureに統合された CircleCI  大きくBuildとReleaseで分かれていて、機 能的にも結構違う Azure Pipelines

  34. Azure Test Plans

  35.  手動テスト・自動テストの統合スイート  テストプランやテストケースを包括的に登 録、管理が可能  Test Runnerという形でテストケースの消 化やバグチケットの登録をサポート Azure

    Test Plans
  36. Azure Artifacts

  37.  Maven/Python/npm/NuGetなどのパッ ケージを保存できる  保存もPipelinesから可能  保存したものは、Maven/npm/pipなどから 利用可能 Azure Artifacts

  38.  認証情報の管理負担が軽減  →マネージドにお任せ  サービスの分散による煩雑さが軽減  →DevOpsを見ればOK  設定内容の共有、一か所での管理か可能

     →Releaseは一か所から使いまわし可能 Azure DevOpsで楽になること
  39.  AKSを使ってるのに?  AKS ≠ 他クラウドのKubernetes  ACRとかArtifactsとかADとか使ってたらそもそ もAzureにロックインされている 

    どんなサービスでもロックインされる  固有機能を使った時点でロックインされている でもAzureにロックインされる・・・
  40.  Azureでアプリケーションを運用している  CI/CDもAzureに載せて問題がある?  Azure DevOpsは部分的にも使える  リポジトリはGitHub、というケースにも対応 

    セキュリティのガバナンスを利かせたい、 とかも対応できるはず 提案:いっそ首まで浸かってみる
  41.  Azureのコンテナサービスは割とバラエ ティ豊か  外部サービス主体のCI/CDは、運用が進 むと疲弊しがちかも?  Azure DevOpsで統合、というのも選択肢 に加えてみよう

    今日話したこと
  42. Thank you for hearing!