インフラ

nginxのproxy_cache_lockと謎の500ms

はじめに Cloud Platform部のpddgです。2024年もサマーインターンシップを開催し、プラットフォーム(自社基盤)コースとして2名の方を受け入れました。 昨年の様子は以下からご覧いただけます。興味があれば是非ご覧下さい。 blog.cybozu.io 今回は受け入れ…

サービスのパフォーマンステストがうまくいかないときに確認すべきポイント

この記事は、CYBOZU SUMMER BLOG FES '24 (クラウド基盤 Stage) DAY 14 の記事です。 クラウド基盤本部 Cloud Platform 部の新井です。 Cloud Platform 部では現在、現行クラウド基盤上で動作している製品を、Kubernetes ベースの新基盤に移行させるための様…

そのメール、本当に届いてる?Amazon SESの運用で得た監視プラクティス

こんにちは、kintone.comのバックエンドエンジニアをしている@ueokandeです。 いきなりですが、メールって難しいですよね。 普段HTTPに慣れていると、メール周りのプロトコルの理解は難しく、トラブルにも見舞われることも少なくないです。 またメールプロト…

サイボウズサマーインターン2021 報告 〜 Kubernetes基盤開発コース

こんにちは、Necoチームの鈴木、石井、そしてストレージチームのsatです。 サイボウズは毎年サマーインターンシップを開催しています。去年に続き、今年もCOVID-19の影響でフルリモート開催でした。 インターンには様々なコースがありますが、本記事ではその…

インフラのリリース自動化戦略とその行き着く先

こんにちは、@ueokandeです。 本番リリースってドキドキしますよね。 本日はkintone.comのリリース自動化と、その戦略についてお話します。 kintone.comのCI/CDパイプライン kintone.comのインフラ構成はモノレポで管理しており、AWSの構成や、Kubernetes上…

SLO策定とアラート設定までの長い道のり

こんにちは、@ueokandeです。早速ですが、皆さんが運用しているサービスには、SLO (Service-level objective: サービスレベル目標) がありますか?アラートの監視項目はどのように設定して、基準値をどのように決めていますか? 社外とのコミュニケーション…

複雑怪奇な nginx を Go と Docker でユニットテストする

全国の nginx 職人のみなさま、こんにちは。野島(@nojima)です。 私の所属するYakumoプロジェクトでは、nginx を Go と Docker によってユニットテスト1しています。 手元で簡単に実行でき、ブランチへのpushのたびにCIでテストされるので、非常に便利です。…

ストレージオーケストレーターRookへのサイボウズのコミット方針

はじめに こんにちは、Necoプロジェクトのsatです。 NecoではKubernetes上のアプリケーションが使うストレージをCephによって提供すること、およびCephクラスタの管理にKubernetes上で動作するストレージオーケストレーターRookを使うことを決めています。本…

Go 製ソフトウェアでメモリ使用量の多い関数を特定する

みなさんこんにちは.SRE チームの内田(@uchan_nos)です. この記事では Go 製ソフトウェアのどの関数がどれだけメモリを消費しているかを調べる方法を説明します. Go 製ソフトウェアのヒープメモリの消費量を調べる方法はたくさん解説されているものの,…

Neco のネットワーク - 実装編

Neco プロジェクトの ymmt です。Neco は cybozu.com のインフラを刷新するプロジェクトで、先日は全面的に見直したネットワークのアーキテクチャと設計をご紹介しました。 blog.cybozu.io 簡単にまとめると、spine-leaf ネットワークを実現するにあたって、…

ルーティングソフトウェア BIRD の使いかた

Neco プロジェクトの ymmt です。本記事では Neco のネットワークの実装を理解するために、ルーティングソフトウェアである BIRD の仕組みと設定方法を解説します。 公式文書がすこしとっつきにくいので、こちらを読んでから公式文書にあたるとスムーズに理…

データセンター内で使う BGP の基礎知識

Neco プロジェクトの ymmt です。本記事では Neco のネットワークの実装を理解するために必要となる範囲で Border Gateway Protocol (BGP)の基礎知識を解説します。 BGP はインターネット全域の経路制御に使われているプロトコルで、非常に複雑なルーティン…

さようなら ImageMagick

こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 一般的な Web アプリケーションがそうであるように、サイボウズのグループウェアにも画像をサムネイルで表示する機能があります。サイボウズでは日々数万件やそれ以上のサムネイルを生成…

Necoのネットワーク - アーキテクチャと設計編

こんにちは。「Neco」の @ueokande です。 サイボウズでは、cybozu.comのアーキテクチャ刷新プロジェクト「Neco」を実施してます。 その思いについては以下の記事からどうぞ。 アーキテクチャ刷新プロジェクト「Neco」の紹介 運用本部長を退任して Neco プロ…

ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決

