Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ここ3年におけるサイバーエージェントのネットワークを取り巻く環境の変化 / cyberagent-adtech-network-for-these-3years
komeinw
March 01, 2018
Technology
11
4.2k
ここ3年におけるサイバーエージェントのネットワークを取り巻く環境の変化 / cyberagent-adtech-network-for-these-3years
komeinw
March 01, 2018
Tweet
Share
More Decks by komeinw
See All by komeinw
kubevirt動かしてみた_npstudy#19 / try_kubevirt_npstudy#19
komeiy
3
1.1k
Datadog_で作る_NW_監視のメリット_デメリット.pdf / Datadog_NW_Monitoring
komeiy
3
2.4k
ネットワークエンジニアこそGASを覚えた方がよいと思った話 / network-engineer-gas
komeiy
2
3.3k
OkinawaOpendays2016_ネットワーク運用コード化への取り組み
komeiy
1
1k
Interop2016_Mellanox_ca_yamamoto.pdf
komeiy
0
1k
Interop2016_SDI_OpenStage-アドテクに必要なSDN_NFV_ca_yamamamoto.pdf
komeiy
0
1k
Interop2016_Mellanox_ca_40g_hasegawa.pdf
komeiy
0
1.1k
Interop2016_huawei_ca.pdf
komeiy
0
1.1k
mellanox_switch_shortreview_interop_2015.pdf
komeiy
0
62
Other Decks in Technology
See All in Technology
マネージャーからみたスクラムと自己管理化
shibe23
0
1k
ラブグラフ紹介資料 〜プロダクト解体新書〜 / Lovegraph Product Deck
lovegraph
0
150
Camp Digital 2022: tailored advice
kyliehavelock
0
140
アジャイル推進活動におけるBeAgileへの変化の兆し/Signs_of_Change_to_"Be_Agile"_in_Agile_Promotion_Activities
m_iyama
0
140
OPENLOGI Company Profile
hr01
0
370
IoTLT88-NTKanazawa-laundry-dry
yukima0707
0
210
The Fractal Geometry of Software Design
vladikk
0
430
ROS再入門-はじめてのSLAM-
miura55
0
390
2022年度新卒技術研修「良いコードの書き方」講義
excitejp
PRO
0
290
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
420
Building smarter apps with machine learning, from magic to reality
picardparis
4
3.2k
覗いてみよう!現場のスクラムチーム
tkredman
0
1k
Featured
See All Featured
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
213
11k
The World Runs on Bad Software
bkeepers
PRO
57
5.3k
We Have a Design System, Now What?
morganepeng
35
3k
Bootstrapping a Software Product
garrettdimon
296
110k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
19
1.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
12k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
What the flash - Photography Introduction
edds
62
10k
Build your cross-platform service in a week with App Engine
jlugia
219
17k
Building Your Own Lightsaber
phodgson
94
4.6k
Happy Clients
brianwarren
89
5.6k
Transcript
ここ3年におけるサイバーエージェントの ネットワークを取り巻く環境の変化 CyberAgent アドテク本部 山本 孔明 @komeinw
自己紹介 ❏ 山本 孔明@komeinw アドテク本部のインフラ組織(CIA)所属のネットワークエン ジニア 主な業務 • オンプレとパブリックのネットワーク(物理/仮想) •
OpenStack / CircleCI • Aritifactory ...etc • チームマネジメント
本日のアジェンダ 1. サイバーエージェントとアドテクスタジオについて 2. アドテクスタジオのプライベートクラウドについて 3. 3年の変化を振り返ってみる a. スタートライン b.
一歩進んだ c. もう一歩進んだ d. その他 4. まとめ
サイバーエージェントについて 1998年の創業以来、インターネットを軸に事業を展開し 現在では代表的なサービスである「Ameba」をはじめ、 スマートフォン向けに多数のコミュニティサービスやゲームを 提供しています。 and m ore !!
サイバーエージェントの事業内容
アドテクスタジオについて インターネット広告において、広告配信の最適化やメディアの収益最大化という観点から アドテクノロジーの重要度が高まっています。 サイバーエージェントではアドテクノロジー分野における これらのサービスについて各子会社を通じ開発しておりましたが、 各サービスの開発部門を横断して組織化する専門部署として アドテク本部・アドテクスタジオが設立されました。
https://adtech.cyberagent.io/pr/archives/3601 サイバーエージェントのアドテク
サイバーエージェントのアドテク 詳細は「日本一やさしいアドテク教室」を御覧ください! https://adtech.cyberagent.io/pr/archives/3601
アドテクスタジオのインフラって どうなっているの?
アドテク本部のインフラってどうなっているの? • 25を超えるプロダクト。約200名のエンジニア。 • インフラは各プロダクトで自由に選択 • AWS、GCP、プライベートクラウド インスタンス数ベースでは プライベートクラウド >
AWS > GCP 最近、GKE のために GCP を利用するケースが増えてきている
アドテクスタジオで提供している プライベートクラウドについて
プライベートクラウドについて • 本番用クラウド基盤 ◦ OpenStack (Izanami) • コンテナ基盤 ◦ AKE
• CI周り ◦ CircleCI ◦ Artifactory • 物理マシン ◦ MAAS • 個人開発用クラウド基盤 ◦ OpenStack (Mille) + Midonet • 分析基盤 ◦ Tableau
Meet Adtech Cloud Circle CI Enterprise 2.0 を βリリース中
ここ3年を振り返ってみる
スタートライン • 2014年3月 ◦ @komeinw 入社した時点の情報 ◦ 1U 物理サーバを大量に並べたラック構成 ◦
KVM で VM 数台起動 ◦ PXE boot で OS 入れて引き渡し ◦ NW はコアに L2SW を LAG で接続する構成 ◦ 申請ベースの作業 例えば、LBの設定などエクセルで来る申請をポチポチ手作業で実施していた。 サーバ担当がラック作って、ネットワーク担当がスイッチの設定して、サーバ担当が OS 入 れて KVM 上に VM 作って、開発者がアプリケーション入れて LB 申請してくる流れ
Excel での申請作業って・・・ • ヒューマンエラーおきやすい ◦ コピペミス ◦ 1行ズレた ◦ 大文字小文字間違えた
• なので、確認作業にも時間がかかる • Excel からコンフィグ生成する案もあるが・・・ 集中している作業を分断されるのは変わりない
一歩進んだ • 2014年8月 ◦ OpenStack になった。セルフサービス。 ◦ NW はよくある L2
構成にした(当時NeutronのL3は・・・) L3 と LB が物理の世界に取り残さることにより、申請作業が変わらない問題は残る。 というより、より課題が顕著になる恐れが。
一歩進んだ インフラ用の API Gateway を作成。 API を公開 すると共に「AXC (Adtech Studio
X Cloud) 」を リリース。簡単にアドテク内のインフラリソースを操作できるように。 Python 製。GitHub の organization 内で公開して配布。※ API Gateway がないと動かない https://adtech.cyberagent.io/techblog/archives/59
操作イメージと効果 • 学習コストが低い(アプリケーションの開発者が 各製品固有のコマンドを覚える必要がない) • メーカーの差を隠蔽できる • 簡単にJOBに組み込んだりすることが可能 • 思い立ったときにすぐインフラの操作ができる
こんな感じでのルータ・スイッチ・ロードバラン サー、Neutronの設定ができる。 Regionの概念も持たせています
Chatで話かけると・・・ SVI / VLAN作成、LB設定、Neutron設定、テスト、テスト環境削除 までの一連の流れを実施。結果はChatで通知。 面倒なものは chatbot も(1)
面倒なものは chatbot も(2) • グラフィカルな部分はChatでできるようにして おくと便利。 • “頼まれる側” も ”頼む側”
に取ってもストレス フリー • 他にも可視化と簡単なプロビジョンで活用 • Jobに組み込んだりする可能性があるものは CLIないしはAPIで提供した方がよい
もう一歩進んだ • 2015年2月 ◦ OpenStack + SDN で開発者向けの個人環境を構築 ◦ OpenSource
になったばかりだったが Midonet を採用 Zookeeper と Cassandara ネットワーク情報を管理し、各サーバ(Controler / Compute)で動作する Agent が OpenStack と連携しネットワークを作る。 VTEP の位置を考えるとネットワークは リーチャビリティが あれば難しい処理はしなくてよい http://www.sdnjapan.org/archive/2015/2015pdf/1503_hasegawa.pdf 自動化の限界、 VLAN自体を管理するのが面倒 →
作業からの解放\(^o^)/
トラブルシュートが変わってくる ネットワークエンジニアとしては Linux で構成される世界を 管理するかしないかでやるレベルに大きな差がでる • 「ネットワークがおかしい 」ってどこまでの範囲? • TAP? qbr? qvo? qvb?
• SoftIRQ 周り? Adapter の queuing ? netdev_budget ? backlog ? • zookeeper で管理しているネットワークがおかしい? • midonet の bug ? neutron との不整合? ユーザからすると、インスタンスから外に出れば管理者の範疇。 仮想ネットワークとか物理ネットワークとかは区別して問い合わせをしてくるわけではない。
もう一歩進んだ この辺りからエンジニア間の垣根がなくなってくる 現在は、得意分野は違えど全員が同じ業務を遂行できる(ネットワークは除く) Server Server Network Network API公開 守備範囲 拡大
さらにもう一歩進んだ • 2016年11月 ◦ Kubernetes as a service を始動 ◦
2017年1月に β をリリース ◦ 現在は OpenStack 上で複数のクラスタが稼働している コンテナの需要の高まりへの対応、Kubernetes を as a service 形式で稼働できることで 開発エンジニアがコンテナのメリットを受けるためのハードルを避ける AKE(Adtech Container Engine) OpenStack 上に専用の Kubernetes を気軽に構築できる環境 https://adtech.cyberagent.io/techblog/archives/3673
• Google 社が作った COE ツール • Docker コンテナのオーケストレーションを行う ◦ スケールアウト、スケールイン
◦ リソース管理、スケジューリング ◦ ロードバランシング、ヘルスチェック ◦ BlueGreen、ローリングアップデート ◦ クラスタ間ネットワークの提供 • コンテナをよしなに管理してくれる Kubernetes ってなに?
AKE や GKE の何がいいのか? • Kubernetes を構築するのが辛い問題... ◦ あまり本質的な所ではないので楽をしたい ◦
≒ OpenStack を構築する • Kubernetes クラスタを簡単にデプロイ • Kubernetes Node 自体を簡単にスケーリング • 動的な永続ボリュームの提供(Persistent Volume の Dynamic Provisioning)
Step 1. AKE / GKE クラスタを構築する Step 2. Kubernetes で
Pod/Service を作成する GKE AKE
Step 1. AKE / GKE クラスタを構築する Step 2. Kubernetes で
Pod/Service を作成する GKE AKE (AKE)# ake cluster create NAME ... (GKE)# gcloud container clusters create NAME ...
Step 1. AKE / GKE クラスタを構築する Step 2. Kubernetes で
Pod/Service を作成する GKE AKE (AKE)# kubectl ... (GKE)# kubectl ...
AKE を実現するために必要なこと • OpenStack 上に必要なリソースを展開する • Kubernetes をインストールする(最近イメージに内包した) • LoadBalancer
に登録する( or LoadBalancer 自体の構築) • CLI の提供 • master や worker のスケールイン / アウト • 提供する Kubernetes の CI / CD • CLI の CI / CD • ....etc
OpenStack Heat とは? • 構成情報を template で管理することができ る • AWS
CloudFormation / Terraform に近い OpenStack 上に必要なリソースを展開する
Kubernetes 時代のネットワークの 苦労ポイントを一つ紹介
type: LoadBalancerの壁 • Kubernetes には Service を「type: LoadBalancer」で作成すると Cluster 外に
LoadBalancer が作られる仕組みがある • この Service を使うと Cluster 外部から内部の pod にアクセスが可能 • 様々な Cloud Provier 連携が存在 (GCP / AWS / OpenStack …) • OpenStack の場合は Neutron LBaaS か Octavia と連携される • しかし、アドテクの OpenStack では Neutron LBaaS も Octavia も無い
type: LoadBalancerの壁(解消ポイント) • もともとアドテクスタジオでは Hardware LoadBalancer を使用しているが、その LB に対して API
で操作できる AXC という仕組みがある (前述の Adtech x Cloud) • Kubernetes からの LoadBalancer の作成時にこの AXC と連携させれば 「type: LoadBalancer」が実現できる • Kubernetes の Cloud Provider の OpenStack の pkg を改修 • しかしこれだけではまだ完全ではない • LoadBalancer 用の IP Address を自動で払い出す機能も作成
おまけ:Chatbot も進化している 簡易版。LB のヘルスって落ちてない ですか?という質問が多かったの で。 アラートに bot が反応してくれたり、 別の
bot を呼び出して処理をするよ うになっている
まとめ • ネットワークエンジニアの領域は変わってきている • OpenStack / SDN / Kubernetes によるインフラ環境の変化が起きている
• 単純作業から解放されれば、別のことをやる時間が作れる • いろいろ情報交換していきましょう
一緒に働きたい方を募集中です
ご清聴ありがとうございました