CyberAgentのインフラについて
〜メディア事業部編〜
株式会社サイバーエージェント 技術本部 プライベートクラウドグループ
Nakanishi Kento @whywaita
Raspberry Pi で始まるおうちKubernetesクラスタ⾃作⼊⾨
#catechchallenge @ ONLINE / /
Nakanisi Kento / whywaita
• CyberAgent, Inc. Private Cloud Group since
• 業務: OpenStack / Kubernetes を使った新機能開発
• 趣味: ⾃宅インフラ / アニソン
• 在宅勤務で業務中にスピーカーから
⾳を流せるのは嬉しい!!
• 昔の研究: EdgeComputing uses Kubernetes
本LTの⽬的
3
CyberAgentの事業ポートフォリオ
4
[ ]
CyberAgentの事業ポートフォリオ
5
[ ]
いっぱいあるのは分かったけど、何が違うの?🤔
本LTの⽬的
⾊んな事業 / ⾊んな部署があるCyberAgent
もちろんそこにあるインフラも多種多少
じゃあ多種多様な⼈たちに話を聞いてみよう ✨
Nakanisi Kento / whywaita
• CyberAgent, Inc. Private Cloud Group since
• 業務: OpenStack / Kubernetes を使った新機能開発
• 趣味: ⾃宅インフラ / アニソン
• 在宅勤務で業務中にスピーカーから
⾳を流せるのは嬉しい!!
• 昔の研究: EdgeComputing uses Kubernetes
Nakanisi Kento / whywaita
• CyberAgent, Inc. Private Cloud Group since
• 業務: OpenStack / Kubernetes を使った新機能開発
• 趣味: ⾃宅インフラ / アニソン
• 在宅勤務で業務中にスピーカーから
⾳を流せるのは嬉しい!!
• 昔の研究: EdgeComputing uses Kubernetes
Private Cloud?
9
Cloud?
10
Public Cloud
11
Public(=誰でも使える)Cloud
12
つまり
13
つまり
14
Private Cloud
つまり
15
Private
(=会社の⼈だけが使える)
Cloud
具体的には
16
CyberAgentにおける事業
17
• メディア事業
• インターネット広告事業
• ゲーム事業
CyberAgentにおける事業
18
• メディア事業向けのクラウド
• インターネット広告事業
• ゲーム事業
メディア事業向けのクラウド
を作っています
19
CyberAgentにおけるメディア事業
20
[ ]
CyberAgentにおけるメディア事業
21
[ ]
※全て公開情報当時の情報です
※載っていないが
 使っている場合も多数あり
[ ]
[ ] [ ]
[ ]
メディア事業におけるKubernetes事例
22
[ ]
※全て公開情報当時の情報です
※載っていないが
 使っている場合も多数あり
