タグ

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

  • 我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ

    どうも!アプリケーション基盤チームの横田(@yokotaso)です! kintoneなどで利用していたJavaフレームワークのSeasarのEOLに伴い、S2Daoからの脱却を試みたのですが、パフォーマンス問題や障害を発生させてしまうなど問題を多々発生させてしまいました。 同じ過ちを繰り返さないという強い決意のもと、今回の失敗をブログで公開いたします。 失敗をあえて公開する点で斬新かつ濃いブログ記事となっております! 失敗体験の公開は恥だが役に立つ! 移行先の選定の失敗 移行先として選定したプロダクトは Hibernate*1です。 Hibernateを選んだ理由としては Spring Framework を選定した Spring Frameworkで Interface + アノテーションでプログラミングするならSpring Data JPA が有力 JPAに準拠したのORMの中でも、H

    我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2016/12/28
    そのあと結局どうしたんだろ、 JPA 諦めたのかな?
  • HTTPパーサにおけるSSE4.2最適化の威力と注意点 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、サイボウズ・ラボの光成です。 PicoHTTPParserは@kazuhoさんたちが開発している高速なHTTPパーサです。 同じ作者によるHTTPサーバH2Oにも使われています。 11月4日の開発ブログによると、その時点でNode.jsなどに使われているhttp-parserの10倍程度の速度を誇るそうです(現在はhttp-parserも速度向上しその差は縮まりました。それでも4倍以上の差があるようです)。 該当ブログにはその高速化のためのノウハウが書かれていて大変興味深いです。ただIntel系CPUに搭載されているSIMD命令は用いられていませんでした。今回、@kazuhoさんと一緒に文字列処理専用のSSE4.2を用いることで1.7~1.9倍の高速化を達成しました(Improving Parser Performance using SSE Instructions (in

    HTTPパーサにおけるSSE4.2最適化の威力と注意点 - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2016/08/08
    "SSE4.2 文字列処理専用命令"
  • するするさせたよ:サイボウズ採用情報のアニメーション - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、大阪開発部のブノアです。 この間、サイボウズの採用情報ページのアニメーションについてグーグルデベロッパーエキスパートの矢倉さんにツッコミを頂きました!今回はそのアニメーションをするするさせたよという話をしたいと思います。 経緯 4月頃、レンダリングパフォーマンス勉強会を社内で開催しました。東京開発部の鉄平がその話をツイッターで呟いたら矢倉さんにツッコミを頂きました。 社内でレンダリングパフォーマンス勉強会を開催中。will-changeの効果絶大なデモで会場がどよめいた。— teppeis (@teppeis) April 15, 2016 https://t.co/t2Irugs85V 「生まれたアプリは15万件」の動くアイコンのところが別レイヤーになってするする動くようになる日も近いということか https://t.co/ki5VSvbumY— Masataka Yakur

    するするさせたよ:サイボウズ採用情報のアニメーション - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2016/05/24
    chrome canary の devtools で experimental 機能を有効にすると CPU も throttling できるので、アニメーションは低スペックエミュレートでの確認もすると良いと思う。
  • 2015 年 脆弱性報奨金制度を振り返って - Cybozu Inside Out | サイボウズエンジニアのブログ

    Cy-SIRT の伊藤です。 2015 年にサイボウズにご報告いただいた脆弱性情報について、全ての評価が完了しました。 お時間をいただき申し訳ありませんでした。今日は、2015 年の最終結果についてご報告いたします。 定量情報 ※ 最終的に認定されなかった件数を含む場合:174 件 ※ 最終的に認定されなかった件数を含む場合:126 件 数値の見方 サイボウズでは脆弱性情報を、以下のフローで取り扱っています。 外部からお寄せいただいた脆弱性情報は、受付 > 検証 のプロセスを経て、脆弱性の認定手続きに進みます。受付および、検証のプロセスではお寄せいただいた情報が、脆弱性情報であるかどうかを判断しています。 「脆弱性報告件数」は、サイボウズが脆弱性情報と判断したご連絡の件数です。 「脆弱性認定件数」は、お寄せいただいた脆弱性情報の中から、脆弱性として認定した件数です。脆弱性情報がサイボウズに

    2015 年 脆弱性報奨金制度を振り返って - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2016/04/22
    118 件の直すべきバグを教えてもらえて、たった 446 万で済むなんてコスパ良いよなと思う。運営は楽では無いにせよ。
  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。アプリケーション基盤チームの横田です。 Javaの謎のパフォーマンス劣化にまつわる調査をしていたのですが、1ヶ月の苦労の末に原因がわかりましたので、報告させていただきます! 公開後に頂いたはてなブックマークでのご指摘・社内でのタイポ・読みにくいなどの指摘を受けてたので、謹んで修正させいただきます。 修正した内容につきましては、記事の最後を参照してください。 忙しい人のためのまとめ jdk-7u4以降のjdk-7 *1 でJavaのパフォーマンスが劣化する謎の現象 CodeCacheの容量限界に近づくとJITコンパイラを停止してコンパイルしたコードを捨てる機能が原因だった 起動オプションで回避できるので、長期運用するときは -XX:-UseCodeCacheFlushing, -XX:ReservedCodeCacheSize=128m をつける 上のオプションを設定した時に、C

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
  • アーキテクチャ刷新プロジェクト「Neco」の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山です。 今回は開発部と運用部のメンバーが協力して進めている cybozu.com やサイボウズ Live のアーキテクチャ刷新プロジェクトNeco」について紹介します。 Neco を 3 行で説明すると、 サイボウズのクラウドインフラのいけてないところを洗い出して、 5 年程度を目安に改善するつもりだけど、 やりたいことが多すぎるので、We are hiring! で済んでしまうのですが、それだけでは面白みに欠けますので、いけてない内実を暴露しながら解説いたします。 サイボウズはクラウド 5 年生 正確に言うとサイボウズ Liveなど一部のサービスはもっと以前から取り組んでいたのですが、格的にクラウドサービスといえるインフラを構築してサービス提供を開始したのは今から 4 年前の 2011 年 11 月となります。そこでオープンしたのが cybozu.co

    アーキテクチャ刷新プロジェクト「Neco」の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2016/03/11
    ほんとうに正直な話だった。
  • React.js meetup #3 を開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone プログラマの前田です。 2月23日(火)サイボウズ東京オフィスで React.js meetup #3 が開催されました。今回はこのイベントの各セッションの内容を簡単にご紹介します。なお、当日の様子は togetter でもまとめられています。 React.js meetup とは その名の通り React についての meetup で、今回は3回目になります。当日は80人を超える参加者で大変盛り上がり、React の注目度が感じられる meetup でした。 Evolving Complex Systems Incrementally 最初は @cpojer さんによる発表から始まりました。JavaScript をモダンなコードに変換するための jscodeshift を紹介する話だったと思います。全編英語で内容をすべて把握できたわけじゃないのですが、書き方が

    React.js meetup #3 を開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ
  • もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちわ、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。好きなみかんは紅マドンナです。 今回は、サイボウズのサムネイル事情について記事を書きたいと思います。サイボウズに限らず通常の Web アプリケーションでもサムネイル作成はよくあると思いますが、ハマりどころが多く涙しているサムネイリストも多いかと思います。これからの時代を生きるサムネイリストが快適なサムネイルライフを送れるよう、知見を共有したいと思います。 弊社では画像変換ツールに ImageMagick を用いており、従って知見は ImageMagick 固有のものがほとんどです。 画像比較は人間の眼で行うべし サムネイル周りに何か修正を入れたら修正前後の画像を比較しましょう。機械によるバイト列の比較では画像の良し悪しがわかりません。頼れるのは人間の眼だけです。肉眼で確認しましょう。 比較できるツールを作ると良

    もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • nginx の設定をレビューするときの観点をまとめてみた - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。 インフラチームの野島(@nojima)です。 チームのメンバーに nginx の設定について気をつけるべき点を共有するために、レビュー観点を書きました。 せっかくなのでここで公開します。 ほとんどの項目は自分やチームのメンバーの実体験に基いています。 レビュー観点 server server_name が他のやつと被っていないか。 listen する IP アドレスが同じ場合、server_name で区別できないといけない。 TLS を使う場合、SNI をサポートしないクライアントでは TLS 用の設定が default_server のものが使われる点にも注意。 TLS を使う場合、listen ディレクティブに ssl オプションを書いているか。 location location のマッチの順番に注意 正規表現の location は前方一致の location より

    nginx の設定をレビューするときの観点をまとめてみた - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2015/11/27
  • CODE BLUE 2015 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 私は10月28, 29日に東京の新宿ベルサール新宿グランドで開催された情報セキュリティ国際会議CODE BLUEに参加、発表してきました。 参加者が600人を超える大規模な会議でした。 ここでは参加した中からいくつかの講演について軽くご紹介いたします。なお、詳細な資料は後日公開されるとのことです。 初日の講演から フローリアン・グルーノさんは「医療機器のセキュリティ」というタイトルで、病院で使われる医療機器の問題について講演されました。 医療機器は医師も患者も信頼しているにもかかわらず、セキュリティの観点を考慮していない製品が多く、今後は対策が必要だろうとのことです。 実際に、ファイアウォールが設定されていない、認証プロトコルが無い、古いOSを使っていて攻撃するとあっさりクラッシュするなどの例が紹介されました。 西村宗晃さんは「Firefox の倒し方」という

    CODE BLUE 2015 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Etsyを支えるパフォーマンスアラートの技術 ~Velocity Conference 2015レポート #1~ - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!kintone 開発チームの田中裕一(@yuichielectric)です。 O'Reilly Mediaがサンタクララで開催したVelocity Conference 2015に僕と佐藤鉄平(@teppeis)の2人で参加してきました。これから何回かに分けてそれぞれが面白いと思ったセッションの内容を紹介していこうと思います! Velocity Conferenceとは O'Reilly Mediaが主催しているカンファレンスで、高速でスケーラブルで価値のあるサービスを作るための方法論がテーマです。 もともとは、技術的なテーマが主だったようですが、最近はそういったサービスを開発するために必要となってくる、継続的インテグレーションや継続的デリバリーの手法や、アーキテクチャ(流行りのmicroservicesの話題も幾つかありました)、開発プロセス、組織論(DevOps絡みの話題が

    Etsyを支えるパフォーマンスアラートの技術 ~Velocity Conference 2015レポート #1~ - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2015/06/09
    logster + graphite + nagios か。
  • 遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木です。 先日、アプリケーションサーバーが応答を返さなくなるトラブルに遭遇しました。 今回はその時のトラブルの原因と対策の顛末についてお話しようと思います。 現象 アプリケーションサーバーが突如応答を返さなくなりました。 現象が発生したアプリケーションサーバーのスタックトレースを見ると、あるスレッドの先頭が上記のようになっていました。 "qtp258153142-514386" prio=10 tid=0x00007f40b8dbf000 nid=0x7b4e runnable [0x00007f415ccb0000] java.lang.Thread.State: RUNNABLE at java.util.regex.Pattern$Loop.match(Pattern.java:4692) at java.util.regex.Pattern$G

    遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2015/05/12
  • クラウドを支えるこれからの暗号技術 - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 私は先月のDevelopers Summit 2015で、「クラウドを支えるこれからの暗号技術」という講演をいたしました。そのとき、近いうちに詳細なテキストを公開する予定と申し上げました。その準備ができましたので報告いたします。 講演と同じタイトル『クラウドを支えるこれからの暗号技術』のpdfgithubから取得できます。 2015/6/21追記。このテキストが秀和システムから出版されました。 表題の講演は、主に2000年に入ってから登場した新しい暗号技術の紹介がメインです。そのときのプレゼン資料は3月の時点で4万5千ビューを超えていて、デブサミ資料の中でもかなり上位に入る閲覧数のようです。技術者の暗号に関する関心が高いことを伺わせます。 しかし一般向けの暗号のテキストは、公開鍵暗号の一つであるRSA暗号やElGamal暗号ぐらいしか詳しい原理が記されていな

    クラウドを支えるこれからの暗号技術 - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2015/03/24
    凄い資料だ。。
  • JavaScriptをClosure CompilerのADVANCEDモードに完全対応させるその方法! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。会社を抜けだしてiPhone5を予約しに行ったら熱中症になりかけたkintone開発チームの天野(@ama_ch)です。 kintoneでは10万行以上のJavaScriptが動いており、ライブラリにはClosure Libraryを利用しています。この規模になると、1ページあたりで読み込むjsファイルの容量が数MB単位(!)になってしまいます。そこで、通信量を減らすためにClosure CompilerでJavaScriptをミニファイしています。今となっては特に珍しい話ではないですね。 ところで、Closure Compilerの最適化レベルには3段階あるのをご存知でしょうか。 ・WHITESPACE_ONLY コメントとホワイトスペースの除去など ・SIMPLE_OPTIMIZATIONS(デフォルトレベル) WHITESPACE_ONLY に加え、ローカル変数のリネーム

    JavaScriptをClosure CompilerのADVANCEDモードに完全対応させるその方法! - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2014/11/01
    ADVANCED と JS レベルでの圧縮(minify) とトランスポートレベルでの圧縮(gzip) の話。
  • 完璧な監視システムの作り方 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 | サイボウズエンジニアのブログ
  • 風が吹けばジュンク堂で「機械学習の学習」 - Cybozu Inside Out | サイボウズエンジニアのブログ

    先週の木曜日(*1)、ジュンク堂書店池袋店で行われたトークセッションに、サイボウズ・ラボのメンバー3人が登壇者として参加してきました。題して「今度こそわかる!? PRMLの学習の学習」。 PRMLとは、人工知能の分野で世界的に有名な教科書、パターン認識と機械学習(Pattern Recognition and Machine Learning)のことです。「どうしてジュンク堂でPRML?」「学習の学習って何?」「で、なぜサイボウズ・ラボ?」——そこには、PRMLをめぐる1つのストーリーがあったのでした。 ジュンク堂池袋店で行われた「PRML同人誌 『パターン認識と機械学習の学習』(暗黒通信団) 刊行記念トークセッション──今度こそわかる!? PRMLの学習の学習」には、神嶌敏弘氏、naoya_t氏に加え、サイボウズ・ラボから光成滋生、中谷秀洋、竹迫良範の3人が講師として参加。木曜夜にも

    風が吹けばジュンク堂で「機械学習の学習」 - Cybozu Inside Out | サイボウズエンジニアのブログ
    Jxck
    Jxck 2012/10/18
    どこをとっても凄いな。。
  • 1