タグ

ブックマーク / blog.cybozu.io (4)

  • バグゼロを実現した話とその後の顛末 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。好きなメソッドは emptyIfNull です。 僕は、自社クラウドである cybozu.com のミドルウェアを開発するチームで働いています。具体的には、検索サービスやファイルサーバー、非同期処理用ワーカー、セッションマネージャーなどなどを提供しています。 僕がこのチームに来たのは数年前ですが、当時はバグの多いプロダクトでした。今はすべての既知のバグを直し、残存不具合件数が 0 件、つまりバグゼロな状態になりました。また、バグゼロを実現してから 2 年ほど経過していますが今もその品質を保っています。今回はこのバグゼロを実現した方法と、その後の顛末について記そうと思います。 以前のコード 数年前に提供されていたこのミドルウェア群は、はっきり言って、バグの塊のようなプロダクトでした。 当時のコードは保守性とは程遠い

    バグゼロを実現した話とその後の顛末 - Cybozu Inside Out | サイボウズエンジニアのブログ
    gin0606
    gin0606 2016/05/19
    テストコード書き続けたのチームでやったのか一人でやったのか気になるな
  • 半年かかったバグ調査の顛末は - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 今回は原因究明に半年以上かかったバグ調査の紹介をいたします。 弊社はクラウドサービスcybozu.comを提供しています。 クラウドサービスでは障害対策のためのデータバックアップやレプリケーションが必須です。 現在ラボの星野がメイン、私はサブとして弊社サービスでの利用を目指した次期バックアップシステムWalB(GitHub)を開発しています。 WalBは、ファイルシステムとdiskの間に入ってIOを全て記録するブロックデバイスとIOのログを管理するツールからなるシステムです。 詳細はリンク先をごらんください。 発端 去年はラボ内の開発環境でテストを進め、社でテスト運用を開始するのが目標でした。 ところがラボでテストを開始して4カ月後の2015年4月、不正なlogpackが検出されました。 logpackとはWalBで用いられるデータフォーマットの一つです。

    半年かかったバグ調査の顛末は - Cybozu Inside Out | サイボウズエンジニアのブログ
    gin0606
    gin0606 2016/01/08
  • 完璧な監視システムの作り方 in cybozu.com - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Hazama チームの萩原(@hagifoo)です。 ハードウェアは故障し、ソフトウェアにはバグがあり、運用ではミスがおきるもの。もちろん、障害が発生しないのが理想ですが人間が作ったものに完璧はありません。そこで、障害の前兆や発生を捉え、その詳細を運用チームに知らせるための監視システムが必要となります。cybozu.com でも以下のようにありとあらゆるものを監視するシステムを構築し日夜監視を行なっています。 今回は、そんな cybozu.com の監視(モニタリング)システムについてお話しします。 cybozu.com と障害 監視システムの設計 3つの監視 外形監視 症状監視・リソース監視 ログ監視 その他の監視 モニタリングフレームワーク 誰が監視者を監視するのか? まとめ cybozu.com と障害 まずは、監視対象である cybzou.com について説明します。

    完璧な監視システムの作り方 in cybozu.com - Cybozu Inside Out | サイボウズエンジニアのブログ
    gin0606
    gin0606 2013/10/29
    ネットストーキング的な話かと思った
  • IntelliJ IDEAを使ってJava6のコードをJava7に変換する - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone開発チームの田中裕一(@yuichielectric)です。 新MacBook Airを買ったら、奥様になんでRetinaじゃないのに買ったのと詰められる毎日です。 さて、kintoneプロジェクトでは、つい先日JDKのバージョンを6から7に上げる作業を行いました。 Java7では、言語自体に以下のような機能追加が入っています。 ダイアモンド記法 switch文でString型をマッチ 複数の例外をまとめてcatch try-with-resources 等 これらの新しい構文を使うと、これまで以上に簡潔にコードを書くことが出来るようになりますが、既存のコードが大量にあるため、手作業で全てを変更することは手間がかかりますし、ミスも起きてしまいそうです。 そこで、今回は既存のJava6で書かれたコードをツールを使って自動的にJava7の新しい構文に起きかえる方法を紹

    IntelliJ IDEAを使ってJava6のコードをJava7に変換する - Cybozu Inside Out | サイボウズエンジニアのブログ
    gin0606
    gin0606 2013/06/24
  • 1