はじめに こんにちは、技術顧問のsatです。 サイボウズでは、ファイルシステムサイズ拡張時にデータベースアクセスがスローダウンするという問題に長年悩まされてきました。本記事では運用本部の藤田と深谷がこの問題を解決した流れについて報告いたします。…

CoreOS Container Linuxにおいてリアルタイムプロセスを実行できない問題

はじめに こんにちは、技術顧問の武内です。 本記事はサイボウズの次期インフラ開発チーム(Necoチーム)が遭遇した、CoreOS Container Linux (以降 CoreOS)においてリアルタイムプロセスを実行できないという問題について、次のようなことを記載したものです…

EPYCマシンの検証(3) - ビルドマシンとしての実力を見る

はじめに 技術顧問のsatです。EPYCマシンの検証についての3回目の記事です。前回の記事はこちらです。 今回はこのマシンのビルドマシンとしての実力を見てみます。これまでの記事と異なり、手元にあったXeonのマシンとの性能比較をしています。

EPYCマシンの検証(2) - NUMAノードをまたぐメモリアクセス速度

はじめに 技術顧問のsatです。前回に引き続き、EPYCマシンの検証についての話をします。手元のEPYCマシン(Super Micro AS-1023US-TR4)はNUMAアーキテクチャ(後述)を採用してます。今回はこのマシンにおけるNUMAノードをまたいだメモリアクセスに関するデータ…

サイボウズのログ基盤 2018年版

こんにちは。アプリケーション基盤チームの @ueokande です。 今日は、サイボウズの新しくなったログ基盤についてお話しします。

EPYCマシンの検証 (1)- SEGV問題の発生有無

はじめに 技術顧問のsatです。サイボウズはAMDの最新サーバ用プロセッサEPYCを搭載したマシンを最近購入しました。EPYCは各種技術サイトのベンチマークにおいて優れた性能を示しているにもかかわらず、同プロセッサを搭載する製品が少ないこともあり、現物に…

@lestrrat 氏に Kubernetes を教えてもらいました

@ymmt2005 こと山本です。SRE とかやってます。 サイボウズでは「Neco」という、クラウド基盤のアーキテクチャを刷新するプロジェクトを進めているのですが、今回は @lestrrat こと牧大輔さんをお招きして Kubernetes の導入を検討しはじめた話です。 当日の…

サイボウズではミドルウェアエンジニアも活躍しています

こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 先日、エンタープライズジン様の記事で、弊社の名前が挙がっていました。 井上 まあ、ミドルウェアに詳しい人間もいないと。ミドルウェアだけじゃないですけど、やっぱりアプリケーション…

SRE チームを設立します

運用本部長を務めている山本泰宇です。 運用本部は社内の情報システムを担当する情報システム部と cybozu.com など自社クラウドサービスを運用するサービス運用部からなる部門です。 本日、サービス運用部にて SRE チームを設立しました。この記事ではチーム…

社内利用のための deb パッケージング入門

こんにちは。@nojima です。 最近、社内のアーティファクトの deb 化を推進しています。 Building Microservices でも紹介されているように、deb は apt-get install でインストールできたり、依存関係を自動で管理できたりするため、単純な tar.gz を使うよ…

nginx ちょっと不思議だったリクエストリトライのお話

こんにちは、Sustain チームの山口です。 今サイボウズリモートサービスというVPN・中継サービスで使用する L7LB を nginx に移行しようといろいろ調査をしています。 nginx をリバースプロキシとして使用する際に少々障害となる動作があり、それに関するア…

NAT をやめて、透過 SOCKS プロキシを導入した

以下の記事内容について、奥一穂氏(@kazuho)より、「connectのエラーコードが信頼できなくなるといった欠点もあるのに透過 SOCKS プロキシが汎用的に良いように読めてしまう」というご指摘をいただきました。確かに、下記内容は当社が抱えていた複数の課題…

ブロックデバイスのクラッシュ模擬ツールcrashblk の紹介

こんにちは、サイボウズ・ラボの星野です。 先日の記事(半年かかったバグ調査の顛末は)では、長期間苦労した不具合調査についてあっさりとまとめて頂いたので、その行間に起きたたくさんのことを思い起こし、ひとり感慨にふけっています。 (私も記事原稿をレ…

半年かかったバグ調査の顛末は

サイボウズ・ラボの光成です。 今回は原因究明に半年以上かかったバグ調査の紹介をいたします。

インフラ系インターンをやってみました

皆さんこんにちは。Hazama チームの内田(@uchan_nos)です。 かなり前の話になってしまいますが、サイボウズでは 8/17 から 1 週間、開発系のインターンシッププログラムを実施しました。 アプリ開発や品質保証のコースに加えて インフラコース があったの…

TCPとタイムアウトと私

本部長や副本部長もプログラミングを(たまに)することで有名なサイボウズの運用本部長、山本泰宇です。 有名じゃないかもしれませんが、ブログに書いたので有名になるということでご了承ください。 今回は、先日発生した yrmcds に起因する障害の原因と対…