Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Advertisement

Similar to Yahoo! JAPANのCloud Foundry導入状況(20)

More from Yahoo!デベロッパーネットワーク(20)

Advertisement

Yahoo! JAPANのCloud Foundry導入状況

  1. 2016年11月15日 ヤフー株式会社 窪野 安彦 Yahoo! JAPANの Cloud Foundry導入状況
  2. 自己紹介 1 窪野 安彦 ・システム統括本部プラットフォーム開発本部所属 (サービスの基盤となるようなシステムを担当) ・2004年入社 (当時はC言語でゴリゴリに書いてました) ・Cloud Foundryの環境構築と社内導入支援を行っています。
  3. 今日の内容 2 ・どんな風に導入しているか? ・進め方(組織の話) ・進め方(技術的な話) ・課題(たくさんあるうちの一つ) ・10倍開発するためのCI/CD ・まとめ
  4. Yahoo! JAPANの紹介 月間ページビュー698億※1 アプリ累計ダウンロード数3億8000万以上※2 月間アクティブユーザーID数3430万※3 1日あたりユニークブラウザー数9000万※1 サービス数100以上※4 ※1. 2016年度4月~6月平均) ※2. (2016年3月末時点)※出典:App Annie 2015年アプリ市場総括レポート ※3. 2016年6月末時点) ※4. 2016年9月末時点) 3
  5. どんな風に導入しようとし ている?
  6. なぜCloud Foundryを導入したのか? 「10倍」開発したい 5
  7. Cloud Foundry導入の旅 6 2016年 先行サービス 2017年 本格導入 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. それぞれアーキテクチャも違う 11 例)新規サービス等 例)コマース系サービス等 小規模サービス 大規模サービス API Gate way sear ch list cart logic logic logic
  13. 共通のアーキテクチャを全社展開するのは難しい 12
  14. 組織毎に対応策を見つける 組織内エバンジェリスト(非公式) 今のところ20人ぐらい それぞれの組織・サービスに合った導 入方法を進めている 13
  15. 推進体制イメージ 14 現場エンジニア 組織内 エバンジェリスト 社内推進 プロジェクト ショッピング 担当 ショッピング エンジニア ショッピング エンジニア オークション 担当 オークション エンジニア メディア担当 メディアエン ジニア
  16. 進め方(技術的な話)
  17. 独自技術で開発スピードアップ 16 ・検索エンジン ・フラットDB ・プロセス間通信技術 ・パッケージ管理
  18. 独自技術の多くは簡単にはCFで動かない 17
  19. 既存サービスとの連携 18 app2app1 FE API etc KVS DB Cloud Foundry API Gateway 独自技術 独自技術 独自技術独自技術 システムログ アプリケーションログ 独自技 術に依 存しない、 または httpでア クセス可 能なPF は、直接 アクセス する。 IDC router RouteService LB
  20. 課題 (たくさんあるうちの一つ)
  21. DBの接続はIPアドレスで制限をかけている 20 サービスA サービスB サービスC 実際には上記に加えID・パスワード・ポートも
  22. CFを使うとRANGEで開けなければいけない 21 CF サービスA サービス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イメージを準備 27 Dockerfile /bin/compile $app_dir /tmp/cache を実行 FROM cloudfoundry/cflinuxfs2 ENV CF_STACK=cflinuxfs2 ENV USER vcap
  29. Cloud Foundry GitHub Private Registry 更新作業もConcourseで自動化 28 Concourse Buildpack 登録 更新確認&取得 Resource check Update buildpack Buildpack Docker build&push Resource check 更新 DockerImage
  30. まとめ
  31. まとめ ・スモールスタートで始めている ・サービス毎に導入方法を検討 ・独自技術や既存PFとも連携 ・課題はまだまだ山盛り ・Concourseとセットで推進 30
  32. ご清聴ありがとうございました。 31 素材提供:アフロ
Advertisement