[ ]
[ ] [ ]
[ ]
CycloudにおけるKubernetes
23
• PrivateCloud (OpenStack) の展開 [6]
• OKD (PaaS by Kubernetes)
https://www.okd.io/
• Region-wide Kubernetes [ ] (by user)
PrivateCloud (OpenStack) の展開
24
L Overlay Network (VXLAN on IP CLOS)
Compute
Node
Compute
Node
Compute
Node
k s
master
k s
master
k s
master
Storage Storage
KVM / Container
Users
VM
Users
VM
Users
Service
nova
neutron
Container
KVM / Container
OpenStack
Controller
Container
other
Container
User
Components
OpenStack
Components
Physical
Components
PrivateCloud (OpenStack) の展開
25
L Overlay Network (VXLAN on IP CLOS)
Compute
Node
Compute
Node
Compute
Node
k s
master
k s
master
k s
master
Storage Storage
KVM / Container
Users
VM
Users
VM
Users
Service
nova
neutron
Container
KVM / Container
OpenStack
Controller
Container
other
Container
User
Components
OpenStack
Components
Physical
Components
我々が提供するのはユーザ向けのVM
PrivateCloud (OpenStack) の展開
26
L Overlay Network (VXLAN on IP CLOS)
Compute
Node
Compute
Node
Compute
Node
k s
master
k s
master
k s
master
Storage Storage
KVM / Container
Users
VM
Users
VM
Users
Service
nova
neutron
Container
KVM / Container
OpenStack
Controller
Container
other
Container
User
Components
OpenStack
Components
Physical
Components
27
PrivateCloud (OpenStack) の展開
28
L Overlay Network (VXLAN on IP CLOS)
Compute
Node
Compute
Node
Compute
Node
k s
master
k s
master
k s
master
Storage Storage
KVM / Container
Users
VM
Users
VM
Users
Service
nova
neutron
Container
KVM / Container
OpenStack
Controller
Container
other
Container
User
Components
OpenStack
Components
Physical
Components
物理的なサーバは
Kubernetes Node
として管理
PrivateCloud (OpenStack) の展開
29
L Overlay Network (VXLAN on IP CLOS)
Compute
Node
Compute
Node
Compute
Node
k s
master
k s
master
k s
master
Storage Storage
KVM / Container
Users
VM
Users
VM
Users
Service
nova
neutron
Container
KVM / Container
OpenStack
Controller
Container
other
Container
User
Components
OpenStack
Components
Physical
Components
KubernetesのPod (コンテナ)として
OpenStack Componentsを起動
PrivateCloud (OpenStack) の展開
30
PrivateCloud (OpenStack) の展開
31
L Overlay Network (VXLAN on IP CLOS)
Compute
Node
Compute
Node
Compute
Node
k s
master
k s
master
k s
master
Storage Storage
KVM / Container
Users
VM
Users
VM
Users
Service
nova
neutron
Container
KVM / Container
OpenStack
Controller
Container
other
Container
User
Components
OpenStack
Components
Physical
Components
独⾃ストレージ基盤を⽤いて管理
OpenStack / Kubernetesから利⽤可 [8]
PrivateCloudへのKubernetes採⽤理由
32
• OpenStackはController, ComputeNodeともに
必須プロセスが多い
• N物理: Nプロセス の管理としてKubernetesを利⽤
• Liveness, Readinessによって⾃動再起動
• 物理ホストの⽣死をKubernetes nodesによって管理
OKD (PaaS by Kubernetes)
33
• The Community Distribution of Kubernetes
that powers Red Hat OpenShift.
• RedHat製のPaaS基盤 (OSS and Distribution)
• Cycloudユーザ向けにKubernetes基盤を提供
• ユーザによるクラスタ管理が不要に
参考
34
• [ ]: FY Presentation Material for New Investors P より引⽤ https://
d utiq et vl .cloudfront.net/files/topics/ _ext_ _ .pdf?v=
• [ ]: AbemaTVのアーキテクチャの変遷 https://www.slideshare.net/abemadev/abematv-abematv-
devcon- -tracka-session-a -
• [ ]: Amebaブログなど、サイバーエージェントのメディアサービスを⽀えるインフラ組織とは?
https://www.wantedly.com/companies/cyberagent/post_articles/
• [ ]: Amebaアフィリエイト基盤の GKEアーキテクチャと マイクロサービス https://speakerdeck.com/
youta /cndt -amebaahuirieitoji-pan-false-gkeakitekutiyato-maikurosahisu
• [5]: タップル誕⽣: オンプレからAWS Fargateまで @ JAWS DAYS https://speakerdeck.com/
prog /tatupurudan-sheng-onpurekaraaws-fargatemade-at-jaws-days-
参考
35
• [ ]: CyberAgentのプライベートクラウド Cycloudの運⽤及びモニタリングについて
https://www.slideshare.net/whywaita/cyberagent-cycloud-administration-and-
monitoring-for-cycloud
• [7]: 情報系学⽣がサイバーエージェントに新卒⼊社した理由と現在「AbemaTV」で取り
組んでいること https://www.wantedly.com/companies/abema/post_articles/
• [ ]: CyberAgentのプライベートクラウドにおけるストレージ戦略
https://speakerdeck.com/miyamoto_hiroki/
cyberagentfalsepuraibetokuraudoniokerusutorezizhan-lue
ここから時間が余った時⽤
36
メンターエキシビション
37
メンターエキシビション
38
おうちKubernetes向け
Docker image build
題材
39
• もともと去年のおうちKubernetesで動いていたアプリ
• 昨年はIntel NUCで実施
• Golang製 / stateless / 簡単なWebAPI
• 今年はRaspberryPiなのでCPUアーキテクチャが異なる
• Raspberry Piでも動くものを作ろう ✨
できました
40
https://github.com/shokujinjp/api
multiarch image
41
• Dockerのexperimental feature `docker buildx`
• Next generation `docker build` らしい
• https://docs.docker.com/buildx/working-with-buildx/
• creating soped builder instances らしい
• 複数アーキテクチャをビルドするのに便利
• 内部的にはUserland QEMUをDockerで動かしている模様
42
43
44
45
46
47
🎉 multiarch build成功 🥳
48
皆さんも⾃作アプリを
おうちKubernetes対応に
していきましょう!! 💪
49
皆さんも⾃作アプリを
おうちKubernetes対応に
していきましょう!! 💪
50
OSSに貢献してももちろんOK! 🙆
実はめっちゃ格闘してました 💥
51
• GolangだしGOARCH指定したらいけるやろ……
• えっGitHub Actionsでaarch 向けgcc⼊らない?
• GitHub Actionsでmapみたいな事どうやれば……
• Userland-qemu使えるらしいし最悪それかな……
• でも1ビルドに数⼗分かかるようになるよね……
https://github.com/shokujinjp/api/pull/
🎉 multiarch build成功 🎉
🥳して良かった〜 🥳
52
まとめ
53
• メディア事業部では⾊んなところでKubernetesを
使ってます
• Webアプリだけではなく基盤としても利⽤しています
• 物理も含めて全部⾒るのは楽しいぞ!
• CPUアーキテクチャも興味あったら調べてみてね 🥳

CyberAgentのインフラについて メディア事業編 #catechchallenge