SlideShare a Scribd company logo
1 of 76
Download to read offline
1freee 株式会社

Kubernetes 運用を支えるGitOps

renjikari


インフラエンジニア(学生アルバイト) ->

アプリとインフラ ハイブリット -> 

2019年4月freeeに Eとして入社



好き

Docker/Kubernetes

自動化

I CON(人権 ない)



ボードゲームが好きです





2
Fujiwara Shunki
@renjikari
藤原峻輝

Overview

 06 まとめ

 05 運用上 課題、大変なところ

 04 GitOps 実現方法とfreeeで 具体例

 03 GitOpsと 

 02 freeeとKubernetes

 01 freeeについて

Kubernetesについて 詳しい話



AW EK 自体 詳しい話



マイクロサービス/サービスメッシュについて
話

4
今日話さないこと
GitOpsというも へ 興味



K8sを本番環境で使うときに一考してくれた
ら嬉しい



開発者が思い思いにkubectl applyする世界
が怖くなってきたころに思い出してくれたら

5
今日持って帰って
ほしいこと
freee Kubernetes基盤 本番に耐えうる運
用がされています



最近freeeに入社してフラットな視点でみれ
る僕がそれら 知見をできるだけ共有した
いと思っている



ぶっちゃけKubernetes難しい で難しい問
題にぶち当たったとき 解決 一助になれ
たらうれしい

6
僕 モチベーション
01 freeeについて

Section
9
スモールビジネスを、

世界 主役に。

MI ION

生産年齢人口が劇的に減少し、慢性的な人手不足となる日本で
労働生産性向上 緊急 課題となっています
freee 「人工知能」と「統合基幹業務システム」をクラウド技術を
活用し、業務効率化 サポートを続けることで、中堅中小企業
バックオフィス業務効率化を目指しています
10


PRODUCTS
そ 他インターナルなマ
イクロサービス多数
About Products

❂ 納税する
↗ 育てる
↻ 運営する 
✩ じめる

会社設立 freee

開業 freee

クラウド会計ソフト freee 

人事労務 freee

(マイナンバー管理 freee 含む) 

クラウド申告 freee



* 2017年8月より、クラウド給与計算ソフト freee 、機能を強化し、「人事労務 freee」というサービス名に変更しました。

スモールビジネス 創業からIPOまで一気通貫でサポートする7つ プロダクト
2013.3リリース
 2014.5リリース
 2015.6リリース

中小企業 経理業務を効率
化。帳簿や決算書作成、請求
業務に対応。

給与計算や年末調整、入社手
続きから勤怠管理まで労務労
務管理を大幅に効率化。

会社設立に必要な書類を5分
で作成できる無料サービス。

2016.10リリース2015.9リリース 2017.1リリース
低コストでマイナンバー 収集、管
理、破棄までクラウド上で完結。

個人事業 開業手続きが無料、簡
単、最 で完了する。

税務申告書作成業務を効率化。
法人税・消費税・法定調書・申請
届出や電子申告にも対応。

Webで申し込みでき、最短4営業日で発
行。創業時でも本人確認書類だけで審査
可能。

12
利用事業所数累計



100万





2014.3 2015.3 2016.3 2017.3 2018.3
800,000
600,000
300,000
65,000
1,000,0001,000,000
506人





※アルバイト、契約社員、インターンを含む。業務委託、派遣、出向を含めると約700名
従業員数
「働きがい ある会社」ランキング 

2019年 4位

2018年 8位

2017年 3位

2016年 4位

2015年 5位







※2019年6月末時点


IPO準備・成長企業へ 導入が加 

41%
資金調達 op100社 

freee 導入率

※ 出典:entrepedia ベンチャーリスト
※ 資金調達額TOP100社:直近1年で1億円以上 資金調達をした企業を対象に調査
OC保証:

上場企業が自社 財務報告がきちんとしていることを保証するも 

freee(会計ソフト) を利用する場合、freeeも監査 対象になる

OC1を取得していれ freeeが OC保証が満たされていると認められる



相応 セキュリティ対策が必要
例え DBに直接アクセスする場合

認証、認可、履歴管理が必要

EC2インスタンスから アクセスも
ecurityGroup などで明確に権限管理
できている必要がある

02 freeeとKubernetes

Section
17
freee kubernetes 変遷

● 2018.03 本番 サービスがKubernetesに乗る
● 2018 Elastic Stack ログ&監視基盤を整える
● 2019.03 AWS EKSに移行
● 2019.03 デプロイ 方法を統一し、GitOpsを全面導入
● 2019.08 ログ&監視をDatadogに移行
● 2019.10 デプロイ方法 GitOpsとyaml周り
ディレクトリ構 を大幅にupdate
freee kubernetes on EK 

18
ELBやRDSなど マネージド
サービスと組み合わせている


Pod Pod
Proxy
Pod
AWS
ELB
サービスA

