タグ

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

  • 魔窟と化した全文検索サーバーとふっかつのじゅもん - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズのクラウド黎明期から運用し続けていたSolrサーバーを Elasticsearchに置き換えるプロジェクトが先日完了しました。 プロジェクト完了報告もかねてプロジェクトのあらましを公開したいと思います。 はじめに このプロジェクトの主軸は『魔窟と化したレガシー技術をどう捌くか?』になります。 このプロジェクトの報告をする前に、いくつかエクスキューズをさせていただきます。 クラウド黎明期を支えてくれたSolrには畏敬の念に近い感謝をもっています レガシーな技術に対してマウントやディスリスペクトの意図はありません 魔窟にかかわることになってしまった人に対して負の感情は一切ありません 今回の採用している構成はElasticsearchのあるべきアーキテクチャではありません 今後、Neco 環境への移行を通して継続的に改善していきます サイボウズでのSolrの使い方と用語説明 サイボウズ

    魔窟と化した全文検索サーバーとふっかつのじゅもん - Cybozu Inside Out | サイボウズエンジニアのブログ
    sfujiwara
    sfujiwara 2021/06/16
    粘り強い
  • MOCO - Kubernetes 用 MySQL クラスタ運用ソフトウェア - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズの Kubernetes 基盤を開発している Neco プロジェクトの ymmt です。 サイボウズ製品のほとんどはデータベースとして MySQL を採用しています。 現在 400 を越える MySQL のインスタンスを運用しており、これら全てを新しい Kubernetes 基盤に移行していく予定です。 Kubernetes 上でアプリケーションやミドルウェアの運用を自動化するソフトウェアのことをオペレーターと言います。 大量の MySQL インスタンスを Kubernetes 基盤に移行するにはオペレーターが必須であると考え、技術顧問の @yoku0825 さんの監修の下で MOCO というソフトウェアを開発しオープンソースライセンスで公開しました。 記事では Kubernetes 上の MySQL オペレーターの状況と、開発した MOCO の機能を詳細に解説いたします。 M

    MOCO - Kubernetes 用 MySQL クラスタ運用ソフトウェア - Cybozu Inside Out | サイボウズエンジニアのブログ
  • npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ

    フロントエンドエキスパートチームの小林(@koba04)です。 先日、npmから脆弱性についての発表がありました。 調べていく中でいくつか思うところがあったので解説も兼ねて書いていきたいと思います。 The npm Blog — Binary Planting with the npm CLI npmの利用者としてやるべきことは、 npmのバージョンを6.13.4以上にあげる yarnのバージョンを1.21.1以上にあげる です。 npmのバージョンが6.13.4になったNodeもv8, v10, v12, v13系でそれぞれリリースされたので、そちらを利用することも可能です (yarnのバージョンは別途あげる必要があります)。 nodejs.org npmによる発表では、今回発表された脆弱性は2件あるため、それぞれ個別に考えます。 binに任意のパスを指定出来る件 npmパッケージはpa

    npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ
  • cybozu.com の新データセンター「Neco」が稼働開始 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Neco プロジェクトの責任者 ymmt です。 Neco は、2018 年 1 月に開始した cybozu.com のデータセンターを一から刷新するプロジェクトです。 今回は Neco の成果が結実した新データセンターが稼働開始したことをお知らせします。 あわせて、現時点までの活動内容・システムの概要・今後の予定もお伝えいたします。 Neco プロジェクトについて 成果の紹介 2019年9月時点のシステム 移行プロジェクト Maneki を開始 採用イベントのご案内 Neco プロジェクトについて サイボウズの主力クラウドサービスである cybozu.com は自社で構築したデータセンターにて2011年に提供開始しました。 以来順調に業容を拡大し、現在は 30,000 社以上のお客様にご契約いただいております。 一方で、当初 100 台に満たない台数のサーバー向けに設計された

    cybozu.com の新データセンター「Neco」が稼働開始 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • サイボウズのオープンソースソフトウェアポリシーを紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ

    OSS準備室長を務めていた ymmt (@ymmt2005) です。 過去形なのは、OSS準備室は 7 月末で解散したためです。 OSS準備室では、サイボウズ社員がオープンソースソフトウェアに関する活動を行いやすくすることを主な目的として、会社の基方針を「OSSポリシー」という文書にまとめる作業を行いました。 完成したOSSポリシーはCC0 (いかなる権利も保有しない、いわゆるパブリックドメイン)で広く他の企業の方々にも活用いただけるよう以下で公開しました。記事ではその内容と、サイボウズにおけるオープンソース活動のこれまでとこれからを紹介いたします。 OSSポリシー(日語) (GitHub) OSS Policy (English) (GitHub) オープンソースについて オープンソースソフトウェア(Open Source Software, OSS)とは、オープンソースの定義に基

    サイボウズのオープンソースソフトウェアポリシーを紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 分散システムの耐障害性テストの取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Necoチームの池添(@zoetro)です。 サイボウズが提供するクラウドサービスcybozu.comでは、アーキテクチャを刷新すべく「Neco」というプロジェクトを実施しています。 そのプロジェクトでは、サーバのライフサイクルを管理するsabakanや、Kubernetesクラスタを構築するためのCKE(Cybozu Kubernetes Engine)などの分散システムを開発しています。 安定してサービスを提供するためには、このようなインフラを支える分散システムの耐障害性が重要になってきます。 記事では、我々のチームが分散システムに対してどのような耐障害性テストを実施しているのかを紹介します。 耐障害性を高めるために 機材故障 サイボウズの管理するデータセンターでは1,000台規模のサーバを扱っており、日常的にハードウェアの故障が発生します。 例えば、以下のような機材故障

    分散システムの耐障害性テストの取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 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 | サイボウズエンジニアのブログ
    sfujiwara
    sfujiwara 2018/09/04
  • Go でいい感じのコマンドを作れるツールキットの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    SRE の @ymmt2005 です。最近は systemd が好物です。 今回は GitHub でサイボウズが公開している Go 言語のプロジェクト群、特にいい感じのコマンドを作れる github.com/cybozu-go/cmd について紹介します。 SRE チームでは最近 Go でツールを開発する機会が多くなっています。最初のうちは決まった作り方をしていなかったため、コマンドごとに仕様がばらばらで、以下のような問題がでてきました。 REST API サーバーのアクセスログを記録しないコマンドがある 外部コマンド実行時のログを記録しないコマンドがある SIGTERM 等シグナル処理の方法がばらばら ログファイルのリオープンができずローテートしにくい ログメッセージの形式がばらばら 大雑把にいうと、ログとシグナル処理がきちんとしてないと扱いにくいわけです。 具体的にどうなっていると「い

    Go でいい感じのコマンドを作れるツールキットの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 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 | サイボウズエンジニアのブログ
  • もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ

    部長や副部長もプログラミングを(たまに)することで有名なサイボウズの運用部長、山泰宇です。 有名じゃないかもしれませんが、ブログに書いたので有名になるということでご了承ください。 今回は、先日発生した yrmcds に起因する障害の原因と対策を解説します。 yrmcds というのは、サイボウズが開発している memcached 互換のキーバリューストレージです。 問題の理解のため、まず TCP 通信で、通信先の相手の障害にどう対応するか解説します。 データの送信中に相手が落ちるケース このケースはさらに二つに分かれます。 相手の OS は生きているが、通信しているプログラムが落ちるケース 相手の OS ごと(あるいはネットワークごと)落ちるケース 1 と 2 の違いは、前者の場合 RST パケットが返ってくるのに対して、後者ではなにも返ってこない点です。後者の場合、ack されない

    TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • クラウドを支えるこれからの暗号技術 - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    クラウドを支えるこれからの暗号技術 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • nginx の拡張モジュールを書いて DoS 対策をした - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。インフラチームの野島です。 最近、cybozu.com はロードバランサを Apache から nginx に置き換えました。 (参考: cybozu.com のリバースプロキシを nginx にリプレイス) 置き換えの一環として、Apache に実装していた DoS 対策の仕組みを nginx の拡張モジュールにする形で移植しました。今回、この拡張モジュール nginx-maxconn-module を OSS として公開しましたので紹介します。 背景 DoS 対策 秒間リクエスト数 v.s. 瞬間同時リクエスト数 実装方針 nginx-maxconn-module 基的な使い方 高度な使い方 インストール おわりに 背景 題に入る前に、cybozu.com において、HTTP リクエストがどのように処理されているかを説明します。 cybozu.com では、負荷分散のた

    nginx の拡張モジュールを書いて DoS 対策をした - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 自動障害回復システム 月読の話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山泰宇です。短い夏休みから帰ってきました。 今回は cybozu.com のデータセンターで運用を開始した自動障害回復システム「月読」を紹介します。障害にも色々ありますが、今回紹介するのは仮想マシンのホストサーバーの物理障害を検出して、稼働していた仮想マシンを予備のホストに移動する仕組みです。 月読は、データセンター全域に分散したエージェントが協調動作するピア・ツー・ピア (P2P)システムとして作られています。以下分散システムの話題が多数でてきますが、とても難解というわけではないので、分散システムの入門記事としてお楽しみください。 障害にどう対処するか 障害対応の自動化 設計のポイント エージェント間通信 障害の検出と回復 その他の機能 まとめ 障害にどう対処するか 物理障害対策の基は二重化(多重化)です。アプリケーションサーバーのようにデータを持たないサーバ

    自動障害回復システム 月読の話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sfujiwara
    sfujiwara 2013/09/02
  • yrmcds 0.9.0 リリース - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山泰宇です。 今回は memcached 互換で冗長構成を簡単に組める自社製 KVS である yrmcds のリリースをご案内します。 ... この Redis 全盛なご時世になんで?とか、repcached や Kyoto Tycoon があるじゃない、といったツッコミの嵐が聞えてきそうです。わかってます、わかってますから物を投げないで! 順を追って説明しますので、批判はそれからにしてください! 何が欲しいのか 私は日頃 cybozu.com のインフラで動作するソフトウェアを開発しています。リリース後もうすぐ2年になりますが、お蔭様で 4,000 社以上にご利用いただくまでになりました。商売繁盛で嬉しいのですが、運用側は日々増えるデータとアクセスを捌くべく奮闘しています。 ここのところ問題になっていたのが、MySQL に保存しているセッション情報でした。アプリ

    yrmcds 0.9.0 リリース - Cybozu Inside Out | サイボウズエンジニアのブログ
  • WalB v1.0 リリース - Cybozu Inside Out | サイボウズエンジニアのブログ

    更新情報 2017年6月現在、WalB のプロジェクトページはhttps://walb-linux.github.io/です。 こんにちは.サイボウズ・ラボの星野です. 今日は,効率的なバックアップと非同期レプリケーションを目的とした Linux カーネルドライバ WalB についての簡単な紹介と,そのバージョン 1.0 のリリース告知をさせて頂きます. WalB って何? WalB は「ワルビー」と発音します.名前の由来は Block-level WAL です.WAL は Write-Ahead Logging (ログ先行書き込み) のことで,データベースの一貫性制御等に用いられます. WalB を使うと,オンライン状態のブロックデバイスにおいて,アプリケーションやファイルシステムによるデータ書き込みによって生じる差分データを,ブロックデバイスをフルスキャンすることなく効率的に取得出来る

    WalB v1.0 リリース - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 1