Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MicrosoftAzureとコンテナサービスたち
Search
derui
July 24, 2019
Technology
0
130
MicrosoftAzureとコンテナサービスたち
derui
July 24, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
620
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
2
230
本当のAWS基礎
toru_kubota
0
500
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
890
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.9k
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
140
On Your Data を超えていく!
hirotomotaguchi
2
660
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
220
日本におけるデータエンジニアリングのこれまでとこれから
foursue
16
4.2k
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
290
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
290
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Code Review Best Practice
trishagee
55
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
121
39k
A Tale of Four Properties
chriscoyier
151
22k
Code Reviewing Like a Champion
maltzj
514
39k
A better future with KSS
kneath
231
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
125
32k
The Art of Programming - Codeland 2020
erikaheidi
42
12k
Gamification - CAS2011
davidbonilla
76
4.6k
Ruby is Unlike a Banana
tanoku
96
10k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Transcript
Microsoft Azureと コンテナサービスたち ~DevOpsを添えて~ 高橋 裕也 株式会社オープンストリーム アーキテクト
名前: 高橋 裕也 所属: 株式会社オープンストリーム 戦略技術推進本部 やってること:
アーキテクト 好きな技術: コンテナ、フロントエンド、OCaml Who are you?
Microsoft Azureのコンテナサービス コンテナのCI/CD Azure DevOps 今回話すこと
コンテナとは Dockerとは Kubernetesとは 他のクラウドサービスとの詳細な比較 今回話さないこと
Microsoft Azureを聞いたことがあるか Microsoft Azureを使ったことがあるか コンテナサービスを使ったことがあるか 質問です
Microsoft社が運営しているパブリックク ラウド(IaaS、PaaS) 2010年からサービス開始 世界2位(2019年7月時点)の売り上げ 世界1位はAWS Microsoft
Azureとは
Microsoft製品との親和性の高さ AD、Windows Server、SQL Server・・・ 特にAD関連については他のクラウドを圧倒 サービス数の多さ
およそAWSの倍(200~)のサービス数 Microsoft Azureの特徴
AI関連サービスの充実 AI関連サービス数は主だったクラウドの中で も際立って多い テキスト分類、画像分類、Text to speech・・・
MLなどの機械学習系 Microsoft Azureの特徴
Azureのコンテナサービス Kubernetes Service Service Fabric Container Instances Container Registry Web
App For Containers Red Hat OpenShift
Docker Registry互換のフルマネージドな コンテナーレジストリ Azureの認証基盤と統合されている ACRタスクという形で、イメージのビルドと かをAzure上で実行可能 Container
Registry
Web Appsの上でカスタムコンテナを動作 させる Web Apps=特定の言語でWebアプリを簡単 に動作させることができるサービス カスタムコンテナのイメージはDockerHub
やContainer Registryから取得可能 Web App for Containers
.NET/Javaで作られたマイクロサービスを 管理する基盤を提供 .NET/Javaで作る場合は提供されたSDKを利 用 ステートレス、ステートフルという区別がある Azure上のサービス基盤としても利用され
ている Service Fabric
Linuxのコンテナ、Windowsのコンテナそ れぞれ実行させることができる Linuxコンテナの場合、docker-composeの設 定ファイルに変換が可能 コンテナを直接動作させる場合、ステートレ ス・ステートフルという区別は無くなる Service
Fabric
Azureの管理するVM上でコンテナを直接 動作させる AWSのFargateと同じ感じ 数秒のスピンアップ、メモリとCPUだけの 設定、パブリックへの公開が可能 お手軽さNo.1
Container Instances
Azure上で動作するフルマネージドな Kubernetesクラスター 管理ノードはフルマネージド エージェントノードもマネージド エージェントノードは、タイプと数が選べる
エージェントノードのスケーリングはユーザー が行う Kubernetes Service (AKS)
Azure上で動作するフルマネージドな OpenShift Kubernetesをエンタープライズで利用す る場合に必要な諸々を組み込める ただしミニマムコストが高い Red Hat
OpenShift
選択肢は他のクラウドと遜色ない AWS Fargate的なサービス、Web Appsの拡 張、独自のServiceFabric スタンダードはKubernetes
OpenShiftはエンタープライズ向け 直近だと大抵AKSが選択される雰囲気 コンテナサービスのまとめ
AKSを使うことになったとして アプリケーション、どうCIしていきますか? Jenkinsと共に生きる Jenkinsでビルド、どこかへイメージをpush 外部サービスを使う(最近の主流)
コンテナサービスとCI
AKSを使うことになったとして アプリケーション、どうデプロイしますか? 手作業の温もり、念じながらkubektl Jenkinsと共に生きる 外部サービスを使う(最近の主流)
コンテナサービスとデプロイ
通称三種の神器(今命名) VCS → Github CI/CD→CircleCI コンテナレジストリ→DockerHub
外部サービスといえば
好きなサービスを選択できる 単機能なサービスを組み合わせられる 別のサービスに切り替えられる ソフトウェア、ミドルウェアの運用が不要 じゃあ外部サービスだ、とやってみる
外部サービスには選択の自由がある
認証情報の設定が煩雑 CircleCIからGithubへの接続を許可 CircleCIからDockerHubにpushするために DockerHubのuser/passをCircleCI上に設 定 CircleCIからAKSにデプロイするために、
Azureでトークンを発行して設定 外部サービスを使っていくと・・・
ビルド設定などが分散する コードで設定できるとは言っても、各プロ ジェクトごとに設定が分散する マイクロサービスの管理が完全に独立して いるケースはまれ ある程度管理を利かせたい場合、それぞ
れ確認しないとならない 外部サービスを使っていくと・・・
認証情報の管理が辛い 各サービスごとに別々の設定方式 外部サービスごとのアカウント管理 全部がGoogle認証できるわけでもない もっといい方法はないものか・・・
ふと思う
https://azure.microsoft.com/ja-jp/blog/introducing-azure-devops/ Azure DevOps
2018年9月に発表 元々VSTSとなっていたものをリブランド VSTSにあった機能をリネームしてまとめた ものがDevOps、という位置づけ GitHubのリポジトリと簡単に統合可能 Azure
DevOpsとは
Azure Repos Azure Boards Azure Pipelines
Azure Test Plans Azure Artifacts Azure DevOpsの機能
Azure Repos
いわゆるGitリポジトリのホスティング機能 GitHub/GitLab/BitBucketとかと同じような 機能を提供 SSH/HTTPSでアクセス可能 無制限のプライベートリポジトリ Azure
Repos
Azure Boards
いわゆるカンバン バックログ、スプリント、ダッシュボードなど が実装 バックログだけを使う、とかも可能 GitHub統合を利用すると、GitHubのPRと かもここから見えるようになる
Azure Boards
Azure Pipelines
CI/CDパイプライン すごいざっくり言うと、Azureに統合された CircleCI 大きくBuildとReleaseで分かれていて、機 能的にも結構違う Azure Pipelines
Azure Test Plans
手動テスト・自動テストの統合スイート テストプランやテストケースを包括的に登 録、管理が可能 Test Runnerという形でテストケースの消 化やバグチケットの登録をサポート Azure
Test Plans
Azure Artifacts
Maven/Python/npm/NuGetなどのパッ ケージを保存できる 保存もPipelinesから可能 保存したものは、Maven/npm/pipなどから 利用可能 Azure Artifacts
認証情報の管理負担が軽減 →マネージドにお任せ サービスの分散による煩雑さが軽減 →DevOpsを見ればOK 設定内容の共有、一か所での管理か可能
→Releaseは一か所から使いまわし可能 Azure DevOpsで楽になること
AKSを使ってるのに? AKS ≠ 他クラウドのKubernetes ACRとかArtifactsとかADとか使ってたらそもそ もAzureにロックインされている
どんなサービスでもロックインされる 固有機能を使った時点でロックインされている でもAzureにロックインされる・・・
Azureでアプリケーションを運用している CI/CDもAzureに載せて問題がある? Azure DevOpsは部分的にも使える リポジトリはGitHub、というケースにも対応
セキュリティのガバナンスを利かせたい、 とかも対応できるはず 提案:いっそ首まで浸かってみる
Azureのコンテナサービスは割とバラエ ティ豊か 外部サービス主体のCI/CDは、運用が進 むと疲弊しがちかも? Azure DevOpsで統合、というのも選択肢 に加えてみよう
今日話したこと
Thank you for hearing!