EK CLuster

Proxy
Pod
Node

ユーザアクセス

Pod Pod
Proxy
Pod
AWS
ELB
サービスB

EK CLuster

Proxy
Pod
Node

ユーザアクセス

AWS
RDS
AWS
RDS
AWS
ElastiCache
AWS
ElastiCache
Node
Node

マルチテナントとシングルテナント

20
K8s cluster
Product A
Service A-1
Service A-2
Service A-3
Product B
Service B-1
ServiceB-2
Service B-3
Product C
Service C-1
Service C-2
Service C-3
K8s cluster
Product A
Service A-1
Service A-2
Service A-3
K8s cluster
Product B
Service B-1
Service B-2
Service B-3
K8s cluster
Product C
Service C-1
Service C-2
Service C-3
● シングルテナント構成





マルチテナント構成





マルチテナントとシングルテナント

21
K8s cluster
Product A
Service A-1
Service A-2
Service A-3
Product B
Service B-1
ServiceB-2
Service B-3
Product C
Service C-1
Service C-2
Service C-3
K8s cluster
Product A
Service A-1
Service A-2
Service A-3
K8s cluster
Product B
Service B-1
Service B-2
Service B-3
K8s cluster
Product C
Service C-1
Service C-2
Service C-3
● シングルテナント構成





マルチテナント構成





22






freee kubernetes シングルテナント!

23
シングルテナント構成

● Blast radius(障害 影響範囲)が小さい

● セキュリティ 境界線 明確化

● クラスタ全体に関係するアップデート作業が
しやすい





マルチテナント構成

● 利用料金が安い

● 運用コストが安い(一個しかないから)





freee kubernetes シングルテナント!

それぞれ メリットとデメリットを解説

24
シングルテナント構成

● Blast radius(障害 影響範囲)が小さい

● セキュリティ 境界線 明確化

● クラスタ全体に関係するアップデート作業が
しやすい





マルチテナント構成

● 利用料金が安い

● 運用コストが安い(一個しかないから)





freee kubernetes シングルテナント!

それぞれ メリットとデメリットを解説

1クラスタあたり 影響範囲が狭い で、開発者に
権限移譲できる。
それによって、運用コスト 増大を防げる
25
freeeとkubernetes まとめ

● freeeで 1サービス 1環境=1クラスタ 構成をとっている
○ 正確に 同じチームが複数サービスを提供している場合 統合している
● それによって開発チームに多く 権限を移譲し、自律的な運用を目指
している
● 多数 クラスタを管理しないといけなかったりチーム間 スキル差と
いった問題も抱えている
○ より開発者が開発に集中できるような運用フローを考えないといけ
ない

03 GitOpsと 

Section
GitOpsと from Weaveworks

28
GitOps can be summarized as these two things:
● An operating model for Kubernetes and other cloud native technologies,
providing a set of best practices that unify deployment, management and
monitoring for containerized clusters and applications.
● A path towards a developer experience for managing applications; where
end-to-end CICD pipelines and git workflows are applied to both operations,
and development.
引用: https://www.weave.works/technologies/gitops/

GitOpsと from Weaveworks

29
GitOps つまるところ以下 2つ 要素からなっている:
● コンテナライズされたクラスターやアプリ デプロイ,マネージメント,モニタリングを 統
合するベストプラティス セットを提供するKubernetesやそ 他クラウドネイティブ技
術へ 運用 モデル
● アプリケーションをマネージしてきた開 発 者 経 験へ 道 りであるend-to-end
CICDパイプラインや、git workflow 運用と開発 どちらにも適応できる
引用: https://www.weave.works/technologies/gitops/

GitOpsと 

30
● 全て リソース 変更や運用に対して、コマンドラインを用いず

git経由から行うことでコードとして履歴管理をしようという思想

● 開発者が今までやってきたようなアプリ 運用 プラクティスをすべて
コード管理されたリソースに使える で 

● 不具合があっても原因 追求が行えるうえ、ロールバックが容易



一言でいうと
31
Ops Git化
32
Ops Git化🤔🤔🤔
33
アプリ開発 場合を考えてみる

34
● Git(GitHub)を利用してバージョン管理する
● もと コードへ 変更 PRを作ってレビュー => マージ
もしもGitを使わなかったら
● バージョンコントロールできない
● 不具合が発生したときに
○ 前 バージョンに戻せない
○ 原因を追求できない


インフラやデプロイされたサービスについて

考えてみる

35
● Git(GitHub)を利用してバージョン管理する
● もと 状態へ 変更 PRを作ってレビュー => マージ
○ もと 状態 = もと インフラ構成, デプロイされた状態
もしもGit(GitOps)を使わなかったら
● バージョンコントロールできない
● 不具合が発生したとき
○ 前 バージョンに戻せない
○ 原因を追求できない


GitOpsと 

