© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます はてなの開発 / 運用体制 株式会社はてな 伊藤 直也.

Slides:



Advertisements
Similar presentations
1. これだけは入れとけ!便利な gem 2. こう記述しろ!設定ファイル 3. 意外と知らない?注意点.
Advertisements

著作物の利用と使用 開 始開 始 再生時間:3分50秒. 著 作 権 法著 作 権 法著 作 権 法著 作 権 法 利用するには 皆さん、著作物の利用 と使用には区別がある ことを知っています か? 使用するには 作った人の許諾が必要 『著作物の利用と使用』 使うときのルールを 守る必要がある.
プロジェクト名称 Inception Deck (Project Charter) 201X.XX.XX.
© 2005 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます prototype.js と Perl で Ajax 株式会社はてな 伊藤 直也
MOSA プログラミングセミナー Mac OS X プログラミング 事始め 新居雅行( MOSA 理事) 2002/4/28.
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
1 会社名: 氏名: 日付: 会社名: 氏名: 日付:. 2 内容 企業のセキュリティ対策状況 ユーザー管理の重要性 ユーザー管理製品 市場状況 Active Directory とは Active Directory 利用に最低限必要な準備 ユーザー管理のご提案内容 最初の取り組み:ユーザー情報の統合管理.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
NetAgent P2P検知技術 NetAgent.
FPGA 株式会社アプライド・マーケティング 大越 章司
SAP 環境における Active Directory 導入のメリット
IIS 4.0で開発をするコツ Webアプリケーション構築.
有限会社 はてな 近藤淳也 Shibuya Perl Mongers
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
情報理工学部 情報システム工学科 3年 H 井奈波 和也
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Flashプレイヤーを使った動画配信 情報工学科 宮本 崇也.
Docker.
join NASS ~つながりあうネットワーク監視システム~
社内システム進捗 前回までの決定事項 →システムは「Scala PlayFramework2」で作成
UNIX Life KMSF M2 saburo.
第4回ネットワーク講習会 医中誌・JCRのセットアップと利用方法
電子社会設計論 第11回 Electronic social design theory
吉田和弘 株式会社ミッタシステム Rubyのすすめ 吉田和弘 株式会社ミッタシステム
PaaSの起源とxaaSの今後.
MacOSX El Capitan Apache起動方法
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
Webアプリケーション.
Silverlight とは.
第一回 Java言語 04A2029           古賀慎也.
モバイルエージェントの応用 概要 モーバイルエージェントの応用分野 AgentSpaceシステム エージェント移動 応用:ソフトウェアの配信
PHP Framework Update symfony 編 株式会社ディノ 月宮紀柳.
tracert(トレースルート)コマンドによるルーティング表示
Introducing “MobaSiF” (Mobile Simple Framework)
Epnetfan の歴史とか何とか 杉山耕一朗 (北大理・宇宙理学).
サーバー立ち上げ記 2009/5/23
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
小規模オフィス向け グループワークシステム 導入のご提案
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
IPv6アドレスによる RFIDシステム利用方式
システム名・タイトル 概要 仕様・特徴 使用上の注意点 災害用情報通信ネットワーク・アプリケーション調査票 システム開発・構築企業、機関名
型付きアセンブリ言語を用いた安全なカーネル拡張
はてな はてなの開発裏側見せますパート3 はてな
対応可否 スキル一覧 株式会社エージェント 2015年10月7日 Ver.1.0.
表紙.
Arcserve + 大容量NASサーバで二重化を簡単に! 障害時には、手動、もしくは自動で切替える
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
職務経歴書・スキルシート (職種:職種を記載してください).
私の立場 OSカーネルを手がけるエンジニア 大阪市立大学 創造都市研究科の学生
OSSAJ 事務局 株式会社ウィズ.アール 古木 良子
Web - 01 IIS を インストールしよう.
SaaS/PaaSの起源とこれから 株式会社アプライド・マーケティング 大越 章司
Javaの有償化と各社の対応 ITソリューション塾・第29期 2018年11月21日 株式会社アプライド・マーケティング 大越 章司
W3CがHTML5を勧告として公開 ( ).
データベース設計 第7回 実用データベースの運用例 クライアント=サーバシステム(1)
サーバ・クライアントシステム ( X Window System) 2006/01/20 伊藤 和也 original: 前坂たけし
ロボット×コグニティブ× Bot 活用 による新しい顧客体験の提供 今だけ
【ユーザー様向け資料 1.0】 2019年2月 株式会社オレガ.
ネットワークをシンプルにする エンタープライズ NFV
PaaSの起源.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
修士研究計画 CGM作成・共有支援基盤(仮)の構築
Db2 Warehouse on Cloud Db2 on Cloud フルマネージドサービス提案時の注意点
RaQ3/4パッチ強化セミナー CobaltResQ 小田 誠.
第2回 Webサーバ.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
IBM Software Aviarc Global, Ltd. 導入から稼働まで 15 分未満、フットプリントの小さい IBM WebSphere Liberty Profile ニーズ: サポート付きのコンテナーでは再起動と変更の伝搬が非常に遅くなるために、Aviarc 社のソフトウェア開発者は開発にはオープン・ソースのコンテナーを、実装にはサポート付きのコンテナーを使用していました。しかし、両方の環境間の不整合は、実装の遅れの原因になりました。このことは、迅速な開発グループと高く評価されている同社で
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
VPNクライアント接続 サーバー保守のための安全な経路+作業者単位のアクセス制御 簡単な図 (網羅性より象徴性)
Presentation transcript:

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます はてなの開発 / 運用体制 株式会社はてな 伊藤 直也

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます お話したいこと はてなブックマークのシステム概要 ソフトウェア ハードウェア LVS はてなの開発体制

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます はてなブックマーク

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます はてなブックマークの数字 66,000 ユーザー del.icio.us 30 万人 ( 被買収時点 ) digg 60 万人 ( 時点 ) サーバー 30 台強 開発者 1 + 数名 LAMP

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます proxy MP master bot / feed 通常のリクエスト 他サービス slave 画像 API etc. LVS proxy LVS

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます ソフトとハード

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます ソフトウェア Linux 2.6 (FC4) Perl / Ruby LVS Apache 2.2 / 2.0 rev proxy (mod_proxy_balancer) app server (mod_perl) memcached MySQL 4.0 MyISAM

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます そのほか Subversion Capistrano Nagios Observer ( 自社開発 )

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます Perl Perl 5.8 CPAN モジュールは自由に Capistrano でまとめてインストール

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます はてなフレームワーク M + C V は基本 TT / H:T:Pro (JSON / YAML) mini httpd (server.pl) スケルトンジェネレータ DI Pluggable

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます Hatena Framework Apache Trans Handler Access Handler Engine Factory Engine Function … PageMaker Factory PageMaker Content Maker Content Maker … Object Oriented Perl Module 各種処理(あれやこれや) HTML 生成 ( associate object )

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます Model - Hatena2::TableObject ORM + Array like Ruby my $bookmarks = App::Bookmark->search( where => ["name = ?", 'naoya'], order => 'id desc', with => 'entry', ); print $bookmark->collect(sub { $_->entry->url })->join("\n");

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます はてなフレームワークの公開 ? やろうやろうと思ってたら時期を逃した

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます Ruby Rails dRuby ブックマークの一部機能 はてなセリフ はてな SNS

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます JavaScript / ActionScript JavaScript 部 prototype.js ( 老 ) MochiKit ( 若 ) Flash 重要 flv プレイヤーとか 2.0 時代の...

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます 低レベル層 C / C++ Apache modules XS modules 自社開発のツール、ミドルウェア

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます Perl にこだわるか ? 技術を一つに絞る利点よりも、幅が広が ることにより得られるメリットが大きい フレームワークの普及などにより人材の 交換コストは昔ほど高くない Perl プログラマは Ruby が嫌じゃないけ ど Ruby 厨は Perl が嫌

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます Capistrano ベリー便利 % ruby bookmark/script/switchtower -e users shell cap> uptime [establishing connection(s) to...] [ XXX] 13:35:20 up 121 days, 5:10, 1 user, load average: 1.89, 1.65, 1.09 [ XXX] 13:35:20 up 121 days, 5:12, 1 user, load average: 1.88, 1.40, 0.89 [ XXX] 13:35:19 up 121 days, 5:08, 1 user, load average: 1.98, 1.40, 0.90 [ XXX] 13:35:20 up 109 days, 13:54, 1 user, load average: 1.53, 1.33, 0.90 [ XXX] 13:35:22 up 121 days, 5:18, 1 user, load average: 1.41, 1.47, 1.15 [ XXX] 13:35:20 up 109 days, 13:52, 1 user, load average: 1.88, 1.43, 0.93 command finished cap> ps auxw | grep httpd | wc -l [ XXX] 26 [ XXX] 31 [ XXX] 25 [ XXX] 27 [ XXX] 29 command finished

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます 監視 Observer like Plagger Notify::IRC Notify::Mail Nagios nagios-bot POE

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます ハードウェア #1

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます ハードウェア #2 サーバーが増えてきた (300 台弱 ) データセンター引越し さくらインターネットへ

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます LVS

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます LVS って ? Linux Virtual Server ipvs Linux カーネル組み込みのロードバランサ ipvsadm

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます LVS (ipvsadm) % sudo /sbin/ipvsadm -Ln -t :3306 Password: Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP :3306 lc -> :3306 Route > :3306 Route > :3306 Route > :3306 Route > :3306 Route

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます LVS + keepalived keepalived LVS の冗長化 (VRRP) Real Server の稼動監視 ipvs のフロントエンド

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます LVS + keepalived 図 ipvs + keepalived#1 Real Server#1Real Server#2Real Serve#3 ipvs + keepalived#2 VRRP ACTIVEBACKUP TCP CHECK

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます LVS++ DSR (Dynamic Server Return) も可能 バランシングアルゴリズムもいろいろ lc (least connection) 負荷がほとんどない

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます DSR LVS Real Server クライアント VIP RIP

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます keepalived++ 2 台 LVS を用意すればどっちかが壊れても 勝手に自動復帰できる (VRRP) Real Server が死んでも勝手にバランサ から外してくれる Real Server のチェックは自前のスクリ プトでも可能

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます LVS-- いくつかのソフトを組み合わせて使うの で操作を覚えるのが面倒 ( 難しくはない ) ipvsadm keepalived iptables DSR してるとネットワークパケットの動 きが特殊なのでちゃんと理解してないと はまる Martian Source 問題

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます MySQL の手前に LVS スレーブ群への振り分けを LVS に任せる

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます メリット #1 Perl 側から見ると DB 群が大きなスレーブ 群に見える (Flickr の中の人も言って いた ) Perl が LVS 以外のアドレスを知らなくてい い DB の追加 / 削除をアプリケーションを考慮せ ずに可能 ウェブアプリケーションの再起動必要なし

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます メリット #2 負荷にあわせて分散できる 分散アルゴリズム色々 うちでは lc or wlc (wlc は重み付けを加 えられる ) Perl から MySQL の負荷を低コストに知 るのはおそらく難しい

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます メリット #3 故障したリアルサーバーを確実に切り離 せる Perl でやるとアプリケーションと稼動監視 が切り離せてないため、予想しない問題が起 こりやすい LVS の品質は高い

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます メリット #4 Perl に依存しない 仮に Ruby やそのほかの言語から接続する場 合でも振り分けのロジックは気にしなくて良 い

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます 使用感 便利、丈夫 メンテナンスコストが下がった サーバー構成の変更に強くなった ノウハウは結構必要 ネットワーク周りではまりがち 今のところ商用製品要らず 普通に zsh と vim でメンテとかできて◎

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます おすすめ

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます 開発体制

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます 開発者と企画者 開発者が企画 / 運用 新しいことの正しさは本人にしか分からない 苦手なことは人の手を借りられる デザイン ユーザインタフェース ハードウェア、負荷分散

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます 開発者のモチベーション 新しい機能を思いついたらおもむろに でかい機能は合宿などで 重い腰をあげられるかどうかがすべて 不具合などは見つけたら直す Web App はてなアイデア " 自分の頭で考えろ "

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます 生産性を高めよう 会議 less フリーアドレス デュアルモニタ購入サポート ノート PC ( ポケット 1 個の法則 ) 自宅オフィス / 離れオフィス 休日選択制 ( 水 or 土 ) 20% ルール g.hatena.ne.jp + IRC

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます サービス開発者の哲学 正しいことはあなたにしか分からない。 それが正しいかどうかは自分の手で証明する Show us the CODE 自分の頭で考える。自分を信じる。 半年続けると流行るの法則。継続は力。 「はてならしさ」 スルー力なんて要らない。

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます まとめ 最近のシステム構成を紹介しました。 日々改善しております。 ソフトでがんばるのでも結構いけます。 LVS は激しくおすすめです。 プログラマのモチベーションは会社の原 動力です。

© 2006 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます Thanks!