Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Production Services
with
Gentoo Linux
@mazgi#ssmjp 2015.09.30
Hidenori MATSUKI ( @mazgi )
Maverick inc.
Manager a.k.a. 雑用係
whoami?
development
operation
other
make ebuild
My roles are …
What’s RTB-DSP ?
• RTB→Real Time Bidding
• Web広告が表示される瞬間に広告枠のオークションを行われ
配信される広告が決まる仕組み
• DSP→Demand Side Platform
• 広告主に代わ...
広告主
Audience
It'swe!
DSP SSP Media
※画像は http://jp.yamaha.com/products/network/downloads/tools/ より
広
告
出
稿
広
告
閲
覧
1. 広告リクエ...
whoarewe?
We are planning and
developing Internet Advertising
services with
RTB DSP Service with DMP
Wehave2services
Paper
Area targeting “Paper” Ads from Web
Paper
Today’s
Pick
U
p
Paper
Area targeting “Paper” Ads from Web
Paper
Code name is “FSS”
Mainly made by Scala
Provided on Gentoo Linux
今日はこの開発コードネーム”FSS”
を提供するサーバーがなぜGentoo
Linuxでさくらのクラウド上に構築
されたかまた自社製アプリケーショ
ンをどのようにebuildでパッケージ
ングしているかをご紹介します!
というわけで
システム構成
SAKURA Cloud
Rendering
MongoDB
(Back)
MongoDB
(Back)
MongoDB
(Back)
MongoDB
(Back)
MongoDB
(Back)
MongoDB
(Back)
Internet
...
アプリケーション構成
• WebView
• 管理画面のWebView
• SPAとしてSlim, Sass, CoffeeScript, AngularJS等で実装