36
● (アプリケーションを含む)全て リソース 変更や運用に対して、コマンド
ラインを用いずgit経由から行うことでコードとして履歴管理をしようという思
想
● 不具合があっても原因 追求が行えるうえ、ロールバックが容易
● K8s 運用でそういった思想を使おう
○ K8s すべて 設定がmanifestとしてコード化されているため


GitOps トレンド

37
google トレンドを貼る


GitOps トレンド

38
google トレンドを貼る


次 課題
39
GitOpsってどうやる ?
GitOpsなにが嬉しい ?
40
04 GitOps 実現方法を紹介 &

freeeで 具体例

Section
GitOpsってどうやる ?
GitOpsなにが嬉しい ?
42
GitOps実践ガイドライン (from Weaveworks)

43
● コードとして記述できるも 、すべてGitに保存しなけれ ならない。
Gitを真実 source of truthとして使用することにより、クラスタを監視
し、目標とする状態と比較することが可能になる。
● Kubernetes CLIツールである“kubectl”を直接使用しない
● オペレータパターンに従ってKubernetesコントローラを使用すること
引用:
https://www.infoq.com/jp/news/2018/11/gitops-weaveworks/

GitOpsをうたうツールたち

44
● flux
● jenkins-x
● argo-cd
● werf
https://github.com/topics/gitops

を参考にstar数1000以上 も から、 

GitOpsを主題にしていそうなO を抜き出した (2019.11.23 現在) 

ロゴ
https://landscape.cncf.io/category=continuous-integration-delivery&format=card-mode&grouping=category

https://github.com/flant/werf からそれぞれ引用

flux アーキテクチャ

45
引用: https://github.com/fluxcd/flux

GitOpsってどうやる ?
GitOpsなにが嬉しい ?
46
K8s 運用をGitOpsにすると何が嬉しいか

47
● 集中した権限管理
● kubectlでdeployする必要がない安心感
● 実際に今動いているmanifestがコード上でバージョン管理される
K8s 運用をGitOpsにすると何が嬉しいか(1/3)

集中した権限管理について
● GitHub上からKickされるCircleCIにさえ権限がついていれ 人間につけ
る権限を細分化する必要がなくなる(正確に 細分化する必要が薄くなる)
K8s 運用をGitOpsにすると何が嬉しいか(1/3)

49
集中した権限管理について 絵
cluster Aにread write
 cluster Bにread write

cluster Dにread write

cluster Cにread only

cluster をread only
 clusterをread write

※わかりやすさ ために一部正確性

 が犠牲になっています

複雑な権限管理
 集中した権限管理

K8s 運用をGitOpsにすると何が嬉しいか(2/3)

50
kubectlでdeployする必要がない安心感
● kubectlでデプロイすると...
○ お手製デプロイフロー
○ オペミス
○ デプロイ自体を管理、記録できない
■ デプロイ記録.xlsx
K8s 運用をGitOpsにすると何が嬉しいか(3/3)

51
実際に今動いているmanifestがコード上でバージョン管理される
● Kubernetes 特徴である、宣言的なmanifest 記述という点が最大限生
かされる
freee K8s GitOps 構成

52
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
⑥helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

freee K8s GitOps 構成要素

54
● EKS
● GitHub(+Git)
● CircleCI
● eksctl (aws EKS API)
● Helm
● Helmfile
● 自作ラッパーscript(clusteropsコマンド)
○ Helmfileやeksctlをラッパーしている
freee K8s GitOpsが担っていること

55
● EKS clusterやアプリ helm chartなど yamlをtemplateから自動生成
● EKS cluster 作成
● EKS clusterへ デプロイ
● EKS clusterごしにmigration taskなど task実行
freee K8s GitOps 構成

56
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
⑥helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

57
CircleCI
● GitHub上 PRにおけるコメントをトリガーとして、CIをキック
○ clusterops create_cluster ${対象 クラスタ}
○ clusterops deploy ${対象 クラスタ}
● PRコメントをトリガーすることで 反 映 タイミングをコントロールするために
ChatOpsっぽくしている背景がある
freee K8s GitOps 構成要素を解説

58
eksctl
● AWS EKS API
● eksctl シンプルなEKS cluster作成 ため CLI
○ AWS CloudFormationを使っている
● cluster作成に必要なリソースをyamlで統合的に宣言できる
freee K8s GitOps 構成要素を解説

eksctl: https://github.com/weaveworks/eksctl

ちなみにこれもWeaveworks/eksctl 

59
Helm
● K8s clusterにinstallするも を管理できるパッケージマネージャー
● K8sオブジェクトを 宣 言 するmanifestなど YAMLファイルをパッケージン
グしたファイル「Chart(設計図)」を「Release」することでK8s上で利用可能
にする
● よく使うも helm/stableとしてすでに用意されている
○ helm install <チャート名> ようにK8s Clusterにinstallできる
freee K8s GitOps 構成要素を解説

