Go

Goの静的解析ツールをgolintからstaticcheckに移行した話

こんにちは、@ueokandeです。 つい先日Go 1.16がリリースされましたね。 サイボウズではGoで書かれたプロダクトやツールなどが数多く存在しており、[GitHubで公開][cybozu-go]しているものも多数あります。 自分の所属する[Yakumoチーム][yakumo]でも、Kuber…

2022年新卒採用 エキスパートエンジニア職のご紹介

サービス運用部の吉川です。今回はサービス運用部が2022年新卒採用で始めたエキスパートエンジニア職採用について、学生の視点に立ってみて説明が必要だと感じた点をQ&A形式でまとめてみました。クラウド基盤エンジニアとして働くことを検討中の方はエントリ…

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

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

テナントがArgoCD Applicationを任意に作れるようにする

こんにちは Necoの@dulltzです。 皆さんはマルチテナントでGitOpsするためにどのような構成をとっていますか? 我々はArgoCDを利用しています。 以前、@zoetroからArgoCDについての紹介がありました。 blog.cybozu.io 上の記事でもテナント*1に対しArgoCDを…

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

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

分散システムの耐障害性テストの取り組み

こんにちは、Necoチームの池添(@zoetro)です。 サイボウズが提供するクラウドサービスcybozu.comでは、アーキテクチャを刷新すべく「Neco」というプロジェクトを実施しています。 そのプロジェクトでは、サーバのライフサイクルを管理するsabakanや、Kuber…

Go言語向けFailure Injectionツール: gofail

こんにちは、Necoチームの池添(@zoetro)です。 gofailは、etcdの開発チームがつくったFailure Injectionのためのツールです。 Go言語で書かれたプログラム中に故意にエラーを発生させるポイント(failpoint)を埋め込み、任意のタイミングでプログラムの挙動…

さようなら ImageMagick

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

Go でいい感じのコマンドを作れるツールキットの紹介

SRE の @ymmt2005 です。最近は systemd が好物です。 今回は GitHub でサイボウズが公開している Go 言語のプロジェクト群、特にいい感じのコマンドを作れる github.com/cybozu-go/cmd について紹介します。 SRE チームでは最近 Go でツールを開発する機会…

アーティファクトの管理について、あるいは go-apt-cacher / go-apt-mirror の紹介

誰も本名で呼んでくれないので社内でもハンドルで通そうと ymmt と呼ぶよう社内に本部長命令を出したお願いしている @ymmt2005 です。 今回はサイボウズ社内でどのようにアーティファクトを管理しているか紹介します。アーティファクトというのはソフトウェ…

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

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