( http://techlog.mvrck.co.jp/entry/fr...
なぜGentoo Linux?
OS/Distribution選択
• 堅牢さ+サポートは魅力的
• RHELサブスクリプションは良い選択
• 社会インフラや安全性を担うなら(私は)こっち
• カスタマイズの自由度が高いものも魅力的
• 日々変わる自社サービスなら(私は)こっ...
それ、Gentooだとどうなる?
• make menuconfig しなくちゃいけなくなるとか
• OSインストール時にやってますよね?
• 1回やるのもn回やるのも手間は一緒です
• ミドルウェアをconfigureのオプション変えてビルドしな...
どうやって{構築, 運用}?
普通にサーバー作成
• サーバーはさくらのクラウドで構築
• じつはDSPサービスの方はハウンジングメイン

(クラウドって楽だなと改めて思います)
• LDAPアカウントでログインできるところまで構築したイメージを複製するだけ

( http...
普通にプロビジョニング
• 弊社は伝統的にAnsible
• オフィシャルにPortageモジュールあります
• でも安定版だと usepkg が指定できない(masterには入ってる)
• PlayBookリニューアル中
• ミドルウェア/ツ...
USEフラグ設定(ImageMagick)
A
fter
Little CMS, JPEG, PNGがほしい
USEフラグ設定(Oracle JDK)
After
今回はX.Orgいらない
普通にパッケージング&deploy
• とりあえずサンプル(&補足)
• https://github.com/mazgi/portage-overlay/tree/master/www-
apps/playscala-example
• Ge...
いかがでしょうか?
• Gentoo Linux便利そうですよね?
• 本番サービスで使ってみたくなりますよね?
• 一緒にサービスをGentoo Linuxで動かしませんか?
さいごに
We are hiring !
Maverick Inc. では
一緒に本番サーバーでemergeを実行したり
ebuildを書いてみたい方を募集しています!
ぜひ @mazgi までお声がけください!
Upcoming SlideShare
Loading in …5
×

Production Services with Gentoo Linux on SAKURA Cloud

2,152 views

Published on

#ssmjp で発表させていただいた本番サービスでのGentoo Linux使用例です。

Published in: Technology
  • Be the first to comment

Production Services with Gentoo Linux on SAKURA Cloud

  1. 1. Production Services with Gentoo Linux @mazgi#ssmjp 2015.09.30
  2. 2. Hidenori MATSUKI ( @mazgi ) Maverick inc. Manager a.k.a. 雑用係 whoami? development operation other make ebuild My roles are …
  3. 3. What’s RTB-DSP ? • RTB→Real Time Bidding • Web広告が表示される瞬間に広告枠のオークションを行われ 配信される広告が決まる仕組み • DSP→Demand Side Platform • 広告主に代わりSSPから広告枠を買い付けるプラットフォーム • SSP→Supply Side Platform • 広告媒体者に代わりDSPに広告枠を販売するプラットフォーム
  4. 4. 広告主 Audience It'swe! DSP SSP Media ※画像は http://jp.yamaha.com/products/network/downloads/tools/ より 広 告 出 稿 広 告 閲 覧 1. 広告リクエスト 2. bid request 3. 入札判断 4. bid response 5. 落札通知 6. 広告配信 afewsecs 100 ms or die!
  5. 5. whoarewe? We are planning and developing Internet Advertising services with
  6. 6. RTB DSP Service with DMP Wehave2services Paper Area targeting “Paper” Ads from Web Paper Today’s Pick U p
  7. 7. Paper Area targeting “Paper” Ads from Web Paper Code name is “FSS” Mainly made by Scala Provided on Gentoo Linux
  8. 8. 今日はこの開発コードネーム”FSS” を提供するサーバーがなぜGentoo Linuxでさくらのクラウド上に構築 されたかまた自社製アプリケーショ ンをどのようにebuildでパッケージ ングしているかをご紹介します! というわけで
  9. 9. システム構成
  10. 10. SAKURA Cloud Rendering MongoDB (Back) MongoDB (Back) MongoDB (Back) MongoDB (Back) MongoDB (Back) MongoDB (Back) Internet Router Switch WebView WebView MariaDB MariaDB Load Balancer Load Balancer HTTPS Access Customer & Publisher Replication Load Balancing (HA, appliance) FSS System Structure WebAPI WebAPI Load Balancing MongoDB (Front) MongoDB (Front) MongoDB (Front) (Replication & Sharding) (Replication) Rendering
  11. 11. アプリケーション構成 • WebView • 管理画面のWebView • SPAとしてSlim, Sass, CoffeeScript, AngularJS等で実装
 ( http://techlog.mvrck.co.jp/entry/frontend-intro/ ) • WebAPI • 管理画面のWebAPI • Scala + Play Framework 2で開発 • RenderingServer • 入稿データから紙広告の原稿を生成する • こちらもScalaで実装 • RGBからCMYKへの変換や各種組版処理(!)を行う
  12. 12. なぜGentoo Linux?
  13. 13. OS/Distribution選択 • 堅牢さ+サポートは魅力的 • RHELサブスクリプションは良い選択 • 社会インフラや安全性を担うなら(私は)こっち • カスタマイズの自由度が高いものも魅力的 • 日々変わる自社サービスなら(私は)こっち • どうせ自前でパッケージングすることになるならやりやすい方が良い • make menuconfig しなくちゃいけなくなるとか • ミドルウェアをconfigureのオプション変えてビルドしなくちゃいけなくなるとか • OpenSSHのバージョン上がるとLPKパッチあててパッケージ作らなくちゃいけないとか
 (今は AuthorizedKeysCommand があるので不要です) • 自社プロダクトのパッケージを作りたいとか
  14. 14. それ、Gentooだとどうなる? • make menuconfig しなくちゃいけなくなるとか • OSインストール時にやってますよね? • 1回やるのもn回やるのも手間は一緒です • ミドルウェアをconfigureのオプション変えてビルドしなくちゃいけなくなるとか • USEフラグでかなり自由に制御できます • Ansible的なやつで /etc/portage/package.use/* を管理すれば展開も楽です • OpenSSHのバージョン上がるとLPKパッチあててパッケージ作らなくちゃいけないとか • USE=“ldap” emerge openssh で解決(当時) • パッケージが提供されていないOSSや自社プロダクトのパッケージを作りたいとか • Gentoo(Portage)ならGit(Hub)のリポジトリをそのままパッケージにできます
  15. 15. どうやって{構築, 運用}?
  16. 16. 普通にサーバー作成 • サーバーはさくらのクラウドで構築 • じつはDSPサービスの方はハウンジングメイン
 (クラウドって楽だなと改めて思います) • LDAPアカウントでログインできるところまで構築したイメージを複製するだけ
 ( http://blog.mazgi.net/entry/cloning_ldap_authenticatable_server_on_sacloud ) • /home はNFSで共有 • 同一ゾーン内であればどのサーバーに入っても同じファイルが見える • ファイルシステムは基本的に btrfs • パーティション分ける代わりに subvolume • /var/log は compress 指定 • fog-sakuracloudとか使って手オペ0にしたい
  17. 17. 普通にプロビジョニング • 弊社は伝統的にAnsible • オフィシャルにPortageモジュールあります • でも安定版だと usepkg が指定できない(masterには入ってる) • PlayBookリニューアル中 • ミドルウェア/ツールインストール • Gentoo Linuxのオフィシャルパッケージは比較的バージョン新しい • ~amd64 マスクされてても使うこともひじょうにしばしば • 足りないものは私家版作成
 ( https://github.com/mazgi/portage-overlay/tree/master/dev-java/sbt-bin ) • 必要の応じてUSEフラグ設定
  18. 18. USEフラグ設定(ImageMagick) A fter Little CMS, JPEG, PNGがほしい
  19. 19. USEフラグ設定(Oracle JDK) After 今回はX.Orgいらない
  20. 20. 普通にパッケージング&deploy • とりあえずサンプル(&補足) • https://github.com/mazgi/portage-overlay/tree/master/www- apps/playscala-example • Gentoo Linuxを本番で使ってる会社のblog • http://techlog.mvrck.co.jp/entry/services-with-gentoo/ • だいたいこんな感じでいけます(雑) • ~amd64 マスクされたバージョン9999を emerge すると実行時点の GitのHEADがインストールされるようにしています
  21. 21. いかがでしょうか? • Gentoo Linux便利そうですよね? • 本番サービスで使ってみたくなりますよね? • 一緒にサービスをGentoo Linuxで動かしませんか?
  22. 22. さいごに
  23. 23. We are hiring ! Maverick Inc. では 一緒に本番サーバーでemergeを実行したり ebuildを書いてみたい方を募集しています! ぜひ @mazgi までお声がけください!

×