60
Helmfile
● Helm Chartをより使いやすくデプロイできる、Helm releasesを管理する
ツール
○ helm chartを自作した場合、それをhelmfile syncするだけですぐに
releaseが作成できる
○ 変数をvalues.yamlで管理しているstableなchart 場合、ど stableな
chartを使っているかを含めてfileに書ける
freee K8s GitOps 構成要素を解説

61
自作ラッパーscript(clusterops)
● Helmfileやeksctl(EKS Cluster 管 理 ため CLI)をさらにラッパーして
いる
● また、Kuberntes Cluster作成 ため Cluster.yaml template作成や複
数クラスタ管理 ため ディレクトリ管理 機能も一緒についている
● variantというOSSを利用して書いている
○ variant: https://github.com/mumoshu/variant
freee K8s GitOps 構成要素を解説

freee K8s GitOps 構成

62
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
⑥helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

freee K8s GitOps 構成

63
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

③circle ci がkickされる

④circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
⑥helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

$ bin/clusterops -v generate cluster 

--cluster-name integration-hoge-1 

--aws-account-name hoge



↑generate ため 

 コマンド(例)

→

generateしたとき directory
構成(例)

freee K8s GitOps 構成

64
③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

④circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

② ①で作った各種yamlをGitHubにpush

deploy とき 

おおもとになる
helmfile 例

freee K8s GitOps 構成

65
③P にてコメント

`/clusterops deploy ${対象 cluster}`

③circle ci がkickされる

④circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

② ①で作った各種yamlをGitHubにpush

deploy とき 

おおもとになる
helmfile 例

freee K8s GitOps 構成

66
③P にてコメント

`/clusterops deploy ${対象 cluster}`

③circle ci がkickされる

④circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

② ①で作った各種yamlをGitHubにpush

アプリ 個別 

helmfile 例

freee K8s GitOps 構成

67
③P にてコメント

`/clusterops deploy ${対象 cluster}`

③circle ci がkickされる

④circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

② ①で作った各種yamlをGitHubにpush

アプリ 個別 

helmfile 例

freee K8s GitOps 構成

68
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

freee K8s GitOps 構成

69
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

freee K8s GitOps 構成

70
② ①で作った各種yamlをGitHubにpush

③P にてコメント

/clusterops deploy ${対象 cluster}

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

ちなみに
こ PR コメントで フローを見るとちょっとChat
Opsっぽさもありますが、
● すべて デプロイ 情報 まずGitにpushさ
れる
● K8s用 git repositoryとアプリ用 git
repository 完全に別れている
といったところからGitOpsという名前で呼んで
います
freee K8s GitOps 構成

71
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
⑥helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

.circleci/config.ymlに記述したとおりに、
kickが走る。
④circle ci 

 kickされる

freee K8s GitOps 構成

72
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

③circle ci がkickされる

④helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

⑤circle ci上で helmfile syncコマンドを
実行



(create cluster とき eksctlを実行して
る)

freee K8s GitOps 構成

73
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
⑥helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

05 運用上 課題、大変なところ

Section
freee K8s GitOps 構成

75
② ①で作った各種yamlをGitHubにpush

③P にてコメント

`/clusterops deploy ${対象 cluster}`

④circle ci がkickされる

⑤circle ci上で helmfile syncコマンドを実行

(同時にs3に必要なファイルもupload)
⑥helm chartに従って、

 各種manifestがapplyされる

①cluster.yamlやhelmfile、helm chartなど 各種
yamlをgenerate

freee K8s GitOps 構成要素

76
● EKS
● GitHub(+Git)
● CircleCI
● eksctl (aws EKS API)
● Helm
● Helmfile
● 自作ラッパーscript(clusteropsコマンド)
○ Helmfileやeksctlをラッパーしている
課題

77
● 複雑な構成でキャッチアップが大変。
○ 運用コストを開発者が払う構図になっている
● アンケートを取ったところ
○ 半数 チームが統一化されたGitOpsで運用してる
○ 4割 チームが半分くらい GitOps使ってて、半分くらい 手動デプロイ(localか
らhelmfile sync)している
○ 1割 チームがSRE GitOpsに乗っかれていない
● 自作にしろ、OSSをいれるにしろ、ネット上で簡単に情報が手に入らない。
最 初 オンボーディングやトラシューについて学んでもらう に課 題があ
る
06 まとめと展望

Section
まとめ+今後 展望

79
[まとめ]
freeeで できるだけ開発者に権限移譲をし、またすべて デプロイや変更
履歴を残すためにGitOpsを行っている
[展望]
もっと複雑性をさげてよりdeveloperがアプリ開発に集中するため 仕組みを
つくっていきます!
スモールビジネスを、

世界 主役に。

More Related Content

What's hot

