MicrosoftAzureとコンテナサービスたち
by
derui
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Microsoft Azureと コンテナサービスたち ~DevOpsを添えて~ 高橋 裕也 株式会社オープンストリーム アーキテクト
Slide 2
Slide 2 text
名前: 高橋 裕也 所属: 株式会社オープンストリーム 戦略技術推進本部 やってること: アーキテクト 好きな技術: コンテナ、フロントエンド、OCaml Who are you?
Slide 3
Slide 3 text
Microsoft Azureのコンテナサービス コンテナのCI/CD Azure DevOps 今回話すこと
Slide 4
Slide 4 text
コンテナとは Dockerとは Kubernetesとは 他のクラウドサービスとの詳細な比較 今回話さないこと
Slide 5
Slide 5 text
Microsoft Azureを聞いたことがあるか Microsoft Azureを使ったことがあるか コンテナサービスを使ったことがあるか 質問です
Slide 6
Slide 6 text
Microsoft社が運営しているパブリックク ラウド(IaaS、PaaS) 2010年からサービス開始 世界2位(2019年7月時点)の売り上げ 世界1位はAWS Microsoft Azureとは
Slide 7
Slide 7 text
Microsoft製品との親和性の高さ AD、Windows Server、SQL Server・・・ 特にAD関連については他のクラウドを圧倒 サービス数の多さ およそAWSの倍(200~)のサービス数 Microsoft Azureの特徴
Slide 8
Slide 8 text
AI関連サービスの充実 AI関連サービス数は主だったクラウドの中で も際立って多い テキスト分類、画像分類、Text to speech・・・ MLなどの機械学習系 Microsoft Azureの特徴
Slide 9
Slide 9 text
Azureのコンテナサービス Kubernetes Service Service Fabric Container Instances Container Registry Web App For Containers Red Hat OpenShift
Slide 10
Slide 10 text
Docker Registry互換のフルマネージドな コンテナーレジストリ Azureの認証基盤と統合されている ACRタスクという形で、イメージのビルドと かをAzure上で実行可能 Container Registry
Slide 11
Slide 11 text
Web Appsの上でカスタムコンテナを動作 させる Web Apps=特定の言語でWebアプリを簡単 に動作させることができるサービス カスタムコンテナのイメージはDockerHub やContainer Registryから取得可能 Web App for Containers
Slide 12
Slide 12 text
.NET/Javaで作られたマイクロサービスを 管理する基盤を提供 .NET/Javaで作る場合は提供されたSDKを利 用 ステートレス、ステートフルという区別がある Azure上のサービス基盤としても利用され ている Service Fabric
Slide 13
Slide 13 text
Linuxのコンテナ、Windowsのコンテナそ れぞれ実行させることができる Linuxコンテナの場合、docker-composeの設 定ファイルに変換が可能 コンテナを直接動作させる場合、ステートレ ス・ステートフルという区別は無くなる Service Fabric
Slide 14
Slide 14 text
Azureの管理するVM上でコンテナを直接 動作させる AWSのFargateと同じ感じ 数秒のスピンアップ、メモリとCPUだけの 設定、パブリックへの公開が可能 お手軽さNo.1 Container Instances
Slide 15
Slide 15 text
Azure上で動作するフルマネージドな Kubernetesクラスター 管理ノードはフルマネージド エージェントノードもマネージド エージェントノードは、タイプと数が選べる エージェントノードのスケーリングはユーザー が行う Kubernetes Service (AKS)
Slide 16
Slide 16 text
Azure上で動作するフルマネージドな OpenShift Kubernetesをエンタープライズで利用す る場合に必要な諸々を組み込める ただしミニマムコストが高い Red Hat OpenShift
Slide 17
Slide 17 text
選択肢は他のクラウドと遜色ない AWS Fargate的なサービス、Web Appsの拡 張、独自のServiceFabric スタンダードはKubernetes OpenShiftはエンタープライズ向け 直近だと大抵AKSが選択される雰囲気 コンテナサービスのまとめ
Slide 18
Slide 18 text
AKSを使うことになったとして アプリケーション、どうCIしていきますか? Jenkinsと共に生きる Jenkinsでビルド、どこかへイメージをpush 外部サービスを使う(最近の主流) コンテナサービスとCI
Slide 19
Slide 19 text
AKSを使うことになったとして アプリケーション、どうデプロイしますか? 手作業の温もり、念じながらkubektl Jenkinsと共に生きる 外部サービスを使う(最近の主流) コンテナサービスとデプロイ
Slide 20
Slide 20 text
通称三種の神器(今命名) VCS → Github CI/CD→CircleCI コンテナレジストリ→DockerHub 外部サービスといえば
Slide 21
Slide 21 text
好きなサービスを選択できる 単機能なサービスを組み合わせられる 別のサービスに切り替えられる ソフトウェア、ミドルウェアの運用が不要 じゃあ外部サービスだ、とやってみる 外部サービスには選択の自由がある
Slide 22
Slide 22 text
認証情報の設定が煩雑 CircleCIからGithubへの接続を許可 CircleCIからDockerHubにpushするために DockerHubのuser/passをCircleCI上に設 定 CircleCIからAKSにデプロイするために、 Azureでトークンを発行して設定 外部サービスを使っていくと・・・
Slide 23
Slide 23 text
ビルド設定などが分散する コードで設定できるとは言っても、各プロ ジェクトごとに設定が分散する マイクロサービスの管理が完全に独立して いるケースはまれ ある程度管理を利かせたい場合、それぞ れ確認しないとならない 外部サービスを使っていくと・・・
Slide 24
Slide 24 text
認証情報の管理が辛い 各サービスごとに別々の設定方式 外部サービスごとのアカウント管理 全部がGoogle認証できるわけでもない もっといい方法はないものか・・・ ふと思う
Slide 25
Slide 25 text
https://azure.microsoft.com/ja-jp/blog/introducing-azure-devops/ Azure DevOps
Slide 26
Slide 26 text
2018年9月に発表 元々VSTSとなっていたものをリブランド VSTSにあった機能をリネームしてまとめた ものがDevOps、という位置づけ GitHubのリポジトリと簡単に統合可能 Azure DevOpsとは
Slide 27
Slide 27 text
Azure Repos Azure Boards Azure Pipelines Azure Test Plans Azure Artifacts Azure DevOpsの機能
Slide 28
Slide 28 text
Azure Repos
Slide 29
Slide 29 text
いわゆるGitリポジトリのホスティング機能 GitHub/GitLab/BitBucketとかと同じような 機能を提供 SSH/HTTPSでアクセス可能 無制限のプライベートリポジトリ Azure Repos
Slide 30
Slide 30 text
Azure Boards
Slide 31
Slide 31 text
いわゆるカンバン バックログ、スプリント、ダッシュボードなど が実装 バックログだけを使う、とかも可能 GitHub統合を利用すると、GitHubのPRと かもここから見えるようになる Azure Boards
Slide 32
Slide 32 text
Azure Pipelines
Slide 33
Slide 33 text
CI/CDパイプライン すごいざっくり言うと、Azureに統合された CircleCI 大きくBuildとReleaseで分かれていて、機 能的にも結構違う Azure Pipelines
Slide 34
Slide 34 text
Azure Test Plans
Slide 35
Slide 35 text
手動テスト・自動テストの統合スイート テストプランやテストケースを包括的に登 録、管理が可能 Test Runnerという形でテストケースの消 化やバグチケットの登録をサポート Azure Test Plans
Slide 36
Slide 36 text
Azure Artifacts
Slide 37
Slide 37 text
Maven/Python/npm/NuGetなどのパッ ケージを保存できる 保存もPipelinesから可能 保存したものは、Maven/npm/pipなどから 利用可能 Azure Artifacts
Slide 38
Slide 38 text
認証情報の管理負担が軽減 →マネージドにお任せ サービスの分散による煩雑さが軽減 →DevOpsを見ればOK 設定内容の共有、一か所での管理か可能 →Releaseは一か所から使いまわし可能 Azure DevOpsで楽になること
Slide 39
Slide 39 text
AKSを使ってるのに? AKS ≠ 他クラウドのKubernetes ACRとかArtifactsとかADとか使ってたらそもそ もAzureにロックインされている どんなサービスでもロックインされる 固有機能を使った時点でロックインされている でもAzureにロックインされる・・・
Slide 40
Slide 40 text
Azureでアプリケーションを運用している CI/CDもAzureに載せて問題がある? Azure DevOpsは部分的にも使える リポジトリはGitHub、というケースにも対応 セキュリティのガバナンスを利かせたい、 とかも対応できるはず 提案:いっそ首まで浸かってみる
Slide 41
Slide 41 text
Azureのコンテナサービスは割とバラエ ティ豊か 外部サービス主体のCI/CDは、運用が進 むと疲弊しがちかも? Azure DevOpsで統合、というのも選択肢 に加えてみよう 今日話したこと
Slide 42
Slide 42 text
Thank you for hearing!