タグ

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

  • Facebookの継続的デプロイメント - ワザノバ | wazanova

    https://www.facebook.com/publications/514128035341603/ 1日500件、3,000ファイルに及ぶ番アップ フロントエンドのコードは1050万行、内850万行がPHP 開発エンジニア1,000名とリリースエンジニア3名 QAやテスターは存在しない 自分でプロジェクトを選ぶ & 自己責任のカルチャーが強い。 1/3のファイルが一人のエンジニア、1/4が二人のエンジニアでメンテされている。 フロントエンド番コードベースは一つのものを共有 日常業務ではローカルのgitを利用。番アップ可能になれば、中央のレポジトリにマージして、それからSubversion(過去の経緯で使っている。)にコミットする 同じエンジニアがコードをコミットする間隔は中央値で10時間 番にプッシュする前に、担当エンジニア自身でのユニットテストを終え、同僚によるコード

    lanius
    lanius 2013/12/04
    「過去に本番にあげたコードがどれだけ問題を起こしたかによって"Push Karma"が各エンジニアにはあり、この非公開のKarmaのスコアが悪いエンジニアのコードは念入りに確認される」。
  • Twilio: DropwizardサービスをJEEサーバにアップできるオープンソースライブラリ - ワザノバ | wazanova.jp

    https://www.twilio.com/engineering/2013/11/13/wiztowar/ Yammerが開発したJava製のRESTfulウェブサービスフレームワーク Dropwizard をTwilioは、「JEE 6/7を推してる人は強く反対するだろうけど」との前置き付きで、「Dropwizardのシンプルさと使い勝手に慣れたら、もうJEEサーバに戻れない。」と支持してます。 ちなみに、Dropwizardは、HTTPサーブレット (Jetty) / JAX-RS (Jersey) / Java Bean Validation (Hibernate Validator) などのJEE仕様のオープンソース部分をうまく取り込んだ仕組みで、スタンドアロンのJavaアプリが、別サーバなしで、数字計測 / 監視 / ヘルスチェックのライフサイクル管理ができます。Twilio

    lanius
    lanius 2013/11/28
  • Steve Sounders: webを快適にするためのPrebrowsing - ワザノバ | wazanova.jp

    http://www.stevesouders.com/blog/2013/11/07/prebrowsing/ Steve Soundersが自らのブログで、Prebrowsing (= Predictive browsing: 予想するブラウジング)を有効に活用する方法を紹介しています。 1) なぜPrebrowsingが必要になるのか? キャッシュを頼りにできないパターンはそれなりにある。 同じサイトに連続してアクセスしたときはキャッシュできるが、最初にアクセスしたときはキャッシュされない。 アンチウイルスソフトやブラウザのバグでキャッシュはクリアーされる。 他のサイトにアクセスしたとき、そのリソースが場所を確保するために、既存のキャッシュデータを消す場合がある。 69%のサイトはキャッシュヘッダーがないか、1日以内にキャッシュが無効になる。 次に同じサイトに訪問したときにはサイトが

    lanius
    lanius 2013/11/19
    prebrowsing, prefetch, prerender.
  • Valve: ハンドブックで新入社員を迎える - ワザノバ | wazanova.jp

    http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf Valveは、PCゲームプラットフォームSteamを運営し、先日、TV向けのゲームコントローラ(紹介ビデオ)も発表して話題になってました。 昨日のエントリー「Treehouse: 当にフラット、つまりマネージャーがいなくなった会社。そして個の時代がくるのか?」で、TreehouseのCEOのRyan Carsonがフラットカンパニーのコンセプトを導入するにあたり参考としたという、Valveの新入社員向けのハンドブックを一読してみました。 …Valve is flat…..we don’t have any management, and nobody ” reports to” anybody else…..we do have a Founder/Preside

    lanius
    lanius 2013/11/19
    「どこの電源にコンセントをさしたかでオフィスのどこにいるのかを表示する座席表が社内のウェブサイトにある」。
  • Facebook: 永続的key-value型高速データストアRocksDBをオープンソースで提供 - ワザノバ | wazanova.jp

    http://rocksdb.org/ RocksDBは、FlashSSDメモリ/RAMに高速でアクセスできる組込み型の永続的key-valueデータストアです。LevelDBのうえに構築されていてCPUコアがたくさんあるサーバでスケーラブルに実行され、高速のストレージを効率的に利用し、IO-bound / in-memory / write-once な作業をサポートします。 (GoogleのLevelDBは「Hood.ie: “noBackend & Off-line first” という考え方」でもちょっと話題にでてました。) 利用用途としては遅延を避けたいケース、例えば、 ユーザの閲覧履歴やステータスを保持するアプリ 大きなデータにすぐにアクセスしなくてはいけないスパム検知アプリ リアルタイムでデータにアクセスするソーシャルグラフ検索のクエリ Hadoopデータのキャッシュに利用し

  • Capturing: レスポンシブデザインにおけるパフォーマンスを向上させる - ワザノバ | wazanova.jp

    https://hacks.mozilla.org/2013/03/capturing-improving-performance-of-the-adaptive-web/ 先日紹介した、WebRTC: サーバのない世界でwebをつくり直す [Realtime Conf. 2013Real] の中でFeross Aboukhadijehが”Super Crazy Hack”と絶賛していたのがCapturing。Capturingは、Mobify.jsの主要機能で、リソースの読み込み前にDOMをコントロールできるクライアントAPIです。 基的な仕組みとしては、 <plaintext>タグをファイルの頭において、ブラウザがリソースをダウンロードしないようにする。<plaintext>タグをクローズしないので、その後に続くHTMLはplain textとして解析される。 リソースのダウンロード

  • Airbnb: バックエンド間の通信を支えるSmartStackをオープンソースで提供 - ワザノバ | wazanova.jp

    http://nerds.airbnb.com/smartstack-service-discovery-cloud/ Airbnbが同社のエンジニアブログで、Zookeeperとともに、クラウド分散環境におけるバックエンド間の設定変更の自動化を支えているSmartStackを紹介しています。 1) 他の選択肢の検討 DNS: クライアントのライブラリからDNSをネイティブに使う方法だと、プッシュができないことと情報伝播の遅延(キャッシュによって更に悪化)がネックになる。 中央でのロードバランシング: バックエンド間の通信をロードバランサーで集中管理するかたちだと、ロードバランサー自体もしくはルーティングレイヤの障害が大きなリスクとなる。また、F5などの一般的なハードウェアはクラウドでは使えない。AWSのElastic Load Balancingはpublic IPを介さなくてはいけない

    lanius
    lanius 2013/11/01
    Nerve, Synapse.
  • オープンソースのCTスキャナーと医療を革命的に変えるまでの距離 - ワザノバ | wazanova.jp

    http://www.tricorderproject.org/blog/towards-an-inexpensive-open-source-desktop-ct-scanner/ 2年程前から、医療と教育にネット関連の人が大挙して参入していき、実際のサービスがはじまる or 製品を見るまではどのように産業が変わるのかイメージがわかなかったのですが、最近は色々成果物がでてきてますね。 このブログで紹介されているCTスキャナーはまだ医療用ではなくて、スキャンする時間がかかる仕様にすることによって、安全の為に放射線量を自然界+少しだけαのレベルに抑えてます。人間や動物でなくてモノをスキャンしたデータを取得することに使えます。小型のプロトタイプは製作費なんと$200。大きなサイズのプロトタイプを見ると、病院にあるCTスキャナーがつくれそうですね。 試作は、3Dプリンタとレーザーカッターを駆使し

  • 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ノードを詳しく

  • Facebook: 自動で本番環境への再投入を準備してくれるWindex - ワザノバ | wazanova.jp

    https://www.facebook.com/notes/facebook-engineering/windex-automation-for-database-provisioning/10151551942243920 「Facebook: MySQL Pool Scannerでの徹底した自動化」で紹介したMPSと連携して、サーバを番環境に再投入する準備をしてくれる自動化システムがWindexです。サーバが修理対象かどうか、資産管理簿上でステータスがどうなってるかも、システマティックに確認してくれるのですね。すごい。世の中には、自分で確認して、エクセルにステータスを記入(もしくはその管理もきちんとできてない。)という会社が多いとは思いますが。。 Windexは、元々は、番サービスからはずれたサーバのデータをクリーンアップし、OSからMySQLまでを再インストール、そして設定を完

  • 猿が暴れてクラウドの障害に強くなるNetflixのシステム - ワザノバ | wazanova.jp

    http://techblog.netflix.com/2013/10/introducing-chaos-to-c.html歴史上の有名な開発プロジェクトからまなぶべきこと」をまとめていたときに、Videoの中で、ある大型ロケットエンジンの開発において、信頼性テストのために小型爆弾をエンジンの噴射口辺りで爆発させて耐性を調べた云々のエピソードが紹介されていて、更に続いて「ネット業界で同じようなことをやってるのはNetflixぐらいだ。」という説明がありました。その時は何のことだかよくわからなかったのでブログでは取り上げなかったのですが、今回見つけました。 以前紹介したように、北米のインターネットトラフィックの30%以上を占めるNeflixはインフラをAmazonに全面的に移行しています。クラウドに移行した後の学びとして、 自社データセンターの時は、個別のハードウェアインスタンスが障害

  • AngularJSの設計思想 [Google I/O 2013] - ワザノバ | wazanova.jp

    [Video] https://www.youtube.com/watch?v=HCR7i5F5L8c AngularJSのHype (盛り上がり感)があるようなので、GoogleのMisko HeveryとBrad GreenがGoogle I/O 2013でAngularJSの設計思想について語っているのを紹介します。 アプリ開発は、雛形構文(ボイラープレート)を利用しながらデータをブラウザとDBの間でやりとりさせるのが中心で、気づいてみると同じ雛形構文を書く作業をかなり繰り返している。コードを書いてる時間よりもコードを読んでいる方に時間がとられることも多い。この雛形構文を使った作業を極力減らして、アプリに付加価値をもたらすコーディング作業だけを抽出したいと思った。 コーディング作業が効率的になる構造が欲しかった。 フレームワークにテストを組み込むが、フレームワーク自身をきっちりテスト