細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep DiveToru Makabe
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Masahito Zembutsu
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Preferred Networks
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いota42y
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門Yoichi Kawasaki
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)NTT DATA Technology & Innovation
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることShingo Fukui
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 

What's hot (20)

細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 

Similar to Kuberneteの運用を支えるGitOps

【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例LIFULL Co., Ltd.
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションTakashi Kanai
 
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 #osc19tkwhywaita
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとはKoto Shigeru
 
Githubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみようGithubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみようShingo Omura
 
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南Google Cloud Platform - Japan
 
Kubernetes virgin is permitted until 2017
Kubernetes virgin is permitted until 2017Kubernetes virgin is permitted until 2017
Kubernetes virgin is permitted until 2017Hiroki Sakonju
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたAkihito Inoh
 
KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話Yuji Oshima
 
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送Google Cloud Platform - Japan
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGitDelfinoAzul
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Masahito Zembutsu
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編Akihiko Shirai
 
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)Kamon Nobuchika
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101Naoto Gohko
 

Similar to Kuberneteの運用を支えるGitOps (20)

【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
 
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
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
 
Githubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみようGithubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみよう
 
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
 
Kubernetes virgin is permitted until 2017
Kubernetes virgin is permitted until 2017Kubernetes virgin is permitted until 2017
Kubernetes virgin is permitted until 2017
 
ニフクラでも できる!Kubernetes。
ニフクラでも できる!Kubernetes。ニフクラでも できる!Kubernetes。
ニフクラでも できる!Kubernetes。
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
 
KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話
 
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGit
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
 
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Recently uploaded (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Kuberneteの運用を支えるGitOps

  • 2. 
 インフラエンジニア(学生アルバイト) ->
 アプリとインフラ ハイブリット -> 
 2019年4月freeeに Eとして入社
 
 好き
 Docker/Kubernetes
 自動化
 I CON(人権 ない)
 
 ボードゲームが好きです
 
 
 2 Fujiwara Shunki @renjikari 藤原峻輝

  • 3. Overview
  06 まとめ
  05 運用上 課題、大変なところ
  04 GitOps 実現方法とfreeeで 具体例
  03 GitOpsと 
  02 freeeとKubernetes
  01 freeeについて

  • 4. Kubernetesについて 詳しい話
 
 AW EK 自体 詳しい話
 
 マイクロサービス/サービスメッシュについて 話
 4 今日話さないこと
  • 5. GitOpsというも へ 興味
 
 K8sを本番環境で使うときに一考してくれた ら嬉しい
 
 開発者が思い思いにkubectl applyする世界 が怖くなってきたころに思い出してくれたら
 5 今日持って帰って ほしいこと
  • 6. freee Kubernetes基盤 本番に耐えうる運 用がされています
 
 最近freeeに入社してフラットな視点でみれ る僕がそれら 知見をできるだけ共有した いと思っている
 
 ぶっちゃけKubernetes難しい で難しい問 題にぶち当たったとき 解決 一助になれ たらうれしい
 6 僕 モチベーション
  • 8. 9 スモールビジネスを、
 世界 主役に。
 MI ION
 生産年齢人口が劇的に減少し、慢性的な人手不足となる日本で 労働生産性向上 緊急 課題となっています freee 「人工知能」と「統合基幹業務システム」をクラウド技術を 活用し、業務効率化 サポートを続けることで、中堅中小企業 バックオフィス業務効率化を目指しています
  • 10. About Products
 ❂ 納税する
↗ 育てる
↻ 運営する 
✩ じめる
 会社設立 freee
 開業 freee
 クラウド会計ソフト freee 
 人事労務 freee
 (マイナンバー管理 freee 含む) 
 クラウド申告 freee
 
 * 2017年8月より、クラウド給与計算ソフト freee 、機能を強化し、「人事労務 freee」というサービス名に変更しました。
 スモールビジネス 創業からIPOまで一気通貫でサポートする7つ プロダクト 2013.3リリース
 2014.5リリース
 2015.6リリース
 中小企業 経理業務を効率 化。帳簿や決算書作成、請求 業務に対応。
 給与計算や年末調整、入社手 続きから勤怠管理まで労務労 務管理を大幅に効率化。
 会社設立に必要な書類を5分 で作成できる無料サービス。
 2016.10リリース2015.9リリース 2017.1リリース 低コストでマイナンバー 収集、管 理、破棄までクラウド上で完結。
 個人事業 開業手続きが無料、簡 単、最 で完了する。
 税務申告書作成業務を効率化。 法人税・消費税・法定調書・申請 届出や電子申告にも対応。
 Webで申し込みでき、最短4営業日で発 行。創業時でも本人確認書類だけで審査 可能。

  • 11. 12 利用事業所数累計
 
 100万
 
 
 2014.3 2015.3 2016.3 2017.3 2018.3 800,000 600,000 300,000 65,000 1,000,0001,000,000
  • 13. 
 IPO準備・成長企業へ 導入が加 
 41% 資金調達 op100社 
 freee 導入率
 ※ 出典:entrepedia ベンチャーリスト ※ 資金調達額TOP100社:直近1年で1億円以上 資金調達をした企業を対象に調査
  • 14. OC保証:
 上場企業が自社 財務報告がきちんとしていることを保証するも 
 freee(会計ソフト) を利用する場合、freeeも監査 対象になる
 OC1を取得していれ freeeが OC保証が満たされていると認められる
 
 相応 セキュリティ対策が必要 例え DBに直接アクセスする場合
 認証、認可、履歴管理が必要
 EC2インスタンスから アクセスも ecurityGroup などで明確に権限管理 できている必要がある

  • 16. 17 freee kubernetes 変遷
 ● 2018.03 本番 サービスがKubernetesに乗る ● 2018 Elastic Stack ログ&監視基盤を整える ● 2019.03 AWS EKSに移行 ● 2019.03 デプロイ 方法を統一し、GitOpsを全面導入 ● 2019.08 ログ&監視をDatadogに移行 ● 2019.10 デプロイ方法 GitOpsとyaml周り ディレクトリ構 を大幅にupdate
  • 17. freee kubernetes on EK 
 18 ELBやRDSなど マネージド サービスと組み合わせている 
 Pod Pod Proxy Pod AWS ELB サービスA
 EK CLuster
 Proxy Pod Node
 ユーザアクセス
 Pod Pod Proxy Pod AWS ELB サービスB
 EK CLuster
 Proxy Pod Node
 ユーザアクセス
 AWS RDS AWS RDS AWS ElastiCache AWS ElastiCache Node
Node

  • 18. マルチテナントとシングルテナント
 20 K8s cluster Product A Service A-1 Service A-2 Service A-3 Product B Service B-1 ServiceB-2 Service B-3 Product C Service C-1 Service C-2 Service C-3 K8s cluster Product A Service A-1 Service A-2 Service A-3 K8s cluster Product B Service B-1 Service B-2 Service B-3 K8s cluster Product C Service C-1 Service C-2 Service C-3 ● シングルテナント構成
 
 
 マルチテナント構成
 
 

  • 19. マルチテナントとシングルテナント
 21 K8s cluster Product A Service A-1 Service A-2 Service A-3 Product B Service B-1 ServiceB-2 Service B-3 Product C Service C-1 Service C-2 Service C-3 K8s cluster Product A Service A-1 Service A-2 Service A-3 K8s cluster Product B Service B-1 Service B-2 Service B-3 K8s cluster Product C Service C-1 Service C-2 Service C-3 ● シングルテナント構成
 
 
 マルチテナント構成
 
 

  • 21. 23 シングルテナント構成
 ● Blast radius(障害 影響範囲)が小さい
 ● セキュリティ 境界線 明確化
 ● クラスタ全体に関係するアップデート作業が しやすい
 
 
 マルチテナント構成
 ● 利用料金が安い
 ● 運用コストが安い(一個しかないから)
 
 
 freee kubernetes シングルテナント!
 それぞれ メリットとデメリットを解説

  • 22. 24 シングルテナント構成
 ● Blast radius(障害 影響範囲)が小さい
 ● セキュリティ 境界線 明確化
 ● クラスタ全体に関係するアップデート作業が しやすい
 
 
 マルチテナント構成
 ● 利用料金が安い
 ● 運用コストが安い(一個しかないから)
 
 
 freee kubernetes シングルテナント!
 それぞれ メリットとデメリットを解説
 1クラスタあたり 影響範囲が狭い で、開発者に 権限移譲できる。 それによって、運用コスト 増大を防げる
  • 23. 25 freeeとkubernetes まとめ
 ● freeeで 1サービス 1環境=1クラスタ 構成をとっている ○ 正確に 同じチームが複数サービスを提供している場合 統合している ● それによって開発チームに多く 権限を移譲し、自律的な運用を目指 している ● 多数 クラスタを管理しないといけなかったりチーム間 スキル差と いった問題も抱えている ○ より開発者が開発に集中できるような運用フローを考えないといけ ない

  • 25. GitOpsと from Weaveworks
 28 GitOps can be summarized as these two things: ● An operating model for Kubernetes and other cloud native technologies, providing a set of best practices that unify deployment, management and monitoring for containerized clusters and applications. ● A path towards a developer experience for managing applications; where end-to-end CICD pipelines and git workflows are applied to both operations, and development. 引用: https://www.weave.works/technologies/gitops/

  • 26. GitOpsと from Weaveworks
 29 GitOps つまるところ以下 2つ 要素からなっている: ● コンテナライズされたクラスターやアプリ デプロイ,マネージメント,モニタリングを 統 合するベストプラティス セットを提供するKubernetesやそ 他クラウドネイティブ技 術へ 運用 モデル ● アプリケーションをマネージしてきた開 発 者 経 験へ 道 りであるend-to-end CICDパイプラインや、git workflow 運用と開発 どちらにも適応できる 引用: https://www.weave.works/technologies/gitops/

  • 27. GitOpsと 
 30 ● 全て リソース 変更や運用に対して、コマンドラインを用いず
 git経由から行うことでコードとして履歴管理をしようという思想
 ● 開発者が今までやってきたようなアプリ 運用 プラクティスをすべて コード管理されたリソースに使える で 
 ● 不具合があっても原因 追求が行えるうえ、ロールバックが容易
 

  • 31. アプリ開発 場合を考えてみる
 34 ● Git(GitHub)を利用してバージョン管理する ● もと コードへ 変更 PRを作ってレビュー => マージ もしもGitを使わなかったら ● バージョンコントロールできない ● 不具合が発生したときに ○ 前 バージョンに戻せない ○ 原因を追求できない 

  • 32. インフラやデプロイされたサービスについて
 考えてみる
 35 ● Git(GitHub)を利用してバージョン管理する ● もと 状態へ 変更 PRを作ってレビュー => マージ ○ もと 状態 = もと インフラ構成, デプロイされた状態 もしもGit(GitOps)を使わなかったら ● バージョンコントロールできない ● 不具合が発生したとき ○ 前 バージョンに戻せない ○ 原因を追求できない 

  • 33. GitOpsと 
 36 ● (アプリケーションを含む)全て リソース 変更や運用に対して、コマンド ラインを用いずgit経由から行うことでコードとして履歴管理をしようという思 想 ● 不具合があっても原因 追求が行えるうえ、ロールバックが容易 ● K8s 運用でそういった思想を使おう ○ K8s すべて 設定がmanifestとしてコード化されているため 

  • 38. 04 GitOps 実現方法を紹介 &
 freeeで 具体例
 Section
  • 40. GitOps実践ガイドライン (from Weaveworks)
 43 ● コードとして記述できるも 、すべてGitに保存しなけれ ならない。 Gitを真実 source of truthとして使用することにより、クラスタを監視 し、目標とする状態と比較することが可能になる。 ● Kubernetes CLIツールである“kubectl”を直接使用しない ● オペレータパターンに従ってKubernetesコントローラを使用すること 引用: https://www.infoq.com/jp/news/2018/11/gitops-weaveworks/

  • 41. GitOpsをうたうツールたち
 44 ● flux ● jenkins-x ● argo-cd ● werf https://github.com/topics/gitops
 を参考にstar数1000以上 も から、 
 GitOpsを主題にしていそうなO を抜き出した (2019.11.23 現在) 
 ロゴ https://landscape.cncf.io/category=continuous-integration-delivery&format=card-mode&grouping=category
 https://github.com/flant/werf からそれぞれ引用

  • 44. K8s 運用をGitOpsにすると何が嬉しいか
 47 ● 集中した権限管理 ● kubectlでdeployする必要がない安心感 ● 実際に今動いているmanifestがコード上でバージョン管理される
  • 45. K8s 運用をGitOpsにすると何が嬉しいか(1/3)
 集中した権限管理について ● GitHub上からKickされるCircleCIにさえ権限がついていれ 人間につけ る権限を細分化する必要がなくなる(正確に 細分化する必要が薄くなる)
  • 46. K8s 運用をGitOpsにすると何が嬉しいか(1/3)
 49 集中した権限管理について 絵 cluster Aにread write
 cluster Bにread write
 cluster Dにread write
 cluster Cにread only
 cluster をread only
 clusterをread write
 ※わかりやすさ ために一部正確性
  が犠牲になっています
 複雑な権限管理
 集中した権限管理

  • 47. K8s 運用をGitOpsにすると何が嬉しいか(2/3)
 50 kubectlでdeployする必要がない安心感 ● kubectlでデプロイすると... ○ お手製デプロイフロー ○ オペミス ○ デプロイ自体を管理、記録できない ■ デプロイ記録.xlsx
  • 49. freee K8s GitOps 構成
 52 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  • 50. freee K8s GitOps 構成要素
 54 ● EKS ● GitHub(+Git) ● CircleCI ● eksctl (aws EKS API) ● Helm ● Helmfile ● 自作ラッパーscript(clusteropsコマンド) ○ Helmfileやeksctlをラッパーしている
  • 51. freee K8s GitOpsが担っていること
 55 ● EKS clusterやアプリ helm chartなど yamlをtemplateから自動生成 ● EKS cluster 作成 ● EKS clusterへ デプロイ ● EKS clusterごしにmigration taskなど task実行
  • 52. freee K8s GitOps 構成
 56 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  • 53. 57 CircleCI ● GitHub上 PRにおけるコメントをトリガーとして、CIをキック ○ clusterops create_cluster ${対象 クラスタ} ○ clusterops deploy ${対象 クラスタ} ● PRコメントをトリガーすることで 反 映 タイミングをコントロールするために ChatOpsっぽくしている背景がある freee K8s GitOps 構成要素を解説

  • 54. 58 eksctl ● AWS EKS API ● eksctl シンプルなEKS cluster作成 ため CLI ○ AWS CloudFormationを使っている ● cluster作成に必要なリソースをyamlで統合的に宣言できる freee K8s GitOps 構成要素を解説
 eksctl: https://github.com/weaveworks/eksctl
 ちなみにこれもWeaveworks/eksctl 

  • 55. 59 Helm ● K8s clusterにinstallするも を管理できるパッケージマネージャー ● K8sオブジェクトを 宣 言 するmanifestなど YAMLファイルをパッケージン グしたファイル「Chart(設計図)」を「Release」することでK8s上で利用可能 にする ● よく使うも helm/stableとしてすでに用意されている ○ helm install <チャート名> ようにK8s Clusterにinstallできる freee K8s GitOps 構成要素を解説

  • 56. 60 Helmfile ● Helm Chartをより使いやすくデプロイできる、Helm releasesを管理する ツール ○ helm chartを自作した場合、それをhelmfile syncするだけですぐに releaseが作成できる ○ 変数をvalues.yamlで管理しているstableなchart 場合、ど stableな chartを使っているかを含めてfileに書ける freee K8s GitOps 構成要素を解説

  • 57. 61 自作ラッパーscript(clusterops) ● Helmfileやeksctl(EKS Cluster 管 理 ため CLI)をさらにラッパーして いる ● また、Kuberntes Cluster作成 ため Cluster.yaml template作成や複 数クラスタ管理 ため ディレクトリ管理 機能も一緒についている ● variantというOSSを利用して書いている ○ variant: https://github.com/mumoshu/variant freee K8s GitOps 構成要素を解説

  • 58. freee K8s GitOps 構成
 62 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  • 59. freee K8s GitOps 構成
 63 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 $ bin/clusterops -v generate cluster 
 --cluster-name integration-hoge-1 
 --aws-account-name hoge
 
 ↑generate ため 
  コマンド(例)
 →
 generateしたとき directory 構成(例)

  • 60. freee K8s GitOps 構成
 64 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 deploy とき 
 おおもとになる helmfile 例

  • 61. freee K8s GitOps 構成
 65 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 deploy とき 
 おおもとになる helmfile 例

  • 62. freee K8s GitOps 構成
 66 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 アプリ 個別 
 helmfile 例

  • 63. freee K8s GitOps 構成
 67 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 アプリ 個別 
 helmfile 例

  • 64. freee K8s GitOps 構成
 68 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  • 65. freee K8s GitOps 構成
 69 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  • 66. freee K8s GitOps 構成
 70 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 /clusterops deploy ${対象 cluster}
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ちなみに こ PR コメントで フローを見るとちょっとChat Opsっぽさもありますが、 ● すべて デプロイ 情報 まずGitにpushさ れる ● K8s用 git repositoryとアプリ用 git repository 完全に別れている といったところからGitOpsという名前で呼んで います
  • 67. freee K8s GitOps 構成
 71 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 .circleci/config.ymlに記述したとおりに、 kickが走る。 ④circle ci 
  kickされる

  • 68. freee K8s GitOps 構成
 72 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ⑤circle ci上で helmfile syncコマンドを 実行
 
 (create cluster とき eksctlを実行して る)

  • 69. freee K8s GitOps 構成
 73 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  • 71. freee K8s GitOps 構成
 75 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  • 72. freee K8s GitOps 構成要素
 76 ● EKS ● GitHub(+Git) ● CircleCI ● eksctl (aws EKS API) ● Helm ● Helmfile ● 自作ラッパーscript(clusteropsコマンド) ○ Helmfileやeksctlをラッパーしている
  • 73. 課題
 77 ● 複雑な構成でキャッチアップが大変。 ○ 運用コストを開発者が払う構図になっている ● アンケートを取ったところ ○ 半数 チームが統一化されたGitOpsで運用してる ○ 4割 チームが半分くらい GitOps使ってて、半分くらい 手動デプロイ(localか らhelmfile sync)している ○ 1割 チームがSRE GitOpsに乗っかれていない ● 自作にしろ、OSSをいれるにしろ、ネット上で簡単に情報が手に入らない。 最 初 オンボーディングやトラシューについて学んでもらう に課 題があ る
  • 75. まとめ+今後 展望
 79 [まとめ] freeeで できるだけ開発者に権限移譲をし、またすべて デプロイや変更 履歴を残すためにGitOpsを行っている [展望] もっと複雑性をさげてよりdeveloperがアプリ開発に集中するため 仕組みを つくっていきます!