Yahoo! JAPANのCloud Foundry導入状況

>100 Views

November 15, 16

スライド概要

Yahoo! JAPANが、どのようにCloud Foundryを使っているのか?どのように組織のトランスフォーメーションを進めているのか?をご紹介します。
https://cloudfoundrydaystokyo.github.io/2016/
http://cfdays.connpass.com/event/41201/
https://www.cloudfoundry.org/community/cloud-foundry-days/

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Yahoo! JAPANの Cloud Foundry導入状況 2016年11月15日 ヤフー株式会社 窪野 安彦

2.

自己紹介 窪野 安彦 ・システム統括本部プラットフォーム開発本部所属 (サービスの基盤となるようなシステムを担当) ・2004年入社 (当時はC言語でゴリゴリに書いてました) ・Cloud Foundryの環境構築と社内導入支援を行っています。 1

3.

今日の内容 ・どんな風に導入しているか? ・進め方(組織の話) ・進め方(技術的な話) ・課題(たくさんあるうちの一つ) ・10倍開発するためのCI/CD ・まとめ 2

4.

Yahoo! JAPANの紹介 月間ページビュー698億 ※1 アプリ累計ダウンロード数3億8000万以上 月間アクティブユーザーID数3430万※3 1日あたりユニークブラウザー数9000万※1 サービス数100以上※4 ※1. 2016年度4月~6月平均) ※2. (2016年3月末時点)※出典:App Annie 2015年アプリ市場総括レポート ※3. 2016年6月末時点) 3 ※4. 2016年9月末時点) ※2

5.

どんな風に導入しようとし ている?

6.

なぜCloud Foundryを導入したのか? 「10倍」開発したい 5

7.

Cloud Foundry導入の旅 2017年 本格導入 2016年 先行サービス 6 2018年 拡大

8.

使っている環境 ・Cloud Foundry DiegoでBuildpackを使用、php/java/node/go等 ・concourse 2.4 ・GitHub Enterprise ・MYM(slackのような社内ツール) ・JIRA 7

9.

初期クラスタ構成 開発用クラスタ OpenStack 100 VMsを用意 CFだと712 instances 629 apps in 74 orgsが稼働中 本番環境用クラスタ OpenStack 200 VMsを用意 CFだと344 instances 46 apps in 9 orgsが稼働中 ※先行サービスにて実績を作っている段階のため、本番サービス導入は少ない状況 もう1クラスタ別IDCに構築中、その後も順次増設予定 8

10.

進め方(組織の話)

11.

とにかくサービスが沢山ある 増え続けるサービス 100以上 (2016年9月末時点) 開発言語の違い C、Perl、C++、PHP、Node.js、Java... 10

12.

それぞれアーキテクチャも違う 小規模サービス 大規模サービス API Gate way 例)新規サービス等 11 sear ch logic list logic cart logic 例)コマース系サービス等

13.

共通のアーキテクチャを全社展開するのは難しい 12

14.

組織毎に対応策を見つける 組織内エバンジェリスト(非公式) 今のところ20人ぐらい それぞれの組織・サービスに合った導 入方法を進めている 13

15.

推進体制イメージ 社内推進 組織内 エバンジェリスト 現場エンジニア 14 プロジェクト ショッピング 担当 ショッピング エンジニア ショッピング エンジニア オークション 担当 メディア担当 オークション エンジニア メディアエン ジニア

16.

進め方(技術的な話)

17.

独自技術で開発スピードアップ ・検索エンジン ・フラットDB ・プロセス間通信技術 ・パッケージ管理 16

18.

独自技術の多くは簡単にはCFで動かない 17

19.

既存サービスとの連携 Cloud Foundry RouteService LB router app1 app2 FE API DB KVS etc システムログ アプリケーションログ API Gateway 独自技術 18 独自技術 独自技術 独自技術 IDC 独自技 術に依 存しない、 または httpでア クセス可 能なPF は、直接 アクセス する。

20.

課題 (たくさんあるうちの一つ)

21.

DBの接続はIPアドレスで制限をかけている 実際には上記に加えID・パスワード・ポートも サービスA 20 サービスB サービスC

22.

CFを使うとRANGEで開けなければいけない CF サービスA 21 サービスB サービスC

23.

既存のルールとも格闘中 何故そのルールを作ったのか? 引き続き、そのルールが必要か? 技術的に解決できないのか? 22

24.

10倍開発するための CI/CD

25.

CI/CDの条件 CFと相性が良さそうなもの モダンな開発手法に合ったもの 24

26.

何故Concourseか? boshデプロイができた パイプラインが見える化されてる YAMLで設定が書ける 25

27.

Concourseの課題(当時) ・複数チームで利用する機能がない → チーム機能がリリースされて良かった ・Buildpackと同じ環境でテストがしたい (httpdや言語のバージョン含めて) →次ページにて説明 26

28.

Buildpackが動くDockerイメージを準備 Dockerfile FROM cloudfoundry/cflinuxfs2 ENV CF_STACK=cflinuxfs2 ENV USER vcap /bin/compile $app_dir /tmp/cache を実行 27

29.

更新作業もConcourseで自動化 GitHub Buildpack 更新確認&取得 Concourse Resource check Resource check 28 Update buildpack Docker build&push 更新 Buildpack 登録 DockerImage Cloud Foundry Private Registry

30.

まとめ

31.

まとめ ・スモールスタートで始めている ・サービス毎に導入方法を検討 ・独自技術や既存PFとも連携 ・課題はまだまだ山盛り ・Concourseとセットで推進 30

32.

ご清聴ありがとうございました。 素材提供:アフロ 31