SlideShare a Scribd company logo
AKSを活用した
内製教育支援プラットフォーム
をリリースした話
July Tech Festa 2020
2020/7/25
Shingo Kawahara
1
自己紹介
• 河原慎吾
• 株式会社セゾン情報システムズ
• テクノベーションセンター 先端技術部 部長
• 経歴
• オンプレLinuxやラッキングなど
⇓⇓⇓
• VMwareベースの自社クラウド構築/運営
⇓⇓⇓
• パブリッククラウド活用推進
⇓⇓⇓
• 先端技術活用推進/組織運営
• 好きなAzureのサービス
• Azure Logic Apps 2
Qiita
• Azure中心に書き溜めているので参考になればうれしいです!
• https://qiita.com/shingo_kawahara
• フォローお待ちしております♪
3
会社概要
4
◇ 社 名 株式会社セゾン情報システムズ SAISON INFORMATION SYSTEMS CO.,LTD.
◇ 設 立 年 月 日 1970 年 9月 1日
◇ 代 表 取 締 役 社 長 内 田 和 弘
◇ 資 本 金 1,367百万円
◇ 事 業 内 容
 フィナンシャル IT サービスビジネス
 流通 IT サービスビジネス
 リンケージビジネス
 HULFTビジネス
◇ 年 間 売 上 高 23,560百万円(2020年 3月期 連結)
◇ 社 員 数 716名(2020年 3月末現在 連結)
◇ 上 場 市 場 東京証券取引所JASDAQスタンダード市場 (証券コード 9640 / 1993年 11月公開)
◇ 主 要 株 主 ( 上 位 3
社 )
 株式会社クレディセゾン
 イーシーエム エムエフ
 イーシーエム マスターフアンド エスピーブイワン
◇ グ ル ー プ 会 社
 世存信息技術(上海)有限公司
 HULFT Pte. Ltd.
 HULFT, Inc.
◇ 認 定 ・ 届 出 総務省 電気通信事業者届出
◇ 品質・セキュリティ
へ の 取 り 組 み
プライバシーマーク付与 認定取得 登録番号 【11820059】
JISQ27001:2014(ISO/IEC27001:2013)認証取得 登録番号 【JMAQA-S030】
Agenda
• 内製教育
• デザインプロセス
• Azure Kubernetes Service
• Azure ARM Template
• Kubernetes(ingress/cert-manager/helm/hpa)
• Monitor/Log Analytics
• k9s
• Azure Container Registry
• CI/CD
• drone.io
5
内製教育
6
テクノベーションセンターについて
• 2016年4月に設立
• メンバは全員が専任。兼務なし。
• 存在意義
• 外部へ積極的に発信し、ブランドの向上とともに案件の創出
につなげる
• 事業部の先端技術分野への進出を支援する
• 全社の技術スキルを高める
内製教育支援プラットフォームの必要性
7
内製教育
• 従来の技術教育は、受講者自身が外部の研修プログラムを受講
する形式でした
• しかし、学んだことを実践で活かす機会がないことが多く、ま
た必要なときがきても内容を忘れてしまっているといった課題
がありました
• 自分たちで教育を行うことで以下のようなメリットがあります
• 講師は常に社内にいるので、いざ必要になった時や実業務の中で発生
した疑問をすぐに聞くことができる
• 講師は現場の状況を把握することができ、教育を通じて技術支援を行
うことができる
• 講師自身も技術力アップ!
8
グレゴリオ
• 全社員が利用可能な、内製教育支援プラットフォームです。
• 現状の社内イベント作成&申し込みに対する課題を解決するた
めに開発しました。
• 名前の由来は、「社内で開催されるイベントをカレンダーにプ
ロットして俯瞰する」という当初のコンセプトから、世界中の
カレンダーで用いられているグレゴリオ暦をプロジェクトコー
ドとして命名しました。
9
グレゴリオの由来
ローマの偉い人
グレゴリウス13世 グレちゃん
10
開発の経緯/当初の課題
• 当初の課題って?
• いつどんなイベント、勉強会が開催されているかわからない
• スケジュールが一覧で見れない
• 自分の予定表に追加するのを忘れる
• ゆえにリマインドされない
• 申請がめんどくさい
• 開催者は集計が大変
など
11
グレゴリオとは
• 何ができるの?
• 社内イベントの検索、申し込み、募集ができます。
• 申請者の上長は申請を承認、差戻できます。
• O365アカウントと連携し、申し込んだイベントは自動的にカレンダー
に登録されます。
• イベントの作成、募集、開催ができ、アンケートの回収まで行えます。
12
13
2019年10月に社内リリース!
デザインプロセス
14
デザインプロセス
• システム開発を始める前に、2か月間デザイン手法を用いて設
計を行いました
• 非常に有効だったため簡単に紹介してからAKSの話しに入りた
いと思います
15
デザインプロセス
• Gregorioにおけるデザインプロセスの流れ
16
ユーザーインタビュー
• インタビューガイドを事前に検討/作成する
• 承諾を得て動画と音声を記録する
• 誘導型質問を避けてインタビューする
17
• インタビュー後の分析
• 議事録から重要箇所をカード化する
• グループ化する
• 図解化/アウトライン化する
• 検証、考察する
ペルソナの作成
• ペルソナとは
• 商品やサービスのターゲットとなる架空のユーザー像
• その人物が実在しているかのように、年齢・性別・居住地・職業・役
職・年収・趣味・価値観・家族構成・休日の過ごし方・ライフスタイ
ル・ネットリテラシーなどリアリティのある詳細な情報を設定する
• ペルソナを作成するメリット
• ユーザーファーストが実現されやすい
• チーム内で、ターゲットの人物像への認識をより統一できる
• 「こういう時ペルソナならどうするかな?」みたいな会話が生まれる
18
ペルソナの作成
• インタビューの分析結果から共通点を抽出し人物像を当ててい
く
19
カスタマージャーニーマップの作成
感情が落ち込んでいるポイントを優
先課題とする
20
分析から見えてきたニーズ
• イベントを一覧(カレンダー)で見たい
• 申し込んだらOutlookの予定に自動で追加してほしい
• 新しいイベントが追加されたら教えてほしい
• 自分が参加したイベントの履歴が見たい
• アンケートのリマインドが欲しい
など
21
プロトタイプの作成
• ペーパープロトタイピング
• イメージが固まったら紙に清書
してProttで動きを付けて確認
する
22
ユーザーテスト
• モックアップを作成して実際のユーザーに操作してもらう
• ユーザーにはタスクの説明のみを行い、期待する行動をとって
もらえるかがポイントとなる(例:自分が申し込んだ勉強会の
申し込み内容を確認してください)
• インタビュー同様音声の録音と画面収録
• 結果から導線やコンテンツの位置、大小などを調整していく
23
デザインプロセスまとめ
• デザインプロセスには時間がかかる
• ペルソナやマップをアウトプットすることで後で立ち返れるこ
とは大きなメリット
• 全員が同じ方向/イメージ(共通認識)を持って開発に取り組
める
• デザインプロセスは前提となるフレームワークなどの知識は必要だが、
基本的には誰でも参加できる
• 今回の開発では役割に関係なくチーム全員でこの作業を行ったことが
結果的に良かった
24
Azure Kubernetes Service
25
そもそもなぜ
Kubernetesを採用したのか?
26
使ってみたかったから!!
27
Kubernetesじゃなくてもいいんじゃね?
• 今回くらいの規模なら他のサービスで実現できる
• Web App for Container
• コンテナ化しなくてWeb Appでもいける
28
それでも使ってみたいんだ!
• 勉強してKubernetesの知識は付いたが、実際にアプリケー
ションをリリースして、その後運用して、といったことを経験
しておかないと、Kubernetesの良さや苦労がほんとの意味で
分からない
• そういったリアルな声を社内に伝えていくのがテクノベーショ
ンセンターのミッション
• あえて先端技術を選ぶ!
29
全体像
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace cert-manager
Helm
cert-manager
SQLDB Blob
ServiceEndpoint
ScaleSets
AKS
vNet(Prod)
ScaleSets
AKS
vNet(Staging&Dev)
SQLDB Blob
ServiceEndpoint
Developer
EndUsers
Internet
GitHub
Enterprise
drone
ACR
社員マスタ
ExRoute
PublicPeering
ExRoute
PublicPeering
O365
AAD GraphAPI
Internet
LogAnalytics Monitor
Internet
push
Internet
オフィス
30
全体像
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace cert-manager
Helm
cert-manager
SQLDB Blob
ServiceEndpoint
ScaleSets
AKS
vNet(Prod)
ScaleSets
AKS
vNet(Staging&Dev)
SQLDB Blob
ServiceEndpoint
Developer
EndUsers
Internet
GitHub
Enterprise
drone
ACR
社員マスタ
ExRoute
PublicPeering
ExRoute
PublicPeering
O365
AAD GraphAPI
Internet
LogAnalytics Monitor
Internet
push
Internet
オフィス
31
Azure ARM Template
• Azureリソースの構成情報をJSONに落とし込むことで、
Infrastructure as Codeを実現することができる
• コードをGitHubで管理することで、パラメータシートの代わり
となり得る
• ただし、コード化することにこだわりすぎないようにしている。
初期セットアップがだれがやってもすぐに実現できる。くらい
に考えている。
32
Azure ARM Template vNet構築例
"resources": [
{
"apiVersion": "2018-10-01",
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('vnetName')]",
"location": "[parameters('location')]",
"tags": {
"Environment": "[parameters('environmentTag')]",
"Service": "[parameters('serviceTag')]"
},
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-
01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vnetName": {
"value": “testvnet"
},
"vnetAddressPrefix": {
"value": “xx.xx.xx.xx/24"
},
"subnetPrefix": {
"value": “xx.xx.xx.xx/24"
},
"subnetName" : {
"value": “testsubnet"
azuredeploy.json(一部抜粋) azuredeploy.parameters.json(一部抜粋)
$ az group deployment create -g $RG -n vnet-create --mode Incremental --template-file azuredeploy.json `
--parameters "@azuredeploy.parameters.json"
33
Azure ARM Template GitHub構成
• Azureリソース毎にフォルダを分けて管理
• ステージング用にはパラメータファイルのみを分けて作成
34
Azure ARM Template Secret情報の取り扱い
• 例えばSQL Databaseの管理者パスワードなど、GitHub上で管
理できないSecret情報は以下のように指定しています
$ az group deployment create -g $RG -n sqldb-create --mode Incremental --template-file azuredeploy.json `
--parameters "@azuredeploy.parameters.json" `
--parameters sqlAdministratorLoginPassword=[Your Any Password]
35
Azure-Quickstart-Templates
• GitHub.comに公開されているクイックスタートテンプレート
が超便利で、これをベースに改良するのがおススメ
• https://github.com/Azure/azure-quickstart-templates
36
Azure ARM Template
• もし壊れてもすぐに一から作り直せる安心感はいい
• AKS環境の場合、頻繁に変更が入るのは、Kubernetesの中
(マニフェストファイル)なので、ARM Templateファイルの
変更はまれ。
• コード化に拘りすぎないようにする
37
Azure ARM Template
• 詳細な手順はQiitaにまとめているので参考にしてください
• https://qiita.com/shingo_kawahara/items/c65ed88da717f52c4f79
38
全体像
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace cert-manager
Helm
cert-manager
SQLDB Blob
ServiceEndpoint
ScaleSets
AKS
vNet(Prod)
ScaleSets
AKS
vNet(Staging&Dev)
SQLDB Blob
ServiceEndpoint
Developer
EndUsers
Internet
GitHub
Enterprise
drone
ACR
社員マスタ
ExRoute
PublicPeering
ExRoute
PublicPeering
O365
AAD GraphAPI
Internet
LogAnalytics Monitor
Internet
push
Internet
オフィス
39
ステージング環境
• 本番とステージングで異なる設定は、
• ステージングは監視していない
• ステージングは開発環境と同居している
• AKSのバージョンを本番とステージングで完全に一致させたいのであれば、
本番環境を作った時と同じタイミングでステージングも作ったほうがよい
• 1.X.Y
• patch部分のアップデートが早くて、数か月で過去バージョンのクラスターが作れな
くなってしまう
• ただ、本番もステージングも両方ともアップデートしてしまえばバージョ
ンは一致するのでそこまで拘らなくてもよい
40
[major].[minor].[patch]
Example:
1.12.14
1.12.15
開発環境
• 当初はステージングと本番だけだったが、運用を始めてみると手軽に更新
ができる開発環境が必要になってきた
• ステージングと同一k8sクラスターにNamespaceを分けて作成
• 開発環境k8sクラスターがあったほうが便利だが、このあたりの構成はコスト次第
41
全体像
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace cert-manager
Helm
cert-manager
SQLDB Blob
ServiceEndpoint
ScaleSets
AKS
vNet(Prod)
ScaleSets
AKS
vNet(Staging&Dev)
SQLDB Blob
ServiceEndpoint
Developer
EndUsers
Internet
GitHub
Enterprise
drone
ACR
社員マスタ
ExRoute
PublicPeering
ExRoute
PublicPeering
O365
AAD GraphAPI
Internet
LogAnalytics Monitor
Internet
push
Internet
オフィス
42
Kubernetesコンポーネント
• AKSではMasterノード部分の設定は変更できません
43https://kubernetes.io/docs/concepts/overview/components/
Kubernetes基本的なオブジェクト
• Pod
• Kubernetesクラスターにコンテナを展開するときの最小単位
• Pod内に1つ以上のコンテナが含まれる
• ReplicaSet
• Podのレプリケーションを管理する
• Deployment
• ReplicaSetのローリングアップデートを管理する
44
Deployment ReplicaSet
Pod
Container
Pod
Container
Kubernetes
• Nginx Ingressを使ったAKS構成はほぼ公式マニュアル通り作
成
• https://docs.microsoft.com/ja-jp/azure/aks/ingress-static-ip
45
Ingress Controllerでネットワーク制御
• 公式マニュアル通りだと、アクセス元のIPアドレスを制御せず
にどこからでもアクセス可能となります。(インターネットに
公開された状態)
• 今回の要件だと、社内からのみアクセス可能にする必要があっ
たため、Ingress Controllerでアクセス元IP制限を加えました
46
Ingress Controllerでネットワーク制御
• Ingress Controller作成時に
「controller.service.externalTrafficPolicy=Local」オプショ
ンを付与する
$ helm install stable/nginx-ingress 
--namespace [Your Namespace] 
--set controller.service.loadBalancerIP="[Public IP]" 
--set controller.replicaCount=2
--set controller.service.externalTrafficPolicy=Local
47
Ingress Controllerでネットワーク制御
• Ingressルートを作成する際のマニフェストで、アノテーショ
ン「nginx.ingress.kubernetes.io/whitelist-source-range」
を付与して作成する。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-world-ingress
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/whitelist-source-range: xxx.xxx.xxx.xxx/32,yyy.yyy.yyy.yyy/32
spec:
48
Ingress Controllerでネットワーク制御
• 詳細な手順はQiitaにまとめているので参考にしてください
• https://qiita.com/shingo_kawahara/items/df8ae2c9d30ea09d7026
49
Let’s Encrypt
• 認証局(CA)として、90日間有効なSSL/TLSサーバ証明書を無
料で発行します。
• 設定はAKSの公式マニュアル通りにいけます。
50
cert-manager
• さまざまな発行元からのTLS証明書の管理と発行を自動化する
Kubernetesアドオン
• Let’s Encryptにも対応
• cert-managerを使うことで、90日更新切れの前に自動更新し
てくれます。
• 設定はAKSの公式マニュアル通りにいけます。(Helm install)
• Ingress-Controllerでネットワーク制御をしている環境でも自
動更新は問題なく動きました。
51
Helm
• Kubernetesのパッケージマネージャ
• cert-managerを使いたい場合、Deploymentや
ServiceAccountなど様々なリソースが必要ですが、helmでひ
とまとめになっているイメージ
52
Helm install
$ helm install 
--name cert-manager 
--namespace cert-manager 
--version v0.7.0 
jetstack/cert-manager
53
Helm upgrade
$ helm upgrade 
--version v0.8.0 cert-manager jetstack/cert-manager
54
Helm history
$ helm history cert-manager
REVISION UPDATED STATUS CHART DESCRIPTION
1 Wed Jun 19 16:35:26 2019 SUPERSEDED cert-manager-v0.7.0 Install complete
2 Wed Oct 16 19:49:15 2019 DEPLOYED cert-manager-v0.8.0 Upgrade complete
55
Helm rollback
$ helm rollback cert-manager 1
56
Helm history
$ helm history cert-manager
REVISION UPDATED STATUS CHART DESCRIPTION
1 Tue Sep 24 23:08:30 2019 SUPERSEDED cert-manager-v0.7.0 Install complete
2 Wed Oct 16 19:34:38 2019 SUPERSEDED cert-manager-v0.8.0 Upgrade complete
3 Wed Oct 16 19:42:03 2019 DEPLOYED cert-manager-v0.7.0 Rollback to 1
57
Helm
• 詳細な手順はQiitaにまとめているので参考にしてください
• https://qiita.com/shingo_kawahara/items/840287e06522bf2d5083
58
cert-managerのバージョンアップ理由
• ある日こんなメールが届いたから・・・
Cert-managerは、Let's Encryptのサーバーに継続的に本当に過剰なトラフィックを送信するトラフィックパ
ターンに陥ることがあります。
これを緩和するため、2019年11月1日から、バージョン0.8.0(現在のsemverマイナーリリース)未満のcert-
managerからのすべてのトラフィックのブロックを開始する予定です。
59
k8sアップデート頻度
• 2019年10月にリリースしてから、9か月で2回 k8sクラスター
のバージョンアップをしています。
• k8s周りはアップデートの速度が速いので注意が必要!!
60
アプリケーション
• アプリケーションは、
• フロントエンド(Nuxt.js)
• バックエンド(Spring Boot)
• それぞれ別のPodで動作させています。
61
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace
リソース制限
• アプリケーション毎に、リソース制限設定をしています。
• Requests(下限)
• ここで指定した値を確保できなければPodスケジューリングされない
• Limits(上限)
• そのコンテナが利用できるリソースの上限値
62
リソース制限
• 実際の使用量と、クラスターノード数を考慮して設定
containers:
- name: front
image: xxx
imagePullPolicy: Always
ports:
- containerPort: 80
name: front-http
resources:
requests:
cpu: 100m
memory: 200Mi
limits:
cpu: 200m
memory: 500Mi
63
Horizontal Pod Autoscaler
• Podのリソース使用状況に応じて、自動的にスケールアウトす
る機能
kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v1
metadata:
name: front-hpa
labels:
environment: prod
spec:
scaleTargetRef:
kind: Deployment
apiVersion: apps/v1
name: front
minReplicas: 2
maxReplicas: 4
targetCPUUtilizationPercentage: 50
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
NameSpace
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
NameSpace
Pod
Front
Pod
Front
64
ヘルスチェック
• デフォルトだと、Kubernetesがプロセス死活チェックして、
プロセスが異常終了したら自動的に復旧させる
• LivenessProbe/ReadinessProbeを使うことで、HTTPベース
のチェックや、コンテナ内でコマンドを実行して正常終了する
かといったヘルスチェックが可能
• LivenessProbe
• このチェックがNGの場合、Podを再起動する
• ReadinessProbe
• このチェックがNGの場合、Podは再起動せず、Podへのトラフィック
を止める
65
ヘルスチェック
livenessProbe:
httpGet:
path: /health
port: front-http
scheme: HTTP
initialDelaySeconds: 15
timeoutSeconds: 2
periodSeconds: 10
successThreshold: 1
failureThreshold: 5
• /healthにHTTP GETリクエストを実行する
• エラーだとPod再起動
66
ヘルスチェック
initialDelaySeconds: 15
timeoutSeconds: 2
periodSeconds: 10
successThreshold: 1
failureThreshold: 5
• initialDelaySeconds
• 最初にコンテナが起動されてから、ヘルスチェックするまでどれくらい待つか
• timeoutSeconds
• タイムアウトまでの秒数
• periodSeconds
• ヘルスチェック間隔
• successThreshold
• 何回ヘルスチェックが成功したらPodが正常だと判断するか
• failureThreshold
• 何回ヘルスチェックが失敗したらPodが異常だと判断するか
67
ヘルスチェック
• 例えば、initialDelaySecondsが短すぎると、起動しきる前にまたコンテ
ナを再起動してしまい、永遠と起動しない状態になってしまう
• 例えば、periodSecondsが長すぎると、検知までに時間が掛かってしまう
• 今回のアプリケーションだと、バックエンド(Spring Boot)のほうが、
フロントエンド(Nuxt.js)よりも起動に時間が掛かるので、
initialDelaySecondsは変えている
• これらの値は繰り返し試しながら最適値を見つける必要がある
68
全体像
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace cert-manager
Helm
cert-manager
SQLDB Blob
ServiceEndpoint
ScaleSets
AKS
vNet(Prod)
ScaleSets
AKS
vNet(Staging&Dev)
SQLDB Blob
ServiceEndpoint
Developer
EndUsers
Internet
GitHub
Enterprise
drone
ACR
社員マスタ
ExRoute
PublicPeering
ExRoute
PublicPeering
O365
AAD GraphAPI
Internet
LogAnalytics Monitor
Internet
push
Internet
オフィス
69
Azure Monitor
• Azureポータルからk8sクラスターの各メトリックを確認する
ことが可能
70
Azure Log Analytics
• Log Analytics連携設定をしておくと、各種メトリックやstdoutを集約す
ることができるので、分析が可能に。
• 以下はKubernetesクラスターの1か月間の平均CPU使用率の推移
71
障害時アラート
• 基本的にはコンテナーダウンしても自己復旧する仕組み
• ただし、以下のような項目は、Log Analyticsを活用しアラー
ト通知している
• AKSクラスターのCPU使用率が閾値を超えた
• AKSクラスターのディスク使用率が閾値を超えた
• AKSクラスターのメモリ使用率が閾値を超えた
• AKSクラスター内のコンテナーのステータス異常
72
アラートルール
Log Analyticsで実行するクエリ
アラート条件
15分毎に、30分前までの期間を対象とする
73
障害時アラート
• 監視間隔とコスト
• 監視間隔15分だと、$0.5/月
• 最短監視間隔は5分
• 5分だと、$1.5/月
• このへんはシステム要件に合わせて設定
• アラート検知したらSlackに通知する
74
障害時アラート
• 詳細な手順はQiitaにまとめているので参考にしてください
• https://qiita.com/shingo_kawahara/items/be44def8c0bf89c86371
75
Azure Log Analytics
• アラート機能としては使えますが、実際障害があったときに、Log
Analyticsから原因調査するのはちょっと辛い
• 細かくログを見る場合は、kubectl logsやdescribeといったコマンドベー
スで調査したほうがやりやすい
76
AKSクラスターノード障害の注意点
• ノード障害が発生すると、Kubernetesがそれを検知するまで5分掛かりま
す。
• これはマスターノードのkube-controller-managerの設定(--pod-
eviction-timeout)がデフォルト値5分であるためです。
• AKSはマネージドサービスなので、マスターノードの設定を変更すること
ができません。
• 今回のケースだと、他のノードにPodが分散配置されるので業務影響はお
きませんが、1Podで動作するもの(例えばStatefulSet)は、この影響を
受けるので注意が必要です。
77
全体像
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace cert-manager
Helm
cert-manager
SQLDB Blob
ServiceEndpoint
ScaleSets
AKS
vNet(Prod)
ScaleSets
AKS
vNet(Staging&Dev)
SQLDB Blob
ServiceEndpoint
Developer
EndUsers
Internet
GitHub
Enterprise
drone
ACR
社員マスタ
ExRoute
PublicPeering
ExRoute
PublicPeering
O365
AAD GraphAPI
Internet
LogAnalytics Monitor
Internet
push
Internet
オフィス
78
Azure Container Registry
• コンテナイメージを格納するプライベートレジストリ
• Kubernetesマニフェストファイルの中で、ACRのイメージを指定するこ
とで、AKSがACRから直接pullして、コンテナ起動する
spec:
containers:
- name: front
image: [ACR-URL]/[Image Name]:[Tag]
imagePullPolicy: Always
ports:
- containerPort: 80
name: front-http
79
Developer
① kubectl apply
② pull
Azure Container Registry
• AKS作成時にサービスプリンシパルを指定しますが、そのサービスプリン
シパルがACRPull権限を持っていないと、コンテナデプロイ時にエラーに
なるので、ACRのIAM設定で権限付与しておきます
80
Azure Container Registry 脆弱性スキャン
• 2020年3月にACRのコンテナイメージ脆弱性スキャン機能がGAされまし
た
• 脆弱性スキャン機能は、Security Centerに統合されているため、ACRか
らではなく、Security Centerから設定します。
• Security Centerから設定が終わると、ACRにイメージをPushしたら自動
的に脆弱性スキャンされるようになります
81
Azure Container Registry 脆弱性スキャン
• こんな感じでACRの中で脆弱性のあるイメージが分かります。
82
Azure Container Registry 脆弱性スキャン
• 更にイメージIDで掘り下げていくと、このイメージにはレベル中の脆弱
性が1件あることが分かります。
• スキャン結果はAPIで取得することも可能です
83
Azure Container Registry 脆弱性スキャン
• 詳細な手順はQiitaにまとめているので参考にしてください
• https://qiita.com/shingo_kawahara/items/445e80d4820f86f387c6
84
CI/CD
85
全体像
Helm
nginx-Ingress
ClusterIP
Pod
Front
Pod
Front
ClusterIP
Pod
Backend
Pod
Backend
NameSpace cert-manager
Helm
cert-manager
SQLDB Blob
ServiceEndpoint
ScaleSets
AKS
vNet(Prod)
ScaleSets
AKS
vNet(Staging&Dev)
SQLDB Blob
ServiceEndpoint
Developer
EndUsers
Internet
GitHub
Enterprise
drone
ACR
社員マスタ
ExRoute
PublicPeering
ExRoute
PublicPeering
O365
AAD GraphAPI
Internet
LogAnalytics Monitor
Internet
push
Internet
オフィス
86
CI/CD
• オンプレ(プライベートクラウド)上に、GitHubEnterpriseを導入しており、コードは
全てGHE上で管理している
• GitHub.comならAzure DevOpsという選択肢だが、GHEはDevOpsと繋がらないので、
CIツールは別のツールを選択する必要がある
• 厳密にはGHEをインターネットにさらせばいいがそんなことはできない
• CIツールはコンテナと親和性の高いdrone.ioを選定
• drone自体もコンテナとして動作する
87
やりたいこと
• ソースコードがdevelopブランチにマージされたらAKS(開発)に自動デ
プロイする
• ソースコードがmasterブランチにマージされたらAKS(ステージング)
に自動デプロイする
• リポジトリでgit tagが打たれたら(リリース用タグ)、AKS(本番)に自
動デプロイする
88
やりたいこと
89
GitHub
Enterprise
Drone CI
.drone.yml
kind: pipeline
name: staging
steps:
- name: build
image: node:10.16.0-alpine
environment:
GREGORIO_CLIENT_ID:
from_secret: GREGORIO_CLIENT_ID_STAG
GREGORIO_TENANT_ID:
from_secret: GREGORIO_TENANT_ID_STAG
GREGORIO_API_BASE_URL:
from_secret: GREGORIO_API_BASE_STAG_URL
GREGORIO_VERSION: ${DRONE_COMMIT_SHA:0:8}
commands:
- yarn install
- yarn run build
- name: test
image: node:10.16.0-alpine
commands:
- yarn run test
buildステップ
testステップ
secretはdroneのWebUIから事前設定
GitHubのコミットハッシュ値を指定可能
90
ACR Push step
- name: publish
image: plugins/docker
settings:
dockerfile: docker/Dockerfile
username:
from_secret: USERNAME
password:
from_secret: PASSWORD
repo: xxx.azurecr.io/yourimage
registry: xxx.azurecr.io
tags:
- latest
- ${DRONE_COMMIT_SHA:0:8}
when:
branch:
- master
event:
- push
ACRのシークレット情報
ACRのリポジトリ情報
このDockerfileでビルド
latestとコミットハッシュ値をタグにする
このステップは、
masterブランチにマージされたら動く
91
AKS Deploy step
- name: deploy
image: azurecli:latest
pull: if-not-exists
environment:
AZURE_APPLICATION_ID:
from_secret: AZURE_APPLICATION_ID
AZURE_SECRET:
from_secret: AZURE_SECRET
AZURE_TENANT_ID:
from_secret: AZURE_TENANT_ID
IMAGE_TAG: ${DRONE_COMMIT_SHA:0:8}
commands:
- echo $IMAGE_TAG
- /usr/bin/az login --service-principal -u $AZURE_APPLICATION_ID
-p $AZURE_SECRET --tenant $AZURE_TENANT_ID
- /usr/bin/az aks install-cli
- /usr/bin/az aks get-credentials -g [Resource Group Name] –n
[k8s Clouster Name]
- kubectl apply –f docker/[k8s Manifest file] –n [Namespace Name]
- kubectl get po -n [Namespace Name]
- kubectl set image deployment.apps/[Pod Name] [Pod
Name]=[ACR Server URL]/[Repository Name]:$IMAGE_TAG -n [k8s
NameSpace]
when:
branch:
- master
event:
- push
azurecliコンテナ内でkubectlのインストールから
AKSクレデンシャル設定まで行う
kubectl applyでAKSにデプロイ
次ページで解説
独自に作ったazurecliコンテナを使った
公式のmcr.microsoft.com/azure-cliでもいけそう
92
latestを使いたくない!
• イメージタグのlatestは便利な反面、現在どのバージョンが動作している
かが分かりにくいため、本番利用は避けたい
• front:1.0.0 といったバージョン情報をイメージタグに使いたい
• その為にはKubernetesマニフェストファイルで動的に変更できなければ
ならない
• droneではイメージタグ部分を動的に変更できなかった
containers:
- name: front
image: xxx.azurecr.io/front:latest
imagePullPolicy: Always
93
latestでデプロイした直後に無理やり変更
• drone.ymlの中であれば、Gitのコミットハッシュが環境変数として使え
るので、これをイメージタグとする
• 一度latestで書かれたマニフェストファイルをデプロイして、起動しきる
前にkubectl set imageで、イメージタグを差し替える(latestも
IMAGE_TAGも中身は同じ。タグが違うだけ)
• 他のCIツールだとマニフェストファイルに環境変数設定して、簡単に動的
にできるかも
- kubectl apply –f docker/[k8s Manifest file] –n [Namespace Name]
- kubectl set image deployment.apps/[Pod Name] [Pod Name]=[ACR Server URL]/[Repository Name]:$IMAGE_TAG -n [k8s NameSpace]
94
リストア方法
• リリース後に不具合が見つかって、前回リリースバージョンに戻したい場
合、以下のような前回リリース時のタグが打たれたDroneジョブを見つけ
て選択します。
• あとはRESTARTボタンを押すだけで前回バージョンに戻ります。
95
CI/CD
• CIは比較的早く作れると思うが、CDを絡めるとなると難易度が上が
る。
• CD環境はできるだけ早く作っておいたほうがいい。色々ハマって結
局できたのはリリース直前になってしまった。
• 前向きに捉えるならリリース前に環境作れてよかった。リリース後
だと更に難易度が上がる。
• リストアのしやすさで設計したのがよかった
• KubernetesへのCD環境を作るのは、DevとOps双方の協力と理解
が必要不可欠。
• しかし、CI/CD環境が構築できたあとの世界は利便性が全然ちが
う!!最高!!
96
CI/CD
• 詳細な手順はQiitaにまとめているので参考にしてください
• https://qiita.com/shingo_kawahara/items/9bf791e6ecbc1d1ecd32
97
まとめ
98
まとめ
• 障害が発生しても基本的には自動復旧されるし、負荷が上がっ
てもオートスケールされるため、意外とKubernetes運用(マ
ネージドサービスの場合)は大変ではない印象
• ただし、まだ新しめの技術であり、Kubernetes自体の全容も
複雑なため、基盤部分の障害が起きたときの対処には時間が掛
かりそう
• 全てコード化しておいて、すぐに作り直せるようにしておくことが重
要
• 最悪作り直せばいいという安心感
99
まとめ
• もっと大規模で、高いSLAを求められるシステムを運用する場
合は、Kubernetes専任のチームがいたほうがよい
• Kubernetes自体もエコシステムも変化が早いのでバージョン
アップは常に考えておかないといけないし、情報のアンテナを
張っておかないといけない
100
まとめ
• CI/CDは劇的に生産性が上がるため早めに作ったほうがよい!
• Kubernetesのような旬な技術に触れるのは自身の成長につな
がるし心地いい
• まずは今回のような小規模な社内システムから初めてみるのも
よい経験になるんじゃないかなと思います!
101

More Related Content

What's hot

AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a CodeAnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
Satoru Yoshida
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
Masahiko Ebisuda
 
俺とHashiCorp
俺とHashiCorp俺とHashiCorp
俺とHashiCorp
Toru Makabe
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
softlayerjp
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
Kuniteru Asami
 
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
Toru Makabe
 
AKSを活用した社内向けイベント支援プラットフォームをリリースした話
AKSを活用した社内向けイベント支援プラットフォームをリリースした話AKSを活用した社内向けイベント支援プラットフォームをリリースした話
AKSを活用した社内向けイベント支援プラットフォームをリリースした話
Shingo Kawahara
 
インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編
Toru Makabe
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
Kuniteru Asami
 
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
Masahiko Ebisuda
 
Black jumbodogをcoreclrで動かしてみた
Black jumbodogをcoreclrで動かしてみたBlack jumbodogをcoreclrで動かしてみた
Black jumbodogをcoreclrで動かしてみた
Yasuaki Matsuda
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hub
Masahiko Ebisuda
 
Azure DevOps と開発管理
Azure DevOps と開発管理Azure DevOps と開発管理
Azure DevOps と開発管理
Tsukasa Kato
 
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
ToruKubota4
 
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudJjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
Yoshio Terada
 
俺的 Ignite Update まとめ 2019
俺的 Ignite Update まとめ 2019俺的 Ignite Update まとめ 2019
俺的 Ignite Update まとめ 2019
Yui Ashikaga
 
VM 基盤運用チームの DevOps
VM 基盤運用チームの DevOpsVM 基盤運用チームの DevOps
VM 基盤運用チームの DevOps
富士通クラウドテクノロジーズ株式会社
 
クラウド上のシステム監視 入門編
クラウド上のシステム監視 入門編クラウド上のシステム監視 入門編
クラウド上のシステム監視 入門編
富士通クラウドテクノロジーズ株式会社
 
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
Daisuke Ikeda
 
クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年
Kuniteru Asami
 

What's hot (20)

AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a CodeAnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
 
俺とHashiCorp
俺とHashiCorp俺とHashiCorp
俺とHashiCorp
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
 
AKSを活用した社内向けイベント支援プラットフォームをリリースした話
AKSを活用した社内向けイベント支援プラットフォームをリリースした話AKSを活用した社内向けイベント支援プラットフォームをリリースした話
AKSを活用した社内向けイベント支援プラットフォームをリリースした話
 
インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
 
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
 
Black jumbodogをcoreclrで動かしてみた
Black jumbodogをcoreclrで動かしてみたBlack jumbodogをcoreclrで動かしてみた
Black jumbodogをcoreclrで動かしてみた
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hub
 
Azure DevOps と開発管理
Azure DevOps と開発管理Azure DevOps と開発管理
Azure DevOps と開発管理
 
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
 
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudJjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
 
俺的 Ignite Update まとめ 2019
俺的 Ignite Update まとめ 2019俺的 Ignite Update まとめ 2019
俺的 Ignite Update まとめ 2019
 
VM 基盤運用チームの DevOps
VM 基盤運用チームの DevOpsVM 基盤運用チームの DevOps
VM 基盤運用チームの DevOps
 
クラウド上のシステム監視 入門編
クラウド上のシステム監視 入門編クラウド上のシステム監視 入門編
クラウド上のシステム監視 入門編
 
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
 
クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年
 

Similar to July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話

Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
whywaita
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
Container x azure x kubernetes
Container x azure x kubernetesContainer x azure x kubernetes
Container x azure x kubernetes
Yasuaki Matsuda
 
クラスターを分割するという運用の現実解
クラスターを分割するという運用の現実解クラスターを分割するという運用の現実解
クラスターを分割するという運用の現実解
CASAREAL, Inc.
 
ぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDAぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDA
Tsukasa Kato
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
 
20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回Keiji Kamebuchi
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
Toru Makabe
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Nobuyuki Tamaoki
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
cloudconductor
 
クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102
Keiichi Hashimoto
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
VirtualTech Japan Inc.
 
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
EMC Japan
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
Preferred Networks
 
ニフクラでも できる!Kubernetes。
ニフクラでも できる!Kubernetes。ニフクラでも できる!Kubernetes。
ニフクラでも できる!Kubernetes。
富士通クラウドテクノロジーズ株式会社
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
Nobuyuki Tamaoki
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
VirtualTech Japan Inc.
 
インフラチームとCCoEの関係.pptx
インフラチームとCCoEの関係.pptxインフラチームとCCoEの関係.pptx
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
 
AWS の IoT 向けサービス
AWS の IoT 向けサービスAWS の IoT 向けサービス
AWS の IoT 向けサービス
Amazon Web Services Japan
 

Similar to July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話 (20)

Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
Container x azure x kubernetes
Container x azure x kubernetesContainer x azure x kubernetes
Container x azure x kubernetes
 
クラスターを分割するという運用の現実解
クラスターを分割するという運用の現実解クラスターを分割するという運用の現実解
クラスターを分割するという運用の現実解
 
ぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDAぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDA
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
 
クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
 
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
 
ニフクラでも できる!Kubernetes。
ニフクラでも できる!Kubernetes。ニフクラでも できる!Kubernetes。
ニフクラでも できる!Kubernetes。
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
インフラチームとCCoEの関係.pptx
インフラチームとCCoEの関係.pptxインフラチームとCCoEの関係.pptx
インフラチームとCCoEの関係.pptx
 
AWS の IoT 向けサービス
AWS の IoT 向けサービスAWS の IoT 向けサービス
AWS の IoT 向けサービス
 

Recently uploaded

MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 

Recently uploaded (16)

MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 

July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話

Editor's Notes

  1. テクノベーションセンターは4年前にできた組織で、全社のイノベーションを加速させることが目的で設立されました 私はその中で、クラウド・インフラ・コンテナを担当しています その前までは、自社クラウドの構築と運営をやってきましたが、設立を機にパブリッククラウドを中心に触ることになりました
  2. connpassで申し込んだら自分の普段のカレンダーに登録されるイメージ
  3. そしてそのあと実際の開発へ
  4. 左がどういうリソースを作成するかの定義。右側がそのパラメータ。 この例だとネットワークを作ることができる。