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

  • Storybook をフル活用してテストを実装したその後の話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    この記事は、CYBOZU SUMMER BLOG FES '24 (Frontend stage) DAY13 の記事です。 こんにちは、フロリアでエンジニアとして活動している hacchan です。 現在 kintone ではフロリアというプロジェクトの中で、Closure Tools から React への移行作業に取り組んでいます。 以前、そのフロリアのチームの 1 つである Reactone チーム が Storybook をフル活用してテストを実装した話 を紹介しましたが、今回はそのアフターストーリーを紹介します。 Storybook のフル活用はやめた 以前の Reactone チームでは、Storybook の Test Runner を使って、Integration Test を実行するなど、Storybook をフル活用してテストを実装していましたが、新たな領域の刷新を開

    a-know
    a-know 2024/08/19
  • ソースコードのハッシュ値を利用したCIの高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintoneチームの川向です。 ソースコードハッシュ値計算ツールであるsverを導入してCIの高速化を行ったので、その紹介をさせてください。 この仕組みにより、通常は1時間かかるCIの実行時間が最善のケースでは20分程度に短縮可能になりました。 導入前の課題 解決方法の検討 sverを使ったテストのスキップによるCI高速化 kintoneでのsverの利用方法 sver設定ファイルの書き方 キャシュの保存先(GitHub Actions Cache、Amazon S3) sverを使ったジョブの書き方 sver情報生成ジョブ: ハッシュ生成とキャッシュの存在確認 ビルドジョブ: 依存ファイル以外に依存しないことの確認 テストジョブ: ジョブ成功後にキャッシュ保存 下流ジョブのifの書き方 結果 課題と今後の展開 まとめ 導入前の課題 kintoneのCIの大まかな構成は以下の

    ソースコードのハッシュ値を利用したCIの高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2023/10/18
  • 開発チーム作成ガイドを公開します - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。シニアスクラムマスターの天野 @ama_ch です。 サイボウズの開発組織において、今後の成長を加速させるためには、組織の基単位をスクラムチームのような自律的な小さなチームにしてスケールさせることが非常に大切だと考えています。サイボウズは比較的スクラムが普及している組織ではありますが、組織内のすべてのチームがスクラムを採用しているわけではありません。 フレームワークとしてスクラムを採用するかどうかはチームの自由です。しかし、健全なチーム環境を整えることはすべてのチームにとって重要です。チームやチームワークに関する情報は巷に多く存在しますが、我々のようにすでにある程度の規模で活動しているプロダクト開発組織で、チーム環境を整えるために実践的に使える情報がないことが悩みでした。 そこで、これまでのチームに関する学びと実践を踏まえ、サイボウズの開発組織の文脈において、スクラムを実践し

    開発チーム作成ガイドを公開します - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2023/07/27
  • そのメール、本当に届いてる?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 | サイボウズエンジニアのブログ
    a-know
    a-know 2021/11/26
    :eyes:
  • GitHub Sponsorsを使って「企業」として寄付をした話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。OSS推進チームの平野(@shisama_)です。 2020年12月にGitHub Sponsorsを利用して企業からOSSや個人へ寄付できるようになりました。 www.publickey1.jp この記事では企業からOSSや開発者へGitHub Sponsorsにて寄付する方法について紹介します。 社外のOSSや開発者を支援するモチベーション サイボウズでは日頃の業務でお世話になっているOSSへの寄付をしています。 tech.cybozu.io サイボウズのプロダクト開発には多くのOSSが利用されており、プロダクトの成長はOSSによって支えられています。そこで、そのOSSのおかげで事業が成長した分を還元していく「フィードバック」として寄付を行い、OSSが持続的に発展できるよう支援しています。 これまでOSSプロジェクトに対してOpen Collectiveなどのプラットフォー

    GitHub Sponsorsを使って「企業」として寄付をした話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2021/03/19
  • SLO策定とアラート設定までの長い道のり - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、@ueokandeです。早速ですが、皆さんが運用しているサービスには、SLO (Service-level objective: サービスレベル目標) がありますか?アラートの監視項目はどのように設定して、基準値をどのように決めていますか? 社外とのコミュニケーションだけでなく、社内向けのSLOを決めておくことで、サービスの健康状態を知るための手がかりや、普段の開発・運用タスクの優先度を決める上での指標にもなります。 またSLOがあると、サービスを監視するアラートに、理にかなった閾値を設定できます。 この記事ではAWSkintoneの、SLOとアラートを設定するまでの記録について紹介します。 cybozu.com版kintoneのSLOとアラート 国内のcybozu.comで運用しているkintoneにも、もちろんSLOやアラートはあります。 しかし現状のSLOはkinton

    SLO策定とアラート設定までの長い道のり - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2020/11/13
  • サイボウズの「開発・運用組織」で働く環境 @ 2020 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは〜!リングフィットアドベンチャーを6ヶ月ほどやっているのですが体重の変化がない開発部所属の hokatomo です💪💪 2016年に ymmt さんが「サイボウズエンジニアの職場環境 @ 2016」を公開しました。 あれから変わった面があるのと、2019年1月に中途入社した者として「こういう制度や文化があるんだ!」と驚いた部分があったので、忘れないうちに2020年度版を書きます:) この記事で、「サイボウズの開発や運用で働くってどんな感じ?」と気になってくれている方に、少しでも様子が伝わったら嬉しいです。 筆者である私はエンジニアではなく、開発部所属で社内コミュニケーションの部分を担当しているので、その目線で書いています。 目次 働く場所・時間は自分で決める、コアタイムなし 書籍購入、勉強会参加支援、コミュニケーション支援他さまざまな制度 開発組織を横断して支える、たくさ

    サイボウズの「開発・運用組織」で働く環境 @ 2020 - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2020/10/13
  • 2020年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。コネクト支援チームの@tignyaxです。 みなさま、夏はどう過ごされたでしょうか? 私は、夏が好きなのに今年は夏らしいことが出来なくて寂しいなぁとなっています。。。 さて、今年2020年もエンジニア新人研修を行いましたので、その紹介と講義資料を公開いたします。 2020年のエンジニア新人研修について 基的には2019年と同じ形*1での実施となりました。 最初の1週間で必修講義をしたあと、新人の皆さんには2週間ずつ3チームを体験してもらいました。 チーム体験のコンセプトは、新人に「興味のあるチームで実際に業務を体験し、配属希望を決める参考になった。」と言ってもらうことです。 各チーム体験では座学や研修を中心にするのではなく、業務体験が中心です。 チーム体験を通して、配属先を検討する材料にしたり、いろんなチーム/人/業務を知ってもらえる機会となります。 必修講義 誰に: 開発/

    2020年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2020/09/08
  • サイボウズには「社内コネクト」を支援するチームがいます - Cybozu Inside Out | サイボウズエンジニアのブログ

    2019年開催のハッカソンでの1枚 こんにちは!プロ野球がついに始まりましたね! 開発部社内コネクトチームのhokatomoです。 今日は私が所属している「社内コネクトチーム"WASABI"」の紹介です。 このチームは「社内開発イベントを通じて、製品の垣根を超えた輪を広げていく」をミッションにし、活動をしています。 具体的な活動 社内(主に、開発部・運用部)の繋がりを作る・深めるためのイベントの企画運営 多拠点に開発・運用のメンバーがいるので、自チーム以外でもそれぞれのことを知り興味を持つきっかけを作る よりよいチームワークに繋げる を意識し、社内イベントの企画開催運営を行っています。 なんで「WASABI」なの? もともとの名前は「社内開発イベントPJ」だったのですが、 「社内開発イベントPJ」が呼びづらい (WASABIのきっかけとなったイベント)フリージャンルのLTやりたい→み

    サイボウズには「社内コネクト」を支援するチームがいます - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2020/06/25
  • 複雑怪奇な nginx を Go と Docker でユニットテストする - Cybozu Inside Out | サイボウズエンジニアのブログ

    全国の nginx 職人のみなさま、こんにちは。野島(@nojima)です。 私の所属するYakumoプロジェクトでは、nginxGoDocker によってユニットテスト1しています。 手元で簡単に実行でき、ブランチへのpushのたびにCIでテストされるので、非常に便利です。 この記事では、このnginxのユニットテストについて紹介してみたいと思います。 背景 nginx は極めて柔軟なロードバランサであり、プロダクション環境ではその柔軟さを生かして多彩な役割を担っています。 我々の nginx は、ユーザーからのリクエストを AP サーバーに振り分け、アクセス制限を行い、リクエストをリダイレクトし、HTTPヘッダを付与したり削ったりしています。 しかし、nginx は便利な反面、その設定は極めて複雑になり、読解したり変更したりするのが難しくなっています。 そこで、nginx

    複雑怪奇な nginx を Go と Docker でユニットテストする - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2020/04/16
  • 広島にもオフィスができました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。10年ぶりに広島にUターンした組織運営チームの水戸です。 好きな景色は電車の中から見るマツダスタジアムのグラウンドです。透明性が高いって良いですよね。 2019年4月に広島オフィスができましたのでご紹介します。 広島オフィス 広島オフィスはリージャス広島駅前センターというレンタルオフィスにあります。 オフィス探しで重視したのは多くの人が通いやすい立地・エンジニアが働きやすい環境の2点でした。 幸運にもJR広島駅から徒歩4分とアクセスの良いところに、できたばかりの良いビルを見つけることができました。 広島駅近くなので普段の通勤はもちろん仕事終わりのカープ・サンフレッチェ観戦にも便利です。 働きはじめて4ヶ月経ちましたがオフィスは綺麗で快適で、ビルは再開発が進むエリアにあるため比較的静かながらもお店には困らないという期待通りの良い環境です。 お好み焼き、汁なし担々麺、尾道ラーメン

    広島にもオフィスができました - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2019/08/24
    広島
  • Kubernetesアプリケーションの開発、デバッグを高速化するツール、Telepresenceの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Necoプロジェクトのsatです。 記事ではKubernetes(以下K8sと記載)アプリケーション(以降アプリと記載)の開発を高速化するツール、Telepresenceを紹介します。 最初に結論を書いておくと、Telepresenceは次のようなツールです。 ローカルで動くプロセスやコンテナをk8sクラスタの中で動かせる 既存のDeployment内のコンテナを上記ローカルコンテナで置き換えられる テストやデバッグのためにいちいちコンテナイメージをレジストリにpush,そこからpull…とする必要がないので開発速度が上げられる Telepresenceは現在Cloud Native Computing FoundationのSandBoxプロジェクトです。 Telepresence登場の背景 前節において"開発を高速化する"と書きましたが、まずはTelepresenceを使

    Kubernetesアプリケーションの開発、デバッグを高速化するツール、Telepresenceの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2019/07/20
  • Go 製ソフトウェアでメモリ使用量の多い関数を特定する - Cybozu Inside Out | サイボウズエンジニアのブログ

    みなさんこんにちは.SRE チームの内田(@uchan_nos)です. この記事では Go 製ソフトウェアのどの関数がどれだけメモリを消費しているかを調べる方法を説明します. Go 製ソフトウェアのヒープメモリの消費量を調べる方法はたくさん解説されているものの,スタックメモリの消費量について調べる方法を説明したサイトを見つけることはできませんでした. この記事では主にスタックメモリの消費量を調べる方法を説明します. 背景 SRE では Go 言語で自社データセンター向けのツール群をたくさん作っています. その中のソフトウェアの 1 つが,番運用中に予想外にたくさんのメモリを使用してしまうという問題がありました. どの関数が原因なのかを突き止めるために,関数単位でメモリ使用量を調べる必要があります. ソフトウェアが使っているメモリ量の概況は,Linux であれば top コマンドで調べるこ

    Go 製ソフトウェアでメモリ使用量の多い関数を特定する - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2019/06/10
  • 開発・運用本部向け新人研修2018の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。そろそろプロ野球シーズンの開幕が待ちきれなくなってきたコネクト支援チーム*1の酒井(@sakay_y)です。 サイボウズでは、新入社員全体研修の後に、開発系の新入社員に対して1ヶ月程度の開発研修をおこなっています*2。内容は、毎年改善を重ねていますが、基的には講義+実習です。記事では、先日公開した2018年の研修の講義資料を、全体の流れに沿って紹介したいと思います。 開発・運用研修について 研修は「開発部・運用部に配属される新入社員が、部署配属後に必要となる基礎的な知識/技術/ツールを学び、体験できる。」ことを目的にしています。 新入社員3〜4名を1チームとして、そこに担当のメンターが1名付いて研修を進めていきました。講義では先輩社員に講師をお願いし、開発演習では各チームにメンターとは別の先輩社員が担当スクラムマスター(!)として付きました。 スケジュール 7/2 〜

    開発・運用本部向け新人研修2018の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2019/02/23
  • 組織変更したら部長がいなくなりました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、最近愛媛から広島に移住した組織運営チームの水戸です。 2019年からサイボウズの開発部から職能・地域毎に分かれた部署がなくなり、チーム主体の組織になりました。 組織変更をオープンに議論するというチャレンジングな試みの中で、新組織の理想はユーザー価値の最大化に定まり、個人やチームがより主体的に動ける組織構造に変わりました。 この記事では私がファシリテートを担当した組織変更をご紹介します。 開発部の状況 開発部の役割は製品を開発することです。 2018年までの開発部はマトリクス組織を採用しており、プロダクト開発チームには様々な職能・地域毎に分かれた部署のメンバーが所属していました。 この組織構造は事業の中心がオンプレミスだった10年以上前から、事業の中心がクラウドに移った2018年に至るまで変わっていません。 一方、プロダクト開発チームに求められるものは大きく変わりました。

    組織変更したら部長がいなくなりました - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2019/02/13
  • サイボウズのオープンソースソフトウェアポリシーを紹介します - 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 | サイボウズエンジニアのブログ
    a-know
    a-know 2018/09/09
  • さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2018/08/21
    さよならしたい......
  • ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2018/06/29
    素晴らしい
  • QAもスクラム導入、アジャイルQAとしての取り組み──Cybozu Meetup #11 開催レポート - Cybozu Inside Out | サイボウズエンジニアのブログ

    品質保証部の匠です。 2/21(水)に、Cybozu Meetup #11「アジャイルQA」を開催しました! QAプロセスに特化したMeetupで、参加者が集まるか少し不安でしたが、 当日は50名を超える方々にご参加いただき、大盛況の開催となりました! cybozu.connpass.com エントリでは、当日の様子を紹介しつつ、私のトークセッションについての補足をしてみようと思います。 トークセッション サイボウズでは多くの開発チームがスクラムによるアジャイル開発に移行しつつあります。 今回は、各チームのQAがどのようにアジャイルプロセスを導入しているのか、について事例紹介として3つのトークを実施しました。 アジャイルネイティブなQA by 三牧 麻美 アジャイルネイティブなQA from asami1015 www.slideshare.net 新卒入社2年目の三牧 麻美が、開発中の

    QAもスクラム導入、アジャイルQAとしての取り組み──Cybozu Meetup #11 開催レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2018/03/13
  • JMX で快適モニタリング環境を作ろう - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 今回は Java アプリケーションのモニタリング等で活躍する JMX について記します。JMX を用いれば、きめ細やかでかつ手軽にモニタリングすることができます。もちろんサイボウズが提供するクラウドサービス cybozu.com でも JMX を活用して日々モニタリングを行っています。 モニタリングの重要性については今さら言うまでもありません。一方で現実のモニタリングは何かと手間がかかったり属人化してしまったりすることがありがちです。JMX は銀の弾丸ではありませんが、少なくともメトリクスの収集・提供部分に関しては利便性を提供してくれます。JMX ユーザーが少しでも増えるよう、この記事で紹介させていただきます。 JMX とは JMX とは Java Management Extensions の略称で、Java

    JMX で快適モニタリング環境を作ろう - Cybozu Inside Out | サイボウズエンジニアのブログ
    a-know
    a-know 2018/02/06