タグ

ブックマーク / wazanova.jp (39)

  • Prometheus: Go言語で書かれたモニタリングシステム - ワザノバ | wazanova

    https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Prometheusは、SoundCloudが中心となって開発を進めているオープンソースのプロジェクトDockerの社内でもメインのモニタリングシステムとして利用されているようです。 各社のブログのエントリーから、その特徴をまとめると。 多元データモデルとそれを活かす柔軟なクエリ言語 全てのデータにタイムスタンプのある、OpenTSDBに準じたデータモデル。 http_response_500_totalやhttp_response_403_totalなどHTTPレスポンスのステータスごとに用意しなくても

  • エンタープライズ向けにPlay + Scalaを活用する - ワザノバ | wazanova

    ウォルマートカナダの開発を担当したKevin Webberが、エンタープライズ向けの開発を前提としたPlayフレームワーク + Scalaの利用について、講演しています。 まずUIまわりのアーキテクチャについて、PlayをAPIとして利用するパターンと、Playを複数のSPA (Single Page Web Application)のホストとするパターンの二つを紹介。 1) UIを物理的に分ける 構成図例(ビデオ 6分40秒時点) PlayフレームワークをRESTful APIとして使う。Playにはフロント側のコードを置かない。各UIは、Play APIのクライアントという位置づけになる。 この場合のUIの選択肢は、 JavaScriptフレームワーク、HTML5/CSS/Javascript etc. ネイティブモバイルアプリ 標準的なwebプロトコルで通信できるものであれば何でもあ

    y_uuki
    y_uuki 2015/06/16
  • Engine Yard: 自分でやるのとPaaSを利用する場合の具体的な違い - ワザノバ | wazanova.jp

    https://blog.engineyard.com/2013/using-a-platform-as-a-service-vs-doing-it-yourself PaaSとは具体的にどの範囲のサービスを提供してくれるのか?自分でやるのとどれくらい違うのか?の比較。Engine Yardの宣伝視点であるので割り引く必要がありますが、網羅的にまとまってます。eBookで作業項目詳細を確認できます。 開発環境の設定 (2-4日 vs 45分-1日) アプリ層をスケールさせる(1-2日 vs 20分) DB層をスケールさせる(1-2日 vs 20-40分) DBバックアップ(1-2日 vs ゼロ) ログ管理(2-3時間 vs ゼロ) 監視設定(1-2日 vs 3分) 時間外対応(1-2日 vs ゼロ)

    y_uuki
    y_uuki 2014/11/24
  • MongoDBの$150M調達で色々考えさせられたこと - ワザノバ | wazanova.jp

    http://www.bloomberg.com/news/2013-10-04/mongodb-becomes-king-of-nyc-startups-with-1-2-billion-valuation.html 10genが社名もMongoDBに変えてたことは知りませんでした。さて、同社が$1.2BのValuation (企業価値)で$150M調達ということですが、昨年、Githubが$750Mのvaluationで$100M調達したのに続き、オープンソースがベースになってる会社で大型資金調達が成功する事例が続いてますね。  MongoDBはHacker Newsで取り上げられる度に驚くほどネガティブコメントを集めてるのですが、今回も例にもれず、この資金調達のニュースには219件のコメントがつき、トップに掲載されてる(おそらく掲載順ロジックはUpvoteの数なので、一番人気のコメン

  • Goと大規模分散システムの相性 - ワザノバ | wazanova

    Googleで分散システムの開発をてがけ、現在はソーシャルメディア mttr.toを立上げ中のBen Sigelmanが、Goを分散システムの開発に利用する場合の、メリットおよびチャレンジについて講演しています。 分散システムのあるべき姿 分散システムの勘所は、最上位ビットをパフォーマンス的にも構造的にもうまく扱うことができるかというのがポイント。その効果が一番大きい。スループットの改善のような詳細は、自分もGoogleでそれに取組んだけれども、9ヶ月くらいたつとハードウェアの性能で解決される可能性が高い。また、構造的にというのは、なるべく小さなコンポーネントを組み合わせたシステムにできるかという意味。 Goのよいところは、 両方、とくに後者によい。Railsだとアプリを複数個用意して並列処理するのは大変だったけど、Goだとシンプルにできて、標準ライブラリも読みやすいとかなどなど。パフォー

  • Pinterestをスケールさせる中で学んだこと - ワザノバ | wazanova

    https://www.youtube.com/watch?v=jQNCuD_hxdQ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 PinterestのMarty Weinerによる goto; conference 2014の講演。 「webサイトどうやってつくるの?」という創業期から、現在に至るまで、段階的にテクノロジースタックがどう進化したか。 現在のPinterestのシステムアーキテクチャの全貌。 個別のテクノロジーの選択理由。 などを語った45分のビデオですが、goto; conferenceのサイトからスライドのPDFをダウンロード(初日の10:20のコマです。)できるので、そちらを見ていただいてもわかりやすいかと。 「サイトが落ちてしまうのである意味自然に学ぶことができてしまった。

  • Rustのあれこれ - ワザノバ | wazanova

    https://air.mozilla.org/bay-area-rust-meetup-august-2014/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 Bjorn Tiplingが各プログラミング言語を武器に例えた、"If programming languages were weapons" というエントリーが秀逸ですね。公平に、どの言語も褒めていないところがよいです。どれも面白いので全部眺めていただければと思いますが、その中でRustは、 "Rust is a 3D printed gun. It may work some day." と紹介されています。 とはいえ最近、 Rustに関する発信をよく見かけるようになったと思ったら、バージョン 1.0が近いのですね。"work some

  • APIの後方互換性を保つ工夫 - ワザノバ | wazanova

    Stripeの決済サービスの成長は、APIが使いやすいというエンジニアの間での評判がかなり寄与したと記憶しています。 同社のAPIは現在、 エンドポイント: 106 バージョン: 65 APIクライアント: 6 ユーザ企業を煩わせることなく後方互換性をしっかり担保したいという方針を守るための工夫を、Amber Fengが紹介してくれています。 1) ユーザが利用するバージョン情報の把握 ユーザ企業が最初にAPIコールをしたときのバージョン情報をStripe側で保管している。それ以降、ユーザ企業はバージョンのことを意識することなく、最初のバージョンのAPIを利用し続けることができるようにしている。ユーザ企業側でバージョンの変更をしたい場合は、ダッシュボードでの設定や、リクエストヘッダーに情報を付加することで可能。 2) バージョンと機能の整合性 YAMLファイルでバージョンとその振舞いの情報

    y_uuki
    y_uuki 2014/10/12
  • Rustを学びシステムレベル言語を理解すること - ワザノバ | wazanova

    https://www.youtube.com/watch?v=ySW6Yk_DerY Rustについては「Rustのあれこれ」で少し触れましたが、Yehuda Katzが、Skylightの一連のブログとGoGaRuCo2014の講演で、「ハイレベル言語のプログラマーがシステムレベルの言語を学ぶチャンス」という観点で紹介しています。 主なポイントとしては、 プログラミング言語の特性は変わることがないとか、プログラミング言語のパフォーマンスと生産性は常にトレードオフであるという考え方は、JavaScriptにおいて、生産性が少し改善されつつ同時にパフォーマンスが大きく向上してきたという事実から、必ずしも正しくはない。 Rustは、セグメンテーション違反が起きないという意味での安全性と、どこにメモリを置くか直接コントロールできる仕様を両方兼ね備える。 Rustを学ぶということは、ハイレベル言

    y_uuki
    y_uuki 2014/10/10
  • Twitterのキャッシュを支えるRedis - ワザノバ | wazanova

    https://www.youtube.com/watch?v=rP9EKvWt0zo 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 TwitterのYao Yuが、大規模サービスのキャッシュにおいてRedisを活用する取組みについて紹介しています。 1) Redisを採用している理由 キャッシュだけで、ストレージとしては利用していない。 主なところでは、Twitterのタイムラインで利用している。ホーム画面であれ、ユーザ画面であれ、タイムラインはTweetのインデックスなので、key/valueストア型のRedisを利用するケースとして最適。 以前はmemcachedを使っていたが、問題になったのは、タイムラインでおきるread/writeは、(ユーザが閲覧している範囲に追加反映するということなの

  • サイトパフォーマンス: 1000msを目指す取組み - ワザノバ | wazanova

    Guardian誌のPatrick HamannがLondon Web Performance Meetupで、モバイルサイトのパフォーマンス向上の取組みについて講演しています。 まずは、Web Performance TodayのeCommerceに関する調査で、 ユーザの期待するページ読込み時間は、2000年の8秒から、2012年には2秒を切るレベルまで下がってきている。 ことを挙げ、1秒以下を達成するには、 3Gネットワークでは、DNS Lookup / TCP Connection / HTTP Request & Responseで 600ms (Guardianのある英国ではそれ以上)はかかる。残りの400msで、Server Response TimeとClient-side Renderingを最適化する必要がある。 というGoogleのPageInsightの分析結果を紹

  • RailsアプリをDockerにデプロイするときにGemfileを変更してなければBundle Installをスキップする方法 - ワザノバ | wazanova

    http://ilikestuffblog.com/2014/01/06/how-to-skip-bundle-install-when-deploying-a-rails-app-to-docker/1 comment | 0 pointsBrian Moreartyがタイトルの内容についてまとめています。 Dockerでは、Railsアプリを、依存関係(正しいRubyのバージョン、利用するgemなど)を組み込んだまま、コンテナにデプロイできる。アプリをそのコンテナでテストし、番環境のホストにアップできる。事前にメモリを確保する必要がないので、かなり軽い感じのVMのようである。このポストではコンテナ作成の詳細には触れないが、簡単に説明すると、コンテナをセットアップするスクリプトであるDockerfileをつくって、docker buildで実行するというステップ。 Dockerは、最初

  • Deis: DockerベースのHeroku的PaaS - ワザノバ | wazanova

    Deisは、Heroku的なワークフローを実現する Docker/CoreOSベースのPaaSです。オープンソースのプロジェクトですが、既にOpDemandが運営会社になっており、同社はこれまでに約2.5億円の資金調達も完了してます。フルタイムでオープンソース開発を担当する正社員の募集も始まって、最新バージョンは0.9.1という段階のようですので、これから格的に立ち上がっていくのでしょうか。 Deisのクリエーターであり、OpDemandのFounderでもあるGabriel Monroyのが、dockdercon 2014でDeisのこれまでの進捗を紹介しています。 Deisは最初のマルチホストDocker PaaS。最初はPythonで書いていたが、最近はGoが中心。 フルタイム5名 + ~40名のコントリビューター すぐにプロトタイプをだしてコミュニティからのフィードバックをもらお

  • Dockerイメージの最適化 - ワザノバ | wazanova

    http://www.centurylinklabs.com/optimizing-docker-images/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 米国キャリアのリサーチ部門であるCenturyLink Labsが、 Dockerイメージは1Gを超えることがよくあって、ローカルで実験しているうちはよいが、ネットワークを介して頻繁にやり取りしはじめると、サイズが問題になる。 ということで、dockerイメージのサイズを減らす取り組みについて、ブログで紹介しています。 Layers レイヤの構成の詳細については、Dockerのドキュメントを参照されたし。議論のポイントとして理解しておかなくてはいけないのは、Dockerfileでの各操作の結果、新しいイメージのレイヤが順次生成されるというこ

  • 大規模分散システムのレスポンスを向上させる工夫 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=1-3Ahy7Fxsc 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約2時間前 GoogleのJeff Dean(Senior Fellow, システム & インフラグループ)による、Velocity Conference 2014のキーノートスピーチです。 Jeffは、オブジェクト指向言語によるプログラムの最適化で博士号を取得。DEC/Compaqの研究所の勤務をへて、1999年にGoogleに入社。以降、BigTable / MapReduce / Spanner / Google Translate / Google Brainなど、同社の大規模分散システムの構築に一貫して携わってきています。 例えば、検索結果のレスポンスを向上させるには、そ

  • Flickr: Redis Sentinelの導入 - ワザノバ | wazanova

    http://code.flickr.net/2014/07/31/redis-sentinel-at-flickr/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 36分前 Flickrエンジニアブログで、Redisのマスター障害復旧を自動化するためにRedis Sentinelを導入した経験を紹介しています。 Redisのユースケース 番サービスに影響を与えないように、写真のアップロード / ユーザ通知 / メタデータの編集などの重たいタスクは、Redisのキューに送られて、非同期でオフライン処理されている。 クリティカルなタスクなので、99.9999%が処理(100万件のうち1件以下)され、99.995%の時間は稼働(月に停止が2分を超えない)させる必要がある。 もし、マスターが落ちると、復旧は手動対

    y_uuki
    y_uuki 2014/08/01
  • Facebook: MySQL Pool Scannerでの徹底した自動化 - ワザノバ | wazanova.jp

    https://www.facebook.com/notes/facebook-engineering/under-the-hood-mysql-pool-scanner-mps/10151750529723920 Facebookがエンジニアブログで、MySQLの運用を自動化している事例を紹介しています。このレベルまでくると、意思をもった大規模なロボット群みたいで、すごいですね。前半はマスタ/スレーブの基的な自動化の話ですが、後半ではオペレーションの自動化ロジックをどのように自動化して増やすかという手法まで言及してます。 FacebookのMySQL DBクラスタは、2つの大陸にまたがる複数のデータセンタにある数千台のサーバで構成されている。通常、DBアドミンが担当するルーティーンワークは、MySQL Pool Scanner (MPS) で自動化されている。 1) DBノードを詳しく

    y_uuki
    y_uuki 2014/05/05
  • Stack Overflowのアーキテクチャ - ワザノバ | wazanova

    http://www.youtube.com/watch?v=OGi8FT2j8hE1 comment | 0 pointsドイツのハンブルグで開催されたDeveloper Conference 2013で、Stack Overflowのアーキテクチャが紹介されてます。 Stack Overflowのネットワークは、110 Q&Aサイト、430万ユーザ、質問760万件、回答1360万件、月間5億6千万ページビュー サーバ25台: ウェブサーバ11台(内9台でほぼトラフィックさばく)、ロードバランサ1台 (+ 予備1台)、DBノード4台、アプリサーバ3台、検索サーバ3台(Elasticsearch)、Redisサーバ2台(キャッシュ、メッセージング) 毎秒質問が投稿されているので、トップページには都度最新の質問を掲載するように更新はできないが、ユーザの回答パターン、質問閲覧パターン、好みのタ

  • YouTube & Go言語: MySQLをパワーアップするVitess - ワザノバ | wazanova

    http://www.youtube.com/watch?v=qATTTSg6zXk 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約3時間前 YouTubeのシステムアーキテクトであるSugu SououmaraneのFOSDEM 2014での講演です。スライドはこちらからダウンロードできます。 1) Vitessとは Vitessは大規模な番環境でMySQL DBを効率的に利用するためのオープンソースプロジェクトです。概要はプロジェクトゴールのページ にまとまってます。 MySQLは機能が豊富だがスケールさせるときは苦労する。一方、NoSQLはスケーラビリティには問題がないが、アプリケーションが複雑になるとできることに限界があるのがネックになる。セカンダリインデックス、joinsなどがサポートされていない。

  • Gilt: 単一のRailsアプリから複数のScalaアプリへの移行 - ワザノバ | wazanova

    http://tech.gilt.com/post/73434506726/scaling-gilt-at-gilt-nyc-tech-talks-comes-to-2-park 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 GiltのYoni Goldbergが、同社のアプリが、RailsベースからScalaに移行しスケールしてきた経緯を紹介しています。 Videoがでたら是非紹介したいと思っていたネタですが、1ヶ月待ってもアップされないので、ひとまずあきらめてスライドの紹介だけになります。もしビデオがアップされたら改めて更新します。 2007年の典型的なスタートアップ。サービスをとにかくなるはやでローンチするために、当時盛り上がってきていたRailsを採用。 2009年、フラッシュセール開催時の

    y_uuki
    y_uuki 2014/02/18
    "監視: New Relic / Boundary / Graphite / openTSDB"