Gmo media.inc 第9回西日本ossの普及を考える会

1,189 views
1,124 views

Published on

OSS無しでは語れないGMOメディアのOSS活用術

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,189
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Gmo media.inc 第9回西日本ossの普及を考える会

  1. 1. OSS無しでは語れないGMOメディア のOSS活用術 第9回 西日本のOSS 普及を考える会 Dai Utsui utsui@gmo-media.jp 2012/7/27
  2. 2. 目次■はじめに■OSSを採用する理由■OSS活用事例
  3. 3. はじめに
  4. 4. システム管理者の日
  5. 5. 自己紹介名前 : 宇津井 大(うつい だい)Twitter : @utsuidai職業 : オペレーションエンジニア @ GMO-Media.Inc趣味 : サーフィンとお酒と勉強会巡り。自宅サーバー : 1台のみ!
  6. 6. GMOインターネットグループ WEBインフラ・EC事業 インターネットメディア事業 インターネット証券事業 2位 セキュリティ 1位決済1位 EC支援 2,755万視聴者 2位FX取引 3位 株式取引 375万顧客(12月末) 1,150万ライブプラグイン 20万口座 12万口座1位 サーバー (6,500万累計配布) 1位 ドメイン アクセス ネット広告 リサーチ 「人財・技術」 「資金」 スマートフォン ソーシャルアプリ 技術力・営業力 ゲームプラットフォーム テクノロジー サーバー運用ノウハウ 共同マーケティング 4位クーポン ソーシャル・スマートフォン関連事業
  7. 7. GMOメディア:会社概要 メディア事業 デジタルコンテンツ提供事業 • 楽しく便利な情報を提供するサイ • コンテンツプロバイダーとして、壁 トや、ブログ・SNSなどのコミュニ 紙画像や着メロなど様々なコンテ ティサービスを運営する事業です。 ンツを制作・収集し、お客様に提供 • スポンサー企業様からの広告をお する事業です。 届けする無料サービスと、月額課 • スポンサー企業様からの広告をお 金制のサービスがあり、現在、P 届けする無料サービスと、月額課 C・携帯併せて10サイト以上の 金制のサービスがあり、現在、P サービスを提供しています。 C・携帯併せて30サイト以上の サービスを提供しています。
  8. 8. 企業理念
  9. 9. 沿革 • インターネット広告および情報提供サービス事業を主力としたアイ・ウェブ・テ 2000年10月 クノロジー・ジャパン株式会社(現GMOメディア株式会社)を設立 • 商号をユーキャストコミュニケーションズ株式会社に変更 2002年5月 • 本店の所在地を東京都渋谷区に移転 • 壁紙ドットコム株式会社と合併し、GMOモバイルアンドデスクトップ株式会社 2004年3月 が発足 • GMOメディアアンドソリューションズ株式会社のメディア事業・EC事業と統合 2005年5月 し、商号をGMOメディア株式会社に変更 • GMOメディアホールディングス株式会社から「ヤプログ!」事業を会社分割に 2007年8月 より承継 • GMOティーカップ・コミュニケーション株式会社を吸収合併 2009年4月
  10. 10. 福利厚生プロジェクト http://www.gmo.jp/info/welfare/
  11. 11. GMOすごいエンジニア支援制度 http://www.gmo.jp/info/support/ 11
  12. 12. OSSを採用する理由
  13. 13. OSD(Open Source Definition) 1. 再頒布の自由 2. ソースコードの入手 3. 派生ソフトウェア 4. 作者のソースコードの完全性(integrity) 5. 個人やグループに対する差別の禁止 6. 利用する分野(fields of endeavor)に対する差別の禁止 7. ライセンスの分配(distribution) 8. 特定製品でのみ有効なライセンスの禁止 9. 他のソフトウェアを制限するライセンスの禁止 10. ライセンスは技術中立的でなければならない http://www.opensource.jp/osd/osd-japanese.html
  14. 14. 事業を営む上で重視するポイント• 圧倒的なスピード感 – 世界中の一般消費者(BtoC)に向けていち早く、より良い もの、役立つもの、面白いものを提供する• ローコスト – スタートアップを容易に – 利用者に優しいサービスを提供する
  15. 15. OSSを使用する最大の理由 • ベストプラクティス – 作りたい物を最も早 く、かつ安価に構築 できる仕組み・体系 • ソースの存在 – 世界中で開発されて いる – 必要なら改変が可能 – 例え開発が止まって もソースがあれば維 持できる
  16. 16. その他のメリット • インフラ要素 – OSSのRHEL(及びRHELクローン)は最新かつ高性能、高効率な インフラ機器を利用可能 – x86サーバー、SSD、PCI-Express型ストレージ、メモリ 等々 – 省エネも実現 • 人材 – OSSに関わるエンジニアが増加傾向
  17. 17. 全国のOSC参加人数• 年度別参加者数推移 – 2005年 2,350 – 2011年 8,150• 年度別参加コミュニ ティ数推移 – 2005年 97 – 2011年 503 http://www.ospn.jp/visitors/
  18. 18. 全国のOSC参加人数• 西日本と東日本の比較 – 西日本 • 2005年 200 • 2011年 3,470 – 東日本 • 2005年 2,150 • 2011年 4,680 http://www.ospn.jp/visitors/
  19. 19. その他のメリット • 教育 – 初期教育コストがかなり抑えられる – 情報はweb、オープンなコミュニティから得られる – rhelならRedHatのサポートも得られる – 省エネも実現 • コミュニティ – 人気のプロジェクトは各地で勉強会が開催される – MLも活発 – 助けあいの文化
  20. 20. OSS採用事例 rhev3.0
  21. 21. 当時の仮想環境 2010.2 • ごった煮状態 – Xen,KVM,VMware Serverで構築した仮想サーバー(vm) が散乱。 • 開発環境不足 – 充分なリソースを割けず、開発・テスト・ステージング環境 が野放しに – エンジニアが自由に弄れるサーバー環境が皆無
  22. 22. Why Red Hat Enterprise Virtualization for Servers • KVM(OSS) – カーネル2.6.20からマージされたKVMをどうしても使いた かった。 • ソケットライセンスでの価格優位性 – 集積度を上げるため12コア AMD Opteron 6000シリーズ (Magny-Cours)を使いたかった。 – (当時の)VMWareではvSphere4 Advanced、 Enterprise Plusには手が出せない。 – (現在の)VMWareでもvSphere5 Enterprise Plusには手 が出せない。
  23. 23. 稟議!• 物理サーバは低スペックのサーバが増えてきてい て、ラック及び電力の消費効率が悪い。• CPU・Memory・I/O性能不足で限界。スケールアウ トもスケールアップもしない。• EC2とか数分でサーバ出来るのにうちは・・・• でもEC2は何気に高い
  24. 24. システム構成
  25. 25. メディアクラウドv1 2010.6 動的かつスケーラブル The Internet な 仮想環境 Ethernet 1G Network Server Dell R815 * 3 AMD Opteron 6164HE 12Core * 4socket 4GB * 96 module CPU Total 144 core : Memory total 384GB iSCSI 10G Network Storage Dell EqualLogic PS6010XV SASmodule 14TB
  26. 26. メディアクラウドv2 2010.8 The Internet Server Dell R815 CPU 144 core -> 288 core Memory 384GB -> 768GB Storage Dell EqualLogic PS6010XVSASmodle 14TB -> 28TB
  27. 27. mediacloud v3
  28. 28. 要件1• ストレージは重要 – ストレージが落ちると全体障害になりえる – データセンター内のネットワークはfablicを求めている – ベンダーロックインを減らす – i/o負荷の高いDBも仮想化したい
  29. 29. 要件2:データセンター作業• 稼働させるまでのスピードが重要 – 人的コストの削減 – 配線の数 – スケールアウトを容易に
  30. 30. Mediacloud v3
  31. 31. 導入の効果• ストレージの分離 – StoragePoolManagerが3つに。全体障害の回避。• シンプル構成 – CPU Socket辺りの10Gb利用ポート数が約62%現象 • iscsiネットワーク内の話でブレードフル搭載の場合 – 現在はシャーシ辺り5台運用なので約37%。 » しかも全部10Gにしたのでポート数は増えてます – 配線が約60%減少• 拡張性 – スケールアウトが容易 • エンクロージャに空スロットを用意しておけば増設が非常に楽 • エンクロージャ足すのも旧来の2Uサーバーと同等程度の作業量
  32. 32. 運用
  33. 33. Hypervisor Deployment • pxeboot – 2台以上のhypervisorを利用するなら必須 – Installは手作業で実施(自動化も可能) – Upgradeはキーボード2回たたくだけ – 詳しくはrhel6のHypervisor 導入ガイド » http://docs.redhat.com/docs/ja- JP/Red_Hat_Enterprise_Virtualization/3.0/html/Hypervisor_D eployment_Guide/sect-Deployment_Guide- Preparing_Red_Hat_Enterprise_Virtualization_Hypervisor_ins tallation_media- Deploying_RHEV_Hypervisors_with_PXE_and_tftp.html
  34. 34. Hypervisor Deployment • pxelinux.cfg/defaultの例 – Install label 9 kernel rhevh-6.2-20120510.0/vmlinuz0 APPEND rootflags=loop initrd=rhevh-6.2-20120510.0/initrd0.img root=live:/rhevh-6.2-20120510.0.iso rootfstype=auto ro liveimg nomodeset check rootflags=ro crashkernel=512M-2G:64M,2G-:128M elevator=deadline processor.max_cstate=1 install rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM ONERROR LOCALBOOT 0 – Upgrade label 10 kernel rhevh-6.2-20120510.0/vmlinuz0 APPEND rootflags=loop initrd=rhevh-6.2-20120510.0/initrd0.img root=live:/rhevh-6.2-20120510.0.iso rootfstype=auto ro liveimg nomodeset local_boot nocheck check rootflags=ro crashkernel=512M-2G:64M,2G- :128M elevator=deadline processor.max_cstate=1 install rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM ONERROR LOCALBOOT 0
  35. 35. VM deployment • Templates – 事前にテンプレート(AIMみたいなもの)作っておけば10 分程度でclone作成(50GB程度の場合) – テンプレートからThin-Provisioningなら即時 – 新規に入れる場合はkickstartで10分程度
  36. 36. REST - API • Vm情報取得 # rhevm-config -s SearchResultsLimit=1000 # service jbossas restart # curl -s -X GET -H "Accept: application/xml" -H "Content-Type: application/xml" -- cacert rhevm.cer -u admin@internal:[pass] https://[RHEVM Host]:8443/api/vms > vms.xml • Vm起動 # curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" -- cacert rhevm.cer -u admin@internal:[pass] -d "<action/>" https://[RHEVM Host]:8443/api/vms/0b08f839-f790-4612-99b9-db0d56ee93f6/stop • Vm停止 # curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" -- cacert rhevm.cer -u admin@internal:[pass] -d "<action/>" https://[RHEVM Host]:8443/api/vms/0b08f839-f790-4612-99b9-db0d56ee93f6/start 詳しくはAPI Guide – http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Virtualization/3.0/html/REST_API_Guide/index.html
  37. 37. 利用方法
  38. 38. エンジニア向けVPS提供• 全エンジニア(インフラ・PG)へvm提供 – 仮想CPU : 1Core~4Core – メモリ:1GB~4GB – ストレージ:70GB – Global IP(ipv4):希望者のみ – クラウド事業者の最少プランで実現すると・・・ • GMOクラウド Publicだと月額2,400円*50vm – 4年償却で約576万円。 • ○○○のクラウドだと月額2,920円*50vm – 4年償却で700万円程度・・・
  39. 39. ソーシャルアプリ1• モバゲー,Mixi向けアプリ – Amazon Web Serviceから完全 移行 – サーバ性能というよりネットワー ク(RTT)の改善により大幅にパ フォーマンスアップ(当時は東京 リージョンが無かった) – 大幅なコストダウン • AWS月額 約20万円 ⇒ RHEV 約2万円
  40. 40. ソーシャルアプリ2 • 自社プラットフォームソーシャルアプリ – apサーバの高負荷で急遽利用開始 – サーバ10台 緊急配備 • 11時に意思決定 -> 17時に本番稼動開始 • APIリクエスト数 – 2億 req/day (2010/10現在) – 2.7億 req/day (2012/2現在)
  41. 41. その他• データセンター移転 2010.8 – 300台程度のDualCoreサーバ群 – rhev環境に積極的に取り込み実施。 • vmの数は物理台数の約半数で稼動可能だった。 • P2Vは不採用 – 100万円/月のコスト削減に成功! – 節電にもかなり貢献した(はず)!
  42. 42. その他• ストレージ及びデータベース以外は全て mediacloudへ
  43. 43. その他:GlusterFS 3.2 • スケールアウト可能なファイル置場をMediaCloud 上に構築 GlusterFS 3.2クラスタ on MediaCloud vm1:brick1:50GB vm2:brick2:50GB vm3:brick3:50GB vm4:brick4:50GB 100GB fuse NFS S3,swift REST Hadoop GlusterFS 3.3 vm5:client1 vm6:client2
  44. 44. OSS採用事例 MongoDB
  45. 45. OSS概要 MongoDB (from "humongous") is a scalable, high-performance, open source NoSQL database. Written in C++, MongoDB features: http://www.mongodb.org
  46. 46. MongoDBを利用したタイムラインシステム UPDATES REST API WEB SERVICE TIMELINE SYSTEM TIMELINE ブログサービスのフレンド更新タイムライ ン 画像投稿サービスのお気に入りユー ザー投稿タイムライン
  47. 47. システム概要 Kestrel Scala MQ WORKER HTTP Casbah Scala Java Jetty PHPWEB SERVICE API MongoDB
  48. 48. システム概要サービス規模 24,000,000 API CALL / DAY 2,400,000 ユーザ 34,000,000 STATUS UPDATES / DAYデータ規模 TOTAL 55GB 8 DATABASES 2,200,000 COLLECTIONS 100,000,000 DOCUMENTS
  49. 49. システム概要サーバー構成 2 API SRVS API / WORKER / MQ 2 Worker SRVS 2 MQ SRVS 3 MongoDB SRVS 3 NODE REPLICA SET NO SHARDING 8 DATABASES 2.2 MILLION COLLECTIONS MongoDB
  50. 50. OSS採用事例Fluentd + Redis
  51. 51. OSS概要 Fluentd is a log collector daemon written in Ruby. Fluentd receives logs as JSON streams, buffers them, and sends them to other systems like MySQL, MongoDB, or even other instances of Fluentd. http://fluentd.org/ Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. http://redis.io/
  52. 52. システム概要自社Webサービスに導入したリアルタイム EXECレコメンデーションシステム LOG FORWAR FILE FLUENTD FLUENTD D SCRIPT RUBY FLUENTD WORKERPHP SCALA WEB REDIS API
  53. 53. システム概要サービス規模 133,000,000 REQUESTS / DAY 7,6000,000 PICTURES 6,500,000 USERSイベントログ 7GB / DAY 1500 EVENTS / SEC
  54. 54. システム概要サーバー構成 WEB 18 WEB SRVS 6 REDIS SRVS 4 API SRVS WORKER 4 WORKER SRVS API REDIS
  55. 55. 非リアルタイム時代
  56. 56. 非リアルタイムなレコメンデーション1時間に1回のSCP & MapReduce scp map-reduce (houry) (houry) WEB SERVERS Hadoop REDIS
  57. 57. 非リアルタイムなレコメンデーション低いヒット率画像:60 - 70%検索語:20 – 30%
  58. 58. リアルタイム時代
  59. 59. リアルタイムなレコメンデーションヒット率の劇的な改善画像:60 - 70% 画像:70 - 90%検索語:20 – 30% 検索語:50 – 70%
  60. 60. トラブル
  61. 61. OSSならではのトラブル回避 in_tailで取り込んだログのパースが稀に失敗する 2012-03-27 03:10:27 +0900: fluent/parser.rb:85:parse: pattern not match: "...(a part of log line)" パッチ提供で解決 https://github.com/fluent/fluentd/pull/44
  62. 62. まとめ• システム管理者に感謝• OSSは確実に広がっている• 中~大規模環境であってもOSSで先進的なサービスを作り だせる• OSS無しじゃ生きていけない• OSSは素晴らしい

×