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

  • もうリリースは怖くない ― 大きな変更を安全に本番適用するTips - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、AWSkintoneのDevOpsエンジニアをしている@ueokandeです。 AWSkintoneは2019年9月のローンチから現在まで、幾度となく機能改善をしてきました。 ローンチ当時よりも利用者が増え、スケーラビリティのために内部設計を大きく変更することもあります。 先日公開したメール送信の設計変更もその1つです。 blog.cybozu.io 安定運用のために必要なリリースではありますが、実装を大きく変えることで不具合混入のリスクもあります。 それだけではなく、パフォーマンス改善のつもりが、番環境に投入して逆にパフォーマンス低下が発覚するというケースもあります。 この記事では、大きな変更を安全にリリースするためのTipsを紹介します。 記事の最後ではSpring Bootの実装例と、Kubernetesでの実現方法も紹介します。 切り戻し戦略 大きな変更を安全にリ

    もうリリースは怖くない ― 大きな変更を安全に本番適用するTips - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2021/07/28
  • 2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。開発部 オンボーディングチームの酒井(@sakay_y)です。社内のオンボーディングコンテンツを、どんどん社外へ公開することを夢見ています。 2021年もエンジニア新人研修を行いましたので、軽い紹介と、講義資料および一部講義動画(New!)を公開いたします。 2021年のエンジニア研修について 講義資料公開 Webアプリケーション基礎 HTTP/DNS ソフトウェアライセンス ソフトウェアテスト テスト自動化 アクセシビリティ Docker Chrome Developer Toolsの使い方 サイボウズのアジャイル・クオリティ デザインの役割と関わりかた データベース CI/CD セキュリティ モブに早く慣れたい人のためのガイド ITコミュニティ文化と情報発信に共通する成長と貢献の要素 正規表現 Kubernetesを使った開発入門 モニタリング入門 gRPC入門 日語話

    2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2021/07/20
  • ドキュメントの文章校正には、textlintが便利 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは! 開発部 テクニカルコミュニケーションチーム(以下、TCチーム)の原嶋です。 さてさて。 みなさん、ドキュメントの文章校正(以下、校正)ってどんな風にやっていますか? 目視チェックでバッチリだぜ!という方も もちろんいると思うのですが、チェックポイントが多いと指摘が漏れてしまいがちですよね。そして、会社の公式文書となれば、チェックポイントはあれもこれもと山のようになります。 TCチームでも長年 校正に頭をかかえていましたが、textlint と+αのツール を使って、校正の悩みを解決しました。 今回はその経緯をお話させてください。 校正って確認する項目がたくさん TCチームでは、サイボウズ製品のユーザーサポートコンテンツ(ヘルプやリリースノートなど)を作成しているのですが、 それらのコンテンツは会社の公式文書なので、毎回の校正でチェックする項目が多々あるんです。 校正おわったー

    ドキュメントの文章校正には、textlintが便利 - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2020/09/13
  • 2020年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    2020年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2020/09/08
  • 生産性向上チームの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、生産性向上チームです。今回は、私たち「生産性向上チーム」について紹介いたします。 生産性向上チームとは サイボウズの技術領域と生産性向上チームの立ち位置 生産性向上チームは主に、次のような業務を行っています。 チームを横断した開発効率を高める基盤の整備 開発チームの業務の自動化や効率化の支援 最新の生産性向上に関わる技術のキャッチアップ、探求 などなど、一言でいうと「サイボウズのエンジニアがつらいと思っている部分を最高にしていく」ために活動しているチームです! メンバー 生産性向上チームメンバーで記念撮影 生産性向上チームのメンバー数は現在5名です。そのうち3名は他のチームと兼務しており、そのつながりを活かして業務に取り組んでいます。 各メンバーについて、簡単に紹介いたします。 宮田 Twitter: @miyajan 出身:東京 得意なこと、好きなこと CI/CD とか自動化

    生産性向上チームの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2020/08/31
  • CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。Garoonチームの杉山(@oogFranz)です。 以前 #PHPerKaigi 2020 にて、「静的解析の育て方」というタイトルで発表いたしました。この発表ではレガシープロダクトにおいて静的解析が有効であることと、「育てる」という比喩表現で静的解析のルールを強くしていく戦略についてお話ししました。 発表後のAsk the Speakerでは様々な方から講演へのフィードバックをいただき、特に既存のプロダクトに静的解析の導入・運用する大変さやその改善方法に関して議論を深めることができました。議論に参加いただいた皆様大変ありがとうございました。 議論の中でルールを自動的に強くしていく方法のヒントをいただきました。そのヒントを元にCircleCIで勝手に強くなる静的解析が実現ができたので紹介したいと思います。 勝手に育つ静的解析の作り方 通常、レガシープロダクトにおいて静的解析を

    CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2020/07/08
  • styled-componentsの採用と既存資産を捨てた理由 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。フロントエンドエキスパートチームの@nakajmgです。 私が所属しているフロントエンドエキスパートチームでは、現在 kintone の脱レガシーの一環として React + TypeScript 化に取り組んでいます。この取組の中で Scss で定義されている既存のスタイルを styled-components で書き直していくという決定をしました。 今回は styled-components の採用を決定するまでの過程や、既存の Scss ファイルの扱いについて検討した内容などを紹介します。 スタイル定義方法の検討 kintone にはユーザーが JavaScript でカスタマイズできる機能があり、ユーザーが行っているカスタマイズの中には、DOM 構造や CSS のクラス名に依存しているものもあります。このようなカスタマイズはサポートの対象外ではありますが、ユーザーにでき

    styled-componentsの採用と既存資産を捨てた理由 - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 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 | サイボウズエンジニアのブログ
    nkgr
    nkgr 2020/04/16
  • フロントエンドの開発体験向上と脱レガシー - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。フロントエンドエキスパートチームの@nakajmgです。 私が所属しているフロントエンドエキスパートチームは、プロダクトのフロントエンドを横断的に支援するチームです。今回はフロントエンドエキスパートチームが行っている、プロダクトへの支援活動について紹介します。 フロントエンドエキスパートチームがどういったチームかに関しては、次の記事をご覧ください。 サイボウズのフロントエンドエキスパートチームの紹介 フロントエンドエキスパートチームの活動 サイボウズは主力プロダクトとしてGaroonとkintoneを提供しています。この 2 つのプロダクトはそれぞれ提供開始の時期が 2002 年と 2011 年となっており、浅くない歴史を持っています。 サイボウズの Web フロントエンドは、フロントエンド専任ではないエンジニアがバックエンドと合わせて担当しています。そうした背景もあり、フロン

    フロントエンドの開発体験向上と脱レガシー - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2020/04/07
  • リモート・モブプログラミングという働き方 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!kintone開発チームの太田 (@kigh) です。 この記事では、自分のチームで2年以上続けているリモート・モブプログラミング(以下「リモート・モブ」)について、 進め方の具体例や所感、実際にやる上でのTipsを紹介したいと思います。 リモートワークが急速に普及する中、リモート・モブは働き方の選択肢の一つとして存在感を増してきていると思います。 この記事から少しでも参考になる点が見つかれば幸いです。 リモート・モブプログラミング この記事では、テレビ会議システムなどのツールを使いつつ、物理的に離れたチームでモブプログラミングをすることをリモート・モブと呼びます。 現在、kintoneの新機能開発メンバーは6拠点のオフィスに分散し、また多くのメンバーがカジュアルに在宅勤務を活用するリモートチームとなっています。 また2018年から2年以上、全ての設計・実装タスクを原則モブプロ

    リモート・モブプログラミングという働き方 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • OSSへの貢献ノウハウ - Cybozu Inside Out | サイボウズエンジニアのブログ

    はじめに こんにちは、Necoプロジェクトのsatと申します。記事は世間で何かと重要といわれつつもなぜ重要なのかがわかりにくく、かつ、広くやりかたが知られていないOSSへの貢献ノウハウについて述べます。記事は筆者が過去にはLinuxカーネル、現在ではRookというOSSへの貢献に業務で取り組んできた経験に基づいて書きました。 ひとくちに貢献といっても様々な方法がありますが、ここではissue発行やPR発行などのOSSの開発へ開発者が直接かかわるような貢献に焦点を絞ります。 記事の想定読者は次のようなかたがたです。 業務でLinuxKubernetes,MySQLなどの有名どころのOSSを使っている バグや機能不足で困っている OSSへ貢献したことがない 貢献する必要性ががわからない 自分では必要性がわかっているが、会社にうまく伝えられない 貢献したいものの、やりかたがわからない 貢

    OSSへの貢献ノウハウ - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2020/02/17
  • 2019年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。皆様、夏はいかがお過ごしでしたか。 私は毎年実家に帰省し、そして毎年体調を崩すので、絶対風水的になんか合わないんだと思っています。コネクト支援チームのsakay_yです。 先日、2018年の新人研修資料を公開し、たくさんの反響をいただきました*1。ありがとうございました。 2019年もエンジニア新人研修を行いましたので、その紹介と講義資料を公開いたします。 2019年のエンジニア新人研修について 今年の研修は、組織運営チーム*2が取りまとめ、以下のような3構成となりました。 必修講義 誰に: 開発/運用部に配属される新入社員​ 何を: どのチームに行っても必要となる基礎的な知識/技術/ツールを学び、体験できた 選択講義 誰に: 学びたい人が​(=新入社員に限らず) 何を: 興味があることを学べた チーム体験(2週間 * 3チーム) 誰に: 開発/運用部に配属される新入社員

    2019年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2019/09/05
  • サイボウズのフロントエンドエキスパートチームの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、フロントエンドエキスパートチームです。 今回は私たちフロントエンドエキスパートチームの紹介をします。 フロントエンドエキスパートチームとは サイボウズの技術領域とフロントエンドエキスパートチームの立ち位置 まずサイボウズのWebフロントエンドについて触れておくと、以下の特徴を持っています。 プロダクトにとって、Webフロントエンドが非常に重要 B2Bのプロダクトを開発しているので、WebおよびPCでのユーザー利用率が高い JavaScriptで製品をカスタマイズするためのAPIやSDKを提供している 継続的な開発が必要で、Webフロントエンドの変化に追従していく必要がある 大規模なWebアプリケーションが多く、プロダクトライフサイクルが非常に長い プロダクトチームにWebフロントエンドがいるわけではない プロダクトチームのエンジニアがWebフロントエンドからバックエンドまで一貫

    サイボウズのフロントエンドエキスパートチームの紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2019/08/06
  • ドキュメントサイトの管理にはNetlify+静的サイトジェネレーターが便利 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!開発部テクニカルコミュニケーショングループの仲田(@naoh_nak)です。 最近WeWorkみなとみらいに出没し始めました。おしゃれ過ぎて少し落ち着かないのですが、慣れたら自分もそちら側の人間だと思うようになるのかもしれません。 前回はヘルプサイトをマークダウンで制作する話をしました。そのサイトのホスティングにNetlifyを使うことでいい感じに制作プロセスを回せているので、今回はその話をします。 Netlifyもう使ってるよ!という方には今更の内容かもしれませんが、ブログなど小規模なサイトの運用に使っているケースが多いのではと思います(ネットにある情報を見る限り)。サイボウズのヘルプサイトは1万ページを超え、日英中3言語で運用しています。このような大規模なサイトでの運用例としての参考にもなれば嬉しいです。 Netlifyとは Netlifyって何?って方もいますよね。Net

    ドキュメントサイトの管理にはNetlify+静的サイトジェネレーターが便利 - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2019/03/12
    新しくコンテンツ管理するならよさそう。 既存なら開発チームならGithubのWikiとかで良いと思うし、非エンジニア向けなら既にWordpressで構築してるやつがあるけど、置き換えるほどのメリットがあるかなー🤔
  • 組織変更したら部長がいなくなりました - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    組織変更したら部長がいなくなりました - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2019/02/13
  • サイボウズ版 MySQL パフォーマンスチューニングとその結果 - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    サイボウズ版 MySQL パフォーマンスチューニングとその結果 - Cybozu Inside Out | サイボウズエンジニアのブログ
    nkgr
    nkgr 2018/08/08
  • 1