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

  • 安全な証明書自動更新のやり方 - Cybozu Inside Out | サイボウズエンジニアのブログ

    cybozu.com Cloud Platformチームのhsnとtomoです。今回はサイボウズで証明書更新の自動化を安全に行うための工夫をご紹介します。 背景 サイボウズではcybozu.comのサービスを提供するために数多くの証明書を取得し、管理しています。 今まではそれらをすべて手動で取得し、入れ替えを行っていました。 しかし、元来の運用ではいくつかの問題が浮上してきました。 手動更新の際は認証局によって更新手順が異なります。 具体的にはドメインの所有確認(DCV: Domain Control Validation)と証明書のダウンロード手順を、それぞれの認証局が独自に提供しています。 そのため、ドメインの更新手順書は複雑に長くなってしまいます。結果として更新の準備に時間がかかり、実施の際にミスも発生しやすくなっていました。 サイボウズでは証明書の有効期限が切れる1か月前に管理用の

    安全な証明書自動更新のやり方 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2022/08/28
    わいわい
  • 「それで、そのコンテンツに効果はあったの?」という問いに答える 〜CausalImpactを使った動画の効果分析〜 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、開発部データサイエンティストの山口です。 製品やサービスのユーザー向けにコンテンツを制作している方は、一度は以下のように考えたことがあるのではないでしょうか。 「このコンテンツは当に効果があったのだろうか?」と。 ここでは「コンテンツ」を「特定の認識・行動を、ユーザーに促す情報のまとまり(テキスト、音声、動画など)」を指すものとします。また、コンテンツの「効果」は「コンテンツの狙い通りにユーザーの行動が変化したこと」を意味するものとします。 多くの場合、コンテンツの視聴回数だけではユーザーの行動の変化までを知ることはできません。また、ユーザーの行動に変化があることがわかったとしても、それがコンテンツの効果なのか、別の要因によるものなのか、判別が難しい場合が多いでしょう。 この記事では、サイボウズが制作した製品の機能解説動画を例として、CausalImpactというパッケージ

    「それで、そのコンテンツに効果はあったの?」という問いに答える 〜CausalImpactを使った動画の効果分析〜 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2022/07/16
    わいわい
  • 2022年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    People Experienceチーム*1の酒井(@sakay_y)です。 2022年もエンジニア新人研修を行いましたので、軽い紹介と、講義資料および一部講義動画を公開いたします。 2022年のエンジニア研修について 講義資料公開(2022年版) モバイルアプリ開発 サイボウズのアジャイル・クオリティ MySQL - テストデータが偏るということ モブに早く慣れたい人のためのガイド テクニカルライティングの基 ソフトウェアテスト セキュリティ ソフトウェアライセンス 社内限定の講義や昨年と同じ講義について 最後に 2022年のエンジニア研修について 研修のコンセプトは例年とほぼ同じです。 誰に 新入社員メンバーに 何と言ってもらう 基礎的な知識/技術/ツールを学べた! 開発/運用部のチーム/人を知ることができた! スケジュールは以下のとおりです。(一部は、予定になります。) 講義期間

    2022年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2022/06/25
    わいわい
  • そのメール、本当に届いてる?Amazon SESの運用で得た監視プラクティス - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone.comのバックエンドエンジニアをしている@ueokandeです。 いきなりですが、メールって難しいですよね。 普段HTTPに慣れていると、メール周りのプロトコルの理解は難しく、トラブルにも見舞われることも少なくないです。 またメールプロトコルの性質上、メールを送った後にもトラブルは起こりがちです。 グローバル向けkintone.comはAWSで運用しており、メールの機能はAmazon Simple Email Service(SES)を利用しています。 この記事ではkintone.comのメール基盤の全貌と、Amazon SESを利用する上での運用プラクティスを紹介します。 kintone.comとメール kintone.comでは、ユーザーの招待やkintone上の更新を知らせるためにメールを利用し、メール送信は重要な機能の1つです。 kintone.comは

    そのメール、本当に届いてる?Amazon SESの運用で得た監視プラクティス - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2021/11/28
    わいわい。真似したい。
  • Folding@homeを通じてCOVID-19治療薬の発見に貢献します - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。Necoの@dulltzです。 サイボウズでは、オンプレミス機材の一部を活用してFolding@homeによるCOVID-19のタンパク質構造予測に貢献することにしました。 ご自身で動かしてみたいというかた向けに、我々が使っているKubernetesマニフェストも記載しているのでぜひご覧ください。 Folding@homeとは みなさんはFolding@homeを知っていますか? Folding@homeとは、タンパク質構造予測に必要な計算処理を、世界中の有志による分散コンピューティングで推進するプロジェクトです。 10年以上昔の話になりますが、PlayStation 3を活用したプロジェクトを覚えている方も多いかと思います。 最近Folding@homeのブログにて、COVID-19の治療薬開発に使われるタンパク質構造予測を行っているという旨の記事が公開されました。 FOLD

    Folding@homeを通じてCOVID-19治療薬の発見に貢献します - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2020/03/22
    わいわい。不謹慎かもしれないけど、システムを乗っ取ってFolding@homeを仕込んでいくアンチ(コロナ)ウイルスを謳うマルウェアが出てきそう。
  • お手軽Kubernetesクラスタ作成ツール "kind"の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Necoプロジェクトのsatです。今回はKubernetesクラスタお手軽に作れるkindというツールを紹介します。kindはKubernetes In Dockerの略です。 記事の要約 kindとはKubernetesクラスタを簡単に作れるツール インストール、およびクラスタ作成がそれぞれたった1コマンドを実行するだけで完了 他の類似ツールには存在しないマルチノードクラスタ作成機能がある Kubernetesの公式プロジェクトかつ、Kubernetesそのもののテストにも用いられているため、実績や将来性は十分 修正履歴 2019/7/04: 「クラスタの設定を変更する方法」節のapiVersion: kubeadm.k8s.io/v1beta1をapiVersion: kubeadm.k8s.io/v1beta2に修正しました kindとは Kubernetesは複雑なソ

    お手軽Kubernetesクラスタ作成ツール "kind"の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2019/07/13
    ほう
  • kintone の性能改善について紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。 今回は、サイボウズ製品のひとつである kintone に対して行った性能改善の成果を紹介したいと思います。kintone は面倒なコーディング無しに業務アプリケーションのようなものを作ることができ、様々なデータを格納したり、複雑な条件で検索したりソートしたり、アクセス権もきめ細やかに設定したりできるというサービスです。この kintone はサービスの性質上、多種多様で複雑なクエリを発行します。またデータ量も膨大で MySQL だけで計数十テラバイトのデータが存在しており、クエリの処理時間が長時間かかってしまうこともあります。 サイボウズでは kintone の性能改善に力を入れており、今回はその成果を紹介しようと思います。 はじめに kintone はテナントごとに大きく使い方が異なり、性能改善が効くケースもあれ

    kintone の性能改善について紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2019/02/09
    劇的ビフォーアフター。日々是改善
  • 分散ユーザー管理システム「etcdpasswd」の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリ基盤チーム兼Necoプロジェクト所属の @ueokande です。 日はNecoで開発しているUNIXユーザーの管理ツールである「etcdpasswd」を紹介します。 github.com etcdpasswdは、etcdをバックエンドに持つ分散型のユーザー管理システムです。 etcdpasswdは自律型の分散システムで、一時的にホストがダウンしても、次回起動時にetcdのユーザーを参照して同期します。 etcdpasswdはLDAPのようなNSS (Name Service Switch) が外部サービスに問い合わせるのではなく、etcdpasswdが各ホストにある /etc/passwd を更新します。 なぜetcdpasswdなのか 現在のcybozu.comデータセンターでは、各ホストのユーザー追加・更新は、MySQLでユーザー管理されており、管理者が適用したタ

    分散ユーザー管理システム「etcdpasswd」の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2018/10/07
    Watch APIでのリビジョン番号参照がとてもいいね。なるほどー
  • Go言語向けFailure Injectionツール: gofail - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Necoチームの池添(@zoetro)です。 gofailは、etcdの開発チームがつくったFailure Injectionのためのツールです。 Go言語で書かれたプログラム中に故意にエラーを発生させるポイント(failpoint)を埋め込み、任意のタイミングでプログラムの挙動を変えることができます。 公式ドキュメントに記載されていない項目が多々あるので、詳しい使い方を紹介したいと思います。 なお、記事は2018年8月時点のソースコードを対象に解説しています。 gofailのインストール gofail をインストールします。 $ go get -u github.com/etcd-io/gofail/... failpointの埋め込み プログラム中にfailpointを埋め込むためには、Go言語のプログラム中に gofail というキーワードから始まるコメントを記述します

    Go言語向けFailure Injectionツール: gofail - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2018/09/23
    ほう
  • さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 一般的な Web アプリケーションがそうであるように、サイボウズのグループウェアにも画像をサムネイルで表示する機能があります。サイボウズでは日々数万件やそれ以上のサムネイルを生成しており、それらは全て ImageMagick によって生成されていました。 そこで得た知見はこちらの記事で公開されています。 blog.cybozu.io しかし現在、サイボウズから ImageMagick は消え去りました。その理由と、我々が取った代替手段について紹介します。 ImageMagick を外した理由 言うまでもなく ImageMagick は優秀なツールで、画像変換に関する何らかのサービスやツールを作る場合には採用の第一候補になることでしょう。あらゆる画像フォーマットに対応し、出力画像をきめ細かに制御できる膨大なオプシ

    さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2018/09/02
    「サムネイル作成の成功率をモニタリング」ピンポイントの監視良い。心がけたい。
  • サイボウズ版 MySQL パフォーマンスチューニングとその結果 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。先日親知らずを抜歯した時、つらすぎたので MySQLJOIN のことを考えて心の平静を保っていました。 サイボウズの製品のひとつである kintone はニーズに応じて自由に業務アプリのようなものを手軽に作ることができ、データの検索条件やソート条件も細かくカスタマイズ可能で、様々なレベルでのアクセス権も設定可能という非常に便利なツールです。 しかしその機能を支える裏側では複雑なクエリが発行され、MySQL に多大な負荷をかけています。サイボウズのクラウドには数十テラバイトに登る MySQL データがあり、数千万件オーダーのテーブルを複数 JOIN するクエリが毎秒のように実行されるという、エンジニア魂が滾る環境です。 現在サイボウズでは性能改善に力を入れており、僕もその業務に従事しています。例えば2018年

    サイボウズ版 MySQL パフォーマンスチューニングとその結果 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2018/08/12
    良い。「MySQLの状態を知ろう」と「InnoDBの詳細な状態を見よう」の部分はmackerel-plugin-mysqlでも-enable_extendedをつければほぼ網羅。あとはグラフの読み方を極めればok
  • ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ

    はじめに こんにちは、技術顧問のsatです。 サイボウズでは、ファイルシステムサイズ拡張時にデータベースアクセスがスローダウンするという問題に長年悩まされてきました。記事では運用部の藤田と深谷がこの問題を解決した流れについて報告いたします。問題を解決するために2人はLinuxカーネルを修正しました。修正は社内に閉じたものではなく、執筆当時の最新 Linuxカーネルであるv4.17にマージされています。 問題 以下の操作の後にデータベースへのアクセスが一時的にスローダウンする ブロックデバイスのサイズを拡張する 上記デバイス上にあるファイルシステムのサイズを拡張する 原因 linuxカーネルはブロックデバイスのサイズ変更(縮小および拡張)時に、当該デバイス上にあるファイルシステムのページキャッシュ(後述)を無効化する*1 解決方法 ブロックデバイスのサイズ拡張時にはページキャッシュを無効

    ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2018/06/30
    素晴らしい。この恩恵は大きいはず
  • サイボウズのログ基盤 2018年版 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。アプリケーション基盤チームの @ueokande です。 今日は、サイボウズの新しくなったログ基盤についてお話しします。 サイボウズのログ基盤の進化 リプレイス前のログ基盤 サイボウズのログ基盤はサービスの成長に合わせて、常に進化し続けてます。 そんななか2017年の夏に大きなリプレイス作業がありました。 サイボウズのサービスを支えるログ基盤 from Shin'ya Ueoka 以前のログ基盤は、ログを収集するホストがあり、各ホストからログを収集してました。 しかしログの転送システムが単一障害点であったり、スケーラビリティに欠けるのでサービスの成長に追いつかず、性能的にも限界に達してました。 また以前のログ基盤では、ログの解析がしにくく、ログはあるけどビジネスに役立てにくい状況でした。 そのため今後のサービスの成長や、より安定したログ基盤を運用できるように、ゼロから刷新するこ

    サイボウズのログ基盤 2018年版 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2018/03/24
    参考にする
  • Excelの奇妙なパスワードとマクロウイルス - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 今回はMicrosoft Excelに存在する特別なパスワードの仕様を紹介します。 後半はそれがマクロウイルスと関わるとどうなるか、ちょっとした実験をしたのでその紹介をします。 そもそものきっかけ それは海外の人からのメールでした。 私はCODE BLUE 2015で「MS Officeファイル暗号化のマスター鍵を利用したバックドアとその対策」を発表した際、 Windows/LinuxMicrosoft Officeファイルの暗号化・復号をコマンドラインでできるツールmsofficeを公開しました。 そのメールはツールについての質問で、「知人からもらったファイルをこのツールで確認すると暗号化されているのにファイルを開くときにパスワードを聞かれない。なぜ?」というものでした。 最初質問の意味がわからなかったのですが、確認すると確かにファイルを開くときにパスワー

    Excelの奇妙なパスワードとマクロウイルス - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2017/03/13
    面白い。その検出した製品を教えてほしい
  • 我々はいかにして技術選択を間違えたのか? 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 | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2016/12/31
    実装を確認してないんだけど、クエリーキャッシュの部分はINの数でキャッシュが増えると言ってるからプリペアードステートメントのキャッシュちゃうか。
  • nginx ちょっと不思議だったリクエストリトライのお話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Sustain チームの山口です。 今サイボウズリモートサービスというVPN・中継サービスで使用する L7LB を nginx に移行しようといろいろ調査をしています。 nginx をリバースプロキシとして使用する際に少々障害となる動作があり、それに関するアップデートが最近あったので、今回はそのお話です。 3行で分かる記事の内容 nginx をリバースプロキシとして使う場合、リクエストがバックエンドサーバに二重で飛ぶ可能性がある 対策として proxy_request_buffering off が使えそうだが、使えない nginx 1.9.13 で仕様変更が入り、POST, LOCK, PATCH メソッドのリクエストは二重で飛ばないことが保証された nginx の受動的な health check とリクエストのリトライ動作 nginx はリバースプロキシとして使う場合に

    nginx ちょっと不思議だったリクエストリトライのお話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2016/05/19
    POST/LOCK/PATCHは対応だがPUTは含まれないの気になった。なぜLOCKとPATCHは選ばれたんだろう。
  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2016/05/04
    ほう。覚えておく
  • NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ

    以下の記事内容について、奥一穂氏(@kazuho)より、「connectのエラーコードが信頼できなくなるといった欠点もあるのに透過 SOCKS プロキシが汎用的に良いように読めてしまう」というご指摘をいただきました。確かに、下記内容は当社が抱えていた複数の課題を短期間で解消できる「ワークアラウンド」として透過 SOCKS プロキシという技法もあることを紹介したものであり、NAT と比較して常に良いという主張をしたかったわけではありません。また、記事内では解説を省きましたが、従来より HTTP(S) 通信は NAT ではなく HTTP プロキシを利用しています。謹んで補足・訂正とさせていただきます。 が好きだけどアレルギーで近寄ることができない山泰宇です。 先日アーキテクチャ刷新プロジェクトNeco」を紹介しましたが、今回はその活動の一環として実施したネットワークアドレス変換(NAT

    NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2016/04/24
    興味深い。CPU負荷が高いとのことだが、トラフィック性能や遅延などもどうなったか気になるな。あとはtcp_tw_recycleが本当に必要だったのか、外しても問題ないんちゃうか疑惑。
  • 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 | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2015/12/13
    とても良い。locationのマッチングもデコードされたURLが対象になるの先日ハマった。
  • 完璧な監視システムの作り方 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 | サイボウズエンジニアのブログ
    tmatsuu
    tmatsuu 2013/11/03
    外形監視の部分、各Webサーバのポート監視もすればいいと思いました。うちはそうしてる。