タグ

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

  • サイボウズサマーインターン 2023 報告 〜 ストレージコース - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ストレージチームの林、大神です。 サイボウズでは毎年サマーインターンシップを開催しています。2023年度のサマーインターンシップもさまざまなコースを用意しました。記事では8/28(月)~9/8(金)の10日間にわたって開催されたストレージコースでの取り組みについて紹介します。 ストレージコースでは昨年までと趣向を変えて、ストレージチームの普段の業務にほぼそのまま参加してもらい、よりリアルな業務を体験していただきました。 今回のインターンシップの参加者は1名でした。 一日の流れ ストレージチームの業務は主にモブプログラミング形式で行っています。そのため、今回のインターンでもインターン生1名と社員2名の合計3名で Zoom を用いたリモートモブプログラミング(以下、モブ)を行いました。 ただし、ストレージチームでは一日中モブを行っているわけではなく、モブの開始前と終了後のそれぞれ

    サイボウズサマーインターン 2023 報告 〜 ストレージコース - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2023/10/02
  • マネージャー、いないと無理だったので、またつくりました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。開発副部長の okady です。 サイボウズ開発部では2019年に組織変更を実施し、当時のインタビュー記事で私はこんなことを言っていました。 「マネージャー、いないと無理なら、またつくればいい」 サイボウズの開発部がマネジャーをなくしてみた「いないと無理なら、またつくればいい」 | サイボウズ式 そして今回の記事は、当時の私自身の言葉に応えるタイトルにしました。 「マネージャー、いないと無理だったので、またつくりました」 2019年の組織変更から3年が経ち、目的は概ね達成できました。しかし、思い通りにいかなかったことや当初想定していなかった問題もたくさんありました。そして2022年5月、開発部の組織力をさらに強化すべく再び大きな組織変更に取り組むことを決断しました。 この記事では、2019年の組織変更とその後を振り返った上で、2022年に実施した新たな組織変更についてご

    マネージャー、いないと無理だったので、またつくりました - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2022/11/05
  • グループウェアの再定義を一緒にやりませんか - Cybozu Inside Out | サイボウズエンジニアのブログ

    ymmt (@ymmt2005) です。 昨年までは Neco プロジェクトとして自社データセンターを Kubernetes を中心としたシステムに刷新していました。 次の活動として、今度は Identity and Access Management (IAM) 分野に取り組むことにしました。 IAM というのは、複数のサービスを跨いでサインインするシングルサインオン(SSO)や自動的にユーザーを作成・削除するプロビジョニングなどを実現するものです。 代表的な製品としては Okta や Azure Active Directory があります。 今回はなぜ IAM 分野に取り組むことにしたのかの背景と、今後の取り組みについてご紹介します。 サイボウズ製品の構成と課題 サイボウズでは約 20 年前の創業時から Web グループウェアを開発し販売しています。 サイボウズ Office および

    グループウェアの再定義を一緒にやりませんか - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2022/06/23
  • bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ社内ではC++で開発している製品があります。 未知のバッファオーバーランなどの脆弱性への対策として、重要なコンポーネントについてはプロダクション環境で利用しているバイナリでも AddressSanitizer を有効にしてビルドしています。 その製品で利用しているコンパイラをgcc5.3.0からgcc7.5.0に更新したところ性能劣化が発生しました。 製品コードとは別の部分が原因のため、根原因の追跡が難しそうです。perf,bpftraceを使って性能劣化を追いかけてみましょう。 記事で利用しているAddressSanitizer, bpftrace, perfコマンドはネット上に良質な記事がありますので、使い方などの解説は今回は省略させていただきます。 gcc7.5.0において、性能劣化が発生する再現コードとして次のようなものを用意しました。 #include <strin

    bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2021/10/27
  • Macのゼロタッチデプロイはじめました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。情報システム部のあおてつ(@ao_Tetsu)です。 今回はInside Outとしては珍しく情シスの取り組みを紹介したいと思います。 サイボウズの情シスは「誰でも、いつでも、どこでも最高の仕事ができるITシステムを作る」というミッションを掲げて業務を行っています。 会社で貸与するPCが4種類+2種類から選べるのもそのミッションに基づいた施策の一つです。 100人100通りの働き方を支えるサイボウズ流情報システム部門の在り方 from ao Tetsu www.slideshare.net そして今年(2021年)の2月から、Macのセットアップはゼロタッチデプロイで提供する運用を開始しました。その経緯や仕組み、実際にやってみてどうだったか?というリアルを公開いたします! ゼロタッチデプロイ導入の経緯 サイボウズでは社員へ貸与しているMacは以前よりMDMを利用して社内外問わず

    Macのゼロタッチデプロイはじめました - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2021/07/30
    リプレイスはたしかにそれでいいけど、新入社員対応はやっぱ時間的に事前にやらざるをえないよなー。そこもセキュアかつ同じプロセスにのせられるといいんだけど。
  • 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 | サイボウズエンジニアのブログ
    sora_h
    sora_h 2021/07/28
  • MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo

    MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2021/05/24
  • 富岳版XbyakがIntelの深層学習ライブラリoneDNNにmergeされる - Cybozu Inside Out | サイボウズエンジニアのブログ

    初めに サイボウズ・ラボの光成です。 このたび、Intelの公式深層学習ライブラリoneDNNに、富士通が開発しているスーパーコンピュータ富岳向けのPull Requestがmergeされました。 その開発に関わることになった経緯を紹介します。 目次 概要 Xbyakとは 動機 Intelとの関わり 富士通との関わり 概要 富士通研究所はスーパーコンピュータ富岳で深層学習(ディープラーニング)を高速に処理するためのソフトウェアを開発してます。 そのためにIntelが開発している深層学習ライブラリoneDNNを富岳に移植して改良しています。 このたび、その成果の一部が家のoneDNNに取り込まれました。 富岳はA64FXというArm v8-Aにベクトル演算機能SVEが追加されたCPUを持ちます。 oneDNNを富岳に移植するには、私が開発しているXbyakのA64FX用Xbyak_aarc

    富岳版XbyakがIntelの深層学習ライブラリoneDNNにmergeされる - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2020/11/18
  • Kubernetes 用 CNI プラグイン Coil v2 の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    Neco プロジェクトの ymmt です。 サイボウズでは 2018 年から Kubernetes 用のネットワークプラグイン Coil を開発しています。 当時は Kubernetes の知識がチームに蓄積されておらず、いささか使い勝手が悪い仕様でした。 そこで 3 か月ほど前から設計を全面的に見直した Coil v2 の開発を開始し、先日リリースしました。 Coil v2 は多くの方にご利用いただけると思いますので、記事にて機能と使い方を紹介します。 特徴 高速な Pod 間通信 Namespace 毎に指定できる複数の IP アドレスプール IPv4/v6 シングルスタックおよびデュアルスタック 任意のルーティングソフトウェアと連携可能 オプトイン方式で外部ネットワークへの NAT 接続を提供 設定操作が kubectl で可能 使い方 kind で試す しっかりインストールして使

    Kubernetes 用 CNI プラグイン Coil v2 の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2020/10/29
  • サイボウズサマーインターン2020 報告 〜 OSSへの貢献を通して学ぶKubernetes基盤開発 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。Necoチームの池添とsatです。 サイボウズは毎年サマーインターンシップを開催しています。 今年は新型コロナウイルス(COVID-19)の影響で一時開催が危ぶまれました。 しかし、この状況で学生の皆さんの就業体験の機会が失われてしまうのもよくないと考え、フルリモートでインターンシップを実施することとしました。 blog.cybozu.io Kubernetes基盤開発コースは8月と9月の2回開催で、1回目の8月3日~14日(9日間)の日程には4人の学生が参加してくれました。 Kubernetes基盤開発コース担当のNecoチームはサイボウズの中でも、もっともOSSを活用しているチームです。 そこでこのコースでは、Necoチームが取り組んでいるKubernetes基盤開発について、OSSへの貢献を通して知ってもらう機会にしました。単に開発をするだけではなく、サイボウズがどういう

    サイボウズサマーインターン2020 報告 〜 OSSへの貢献を通して学ぶKubernetes基盤開発 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2020/08/25
  • Neco のネットワーク - 実装編 - Cybozu Inside Out | サイボウズエンジニアのブログ

    Neco プロジェクトの ymmt です。Neco は cybozu.com のインフラを刷新するプロジェクトで、先日は全面的に見直したネットワークのアーキテクチャと設計をご紹介しました。 blog.cybozu.io 簡単にまとめると、spine-leaf ネットワークを実現するにあたって、全てのサーバーで BGP + BFD + ECMP を使うことで Layer-2 拡張技術を使うことなく経路の冗長化と障害時の高速な経路収束を達成しましょうという内容でした。 今回は具体的な実装方法について解説します。ただ、かなり前提知識が必要となるため以下二つのチュートリアルを別に用意しました。BGP や BIRD に詳しくない方はまずこちらをご覧ください。 データセンター内で使う BGP の基礎知識 ルーティングソフトウェア BIRD の使いかた 記事で解説するのは以下の内容です。長文になります

    Neco のネットワーク - 実装編 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2018/11/01
    ウオォ [Address] Scope=link は知らなかった…。 krt_prefsrc 頑張るのちょっと避けれる気がするな…
  • Necoのネットワーク - アーキテクチャと設計編 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。「Neco」の @ueokande です。 サイボウズでは、cybozu.comのアーキテクチャ刷新プロジェクトNeco」を実施してます。 その思いについては以下の記事からどうぞ。 アーキテクチャ刷新プロジェクトNeco」の紹介 運用部長を退任して Neco プロジェクトに専念します 今回は、Necoにおけるネットワーク設計についてお話します。 ネットワークの方針 ネットワークの耐障害性は必須の条件です。 Necoでも同様で、ネットワーク機材の単一障害点が無いネットワーク構成にする必要があります。 具体的には以下のような要件です。 ホストマシンのNICを二重化して、片方のNICが故障しても通信が行えること ネットワークスイッチを冗長化して、スイッチが故障してもスイッチ下のホストが停止しないこと スイッチを冗長化する方法は、以下のような選択肢があります。 STP (Span

    Necoのネットワーク - アーキテクチャと設計編 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2018/07/05
  • ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2018/06/28
    SQLiteのつかいみちの方が気になる
  • Safari 11 Intelligent Tracking Preventionについて - Cybozu Inside Out | サイボウズエンジニアのブログ

    はじめまして、開発基盤部フロントエンドエキスパートチームの小林(@koba04)です。 チームメンバーがまだひとりなので、仲間を募集中です! macOS High Sierra及びiOS11のSafariで導入されたIntelligent Tracking Preventionについて紹介します。 詳細は、下記のWebKitのブログに書かれていますが、Intelligent Tracking Preventionはクロスサイトトラッキングを制限することを目的とした機能です。 Intelligent Tracking Prevention クロスサイトトラッキングとは まず最初にクロスサイトトラッキングとは、複数サイト間でのユーザーの行動をトラッキングすることです。 クロスサイトトラッキングを行うには、トラッキングしたいサイトに、Cookieを設定した共通のリソースを埋め込みます。 これによ

    Safari 11 Intelligent Tracking Preventionについて - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2018/02/09
    SSO が破滅して困ってる
  • 半年かかったバグ調査の顛末は - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 今回は原因究明に半年以上かかったバグ調査の紹介をいたします。 弊社はクラウドサービスcybozu.comを提供しています。 クラウドサービスでは障害対策のためのデータバックアップやレプリケーションが必須です。 現在ラボの星野がメイン、私はサブとして弊社サービスでの利用を目指した次期バックアップシステムWalB(GitHub)を開発しています。 WalBは、ファイルシステムとdiskの間に入ってIOを全て記録するブロックデバイスとIOのログを管理するツールからなるシステムです。 詳細はリンク先をごらんください。 発端 去年はラボ内の開発環境でテストを進め、社でテスト運用を開始するのが目標でした。 ところがラボでテストを開始して4カ月後の2015年4月、不正なlogpackが検出されました。 logpackとはWalBで用いられるデータフォーマットの一つです。

    半年かかったバグ調査の顛末は - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2016/01/08
    つらすぎる
  • nginx の設定をレビューするときの観点をまとめてみた - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。 インフラチームの野島(@nojima)です。 チームのメンバーに nginx の設定について気をつけるべき点を共有するために、レビュー観点を書きました。 せっかくなのでここで公開します。 ほとんどの項目は自分やチームのメンバーの実体験に基いています。 レビュー観点 server server_name が他のやつと被っていないか。 listen する IP アドレスが同じ場合、server_name で区別できないといけない。 TLS を使う場合、SNI をサポートしないクライアントでは TLS 用の設定が default_server のものが使われる点にも注意。 TLS を使う場合、listen ディレクティブに ssl オプションを書いているか。 location location のマッチの順番に注意 正規表現の location は前方一致の location より

    nginx の設定をレビューするときの観点をまとめてみた - Cybozu Inside Out | サイボウズエンジニアのブログ
  • cybozu.com 稼働状況 を React/Redux で作り直した話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。Sales Systemチームの金子です。Sales Systemチームでは、cybozu.com Store や、販売管理システム等の開発をしています。 このエントリでは、cybozu.com 稼働状況のフロントエンドReact/Reduxで作り直した話を書いていきます。「React/ReduxでWebアプリケーションを作ってみようと考えている人」を対象としています。 TOC 「cybozu.com 稼働状況」とは? 作り直した背景 技術概要 React/Fluxについて React/Redux Routing Resources Async Multilingualization/Localization ES6 Utility Lint Testing 取り組んでみた感想 まとめ 「cybozu.com 稼働状況」とは? クラウドサービスはサービスの稼働状況をステータス

    cybozu.com 稼働状況 を React/Redux で作り直した話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2015/11/04
    まだ本番リリースされてないのに記事になるのおもしろい
  • cybozu.com のリバースプロキシを nginx にリプレイス - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。インフラチーム Hazama の深谷です。 デブサミ 2015 で、cybozu.com の自社製リバースプロキシを全面的に再実装した話をしてきました。 今回は、そちらの資料を紹介いたします。 cybozu.com ではお客様ごとに異なるサブドメイン(ex. demo.cybozu.com)を用意しています。サブドメイン方式には、お客様ごとに異なる IP アドレス制限をかけられるとか、Same-Origin-Policy のため安全に JavaScript でカスタマイズができるといった利点があります。 このサブドメインを実現しているのは、従来 Apache で実装されたリバースプロキシでした。しかし、この時の実装はサブドメインごとに異なる VirtualHost を定義する方式で、お客様サブドメインの数に比例して Apache の設定を変更する時間が伸びていくというものでした

    cybozu.com のリバースプロキシを nginx にリプレイス - Cybozu Inside Out | サイボウズエンジニアのブログ
    sora_h
    sora_h 2015/02/20
    apacheのリロードを顧客が発行するのすごい…
  • 自動障害回復システム 月読の話 - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    自動障害回復システム 月読の話 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 暗号の世界最速実装を目指す ── 光成滋生 | Cybozu Inside Out

    サイボウズに在籍する技術者を紹介するインタビューシリーズ。 光成滋生(Shigeo Mitsunari) 2007年7月、サイボウズ・ラボ株式会社に入社。 「キーの数が多い」という理由で日語配列キーボードを愛用。「:」キーにバックスペースを割り当て、「変換」や「無変換」キーをAltやCtrlのような(他のキーと組み合わせて押すことで機能する)Modifierキーとして活用するなど、徹底的にカスタマイズしている。 プログラマには、1つのプロジェクトだけに長く携わり続ける人もいるが、異なる複数の技術やソフトウェアを世に問い、マルチな才能を遺憾なく発揮する人も少なくない。たとえばPerlのオリジナル作者として著名なLarry Wallは、今では「パッチを当てる」という普通の表現にもなっているpatchコマンドを作ったことでも知られている。また、Linuxカーネルを最初に作り始めたLinus T

    暗号の世界最速実装を目指す ── 光成滋生 | Cybozu Inside Out
    sora_h
    sora_h 2013/08/05
    午後のこ〜だ、CIうごかしてたんだ…