cybozu.comを支えるオープンソース・2022春

1.1K Views

June 04, 22

スライド概要

サイボウズが開発、運用しているクラウドサービス「cybozu.com」では、様々なオープンソースソフトウェアを活用しています。その中で、サイボウズが開発したソフトウェアをOSSとして公開したり、既存OSSプロジェクトにコントリビュートしたり、知見をブログ等で公開するといった活動も行っています。

このセッションでは、そうしたオープンソースに関わる様々な活動を紹介します。また、社内エンジニアによるオープンソース活動を促進、支援するために策定した「OSSポリシー」についても解説します。

企業におけるオープンソース活動の一例として参考になれば幸いです。

==========
オープンソースカンファレンス2022 Nagoya
https://event.ospn.jp/osc2022-online-nagoya/
https://ospn.connpass.com/event/240067/

profile-image

freelance tech editor (and homemaker :-)) /Cybozu Inc./Internet Initiative Japan Inc. (Adviser)/Linux Foundation Research Japan Editor

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

cybozu.comを支えるオープンソース ──cybozu.comにまつわるtechな話① Sat, May 28, 2022 Open Source Conference 2022 Online/Nagoya Ko Kazaana( @windhole )

2.

名字ランキング 12642位 (およそ500人) かざ あな 風穴 @windhole 石橋さんのマネ こう 江

3.

自己紹介 かざ あな こう 風穴 江(@windhole) 1998年〜 フリーランス編集者 2012年8月〜 好評発売中! サイボウズ株式会社 開発本部 コネクト支援 一緒に働きたいと思える人が サイボウズのことを好きで サイボウズの人とつながっている 5年、10年後のエンジニア採用を やりやすくするための活動 ・技術広報アドバイザー(IIJ) ・Linux Foundation Research Japan Editor ・メディアの新規立ち上げ、編集サポートなど 個人活動 主夫(子育て歴18年) 横浜市認定学校地域連携コーディネーター 乳児院で抱っこボランティア

4.

Agenda サイボウズとは? サイボウズとOSS サイボウズのOSSポリシー まとめ

5.

サイボウズとは?

6.

会社概要 名称 サイボウズ株式会社(東証プライム:4776) 事業内容 グループウェアの開発、販売、運用 創業 1997年8月(愛媛県松山市にて) 従業員 連結で969名、平均34.5歳(2021年12月末) 拠点 東京、大阪、松山、名古屋、福岡、仙台、広島、札幌、那覇、 大宮、上海、深圳、台北、ホーチミン、サンフランシスコ、 シドニー、バンコク、クアラルンプールなど 業績 連結売上:184億円、経常利益:14億円(2021年12月末) 25年!

7.

業績 20,000 18,000 16,000 クラウドサービスを 開始して再成長へ 14,000 12,000 クラウド 10,000 パッケージ 8,000 パートナー 販売 6,000 4,000 2,000 迷走 準備期間 ダウンロード 販売 0 97 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21

8.

理念 チームワークあふれる社会を創る 文化 理想への共感 多様な個性を重視 公明正大 自立と議論

9.

グループウェア製品 業務に合わせて作り込む 業務システムを自由に作れるクラウドプラットフォーム 組 織 全 体 で 使 う 特 定 の 業 務 で 使 う 中・大規模組織向けグループウェア 中小企業向けのかんたんグループウェア メール対応を一元化できるメール共有システム そのまま使う

10.

導入社数 業務に合わせて作り込む 24,500社 10年 6,400社 組 織 全 体 で 使 う 業務システムを自由に作れるクラウドプラットフォーム 20年 中・大規模組織向けグループウェア 12,200社 25年 中小企業向けのかんたんグループウェア 19年 メール対応を一元化できるメール共有システム 73,000社 そのまま使う (2022年4月末時点) 特 定 の 業 務 で 使 う

11.

cybozu.com cybozu.com 220万ユーザー 50,000社 (2022年4月末現在) 業務システムを自由に作れるクラウドプラットフォーム 中・大規模組織向けグループウェア 中小企業向けのかんたんグループウェア メール対応を一元化できるメール共有システム

12.

サイボウズのエンジニアブログは、こちら。 Cybozu Inside Out https://blog.cybozu.io/ 開発、運用の現場の人たちが、自発的に自由に書いています。 記事のトピックが多種多様なのが大きな特徴。 ちょこっと CM

13.

サイボウズとOSS

14.

技術の全体像(ざっくり) Webアプリケーション 製品 長期に渡って開発、運用 運用基盤 自社開発のクラウド基盤 開発、運用を支えるしくみ 開発、運用を支えるしくみ

15.

利用している技術(ざっくり) 言語 JavaScript、TypeScript、Java、Swift、 Kotlin、PHP、C++、Go、Python 監視 フレームワーク React、Closure Library、jQuery、Spring ライブラリ Framework、Spring Boot、Smarty テスト サーバ インフラ関連 JUnit、Karma、Mocha、Selenium、 PHPUnit、Jest、Google Test、Selenide DBMS MySQL、Amazon Aurora、Elasticsearch 検索エンジン その他 パブリック GitHub Enterprise Server バージョン管理 GitHub Enterprise Cloud クラウド New Relic、Datadog VictoriaMetrics(Prometheus) Ubuntu(Linux)、Kubernetes、KVM、 LVM、Nginx、Hadoop、JVM、Rook/ Ceph、Terraform、Serverless Framework、Ansible ESLint、Phan、Babel、Vagrant、Docker、 Composer Amazon Web Services(AWS) Google Cloud Platform(GCP) ff 参考:「サイボウズの利用技術」(https://note.com/cybozu̲dev/n/n440 48fdd0b)

16.

利用している技術(ざっくり) 言語 JavaScript、TypeScript、Java、Swift、 Kotlin、PHP、C++、Go、Python に S S O の ん さ たく 。 す ま い て っ な に 話 ! 世 お す フレームワーク React、Closure Library、jQuery、Spring ライブラリ Framework、Spring Boot、Smarty テスト 監視 New Relic、Datadog VictoriaMetrics(Prometheus) サーバ インフラ関連 Ubuntu(Linux)、Kubernetes、KVM、 LVM、Nginx、Hadoop、JVM、Rook/ Ceph、Terraform、Serverless Framework、Ansible ま い ざ ご う と JUnit、Karma、Mocha、Selenium、 PHPUnit、Jest、Google Test、Selenide が り あ DBMS MySQL、Amazon Aurora、Elasticsearch 検索エンジン その他 パブリック GitHub Enterprise Server バージョン管理 GitHub Enterprise Cloud クラウド ESLint、Phan、Babel、Vagrant、Docker、 Composer Amazon Web Services(AWS) Google Cloud Platform(GCP) ff 参考:「サイボウズの利用技術」(https://note.com/cybozu̲dev/n/n440 48fdd0b)

17.

OSSへのフィードバック(一例) 【問題】 以下の操作の後に、データベースへのアクセスが一時的に遅くなる。 ・ブロックデバイスのサイズを拡張する ・上記デバイス上にあるファイルシステムのサイズを拡張する Linuxカーネル4.17にて、 修正パッチが取り込まれました! 【原因】 Linuxカーネルが、ブロックデバイスのサイズ変更時に、当該デバイ ス上のファイルシステムのページキャッシュを無効化していた。 【解決方法】 調査の結果、この処理(サイズ拡張時のページキャッシュ無効化) は、実は不要であることを突き止めた。Linuxカーネルが、そのよう な動作になるためのパッチを作成。 《参考》 「ファイルシステムサイズの拡張時にデータベースアクセスが スローダウンする問題の解決」 https://blog.cybozu.io/entry/2018/06/28/080000 問題発覚、原因調査から、最終的にパッチが取り込まれるま での経緯を記した記事。

18.

開発したOSSをGitHubで公開中! Cybozu Cybozu Go https://github.com/cybozu https://github.com/cybozu-go

19.

OSSプロジェクトへの寄付 2018年 Free Software Foundation(FSF)、Lombok Project、Mozilla Foundation、Python Software Foundation(PSF)、Software in the Public Interest(SPI) 2019年 Debian Project、ESLint、Free Software Foundation(FSF)、Let's encrypt、Mozilla Foundation、OpenBSD Foundation、PlantUML 2020年 Ajv、Babel、Debian Project、ESLint、Free Software Foundation(FSF)、Let's encrypt、Mozilla Foundation、OpenBSD Foundation、PlantUML、webpack 2021年 Ajv、Babel、Canonical、Debian Project、ESLint、Free Software Foundation(FSF)、 Let's encrypt、Mozilla Foundation、OpenBSD Foundation、PHP Foundation、 PlantUML、Staticcheck、azu、core-js、curl、webpack 2022年 寄付を継続します!(詳細は後日) ff 参考:「サイボウズの利用技術」(https://note.com/cybozu̲dev/n/n440 48fdd0b)

20.

サイボウズのtechな人たちが開催するイベントは、 こちらでチェック! Cybozu Inside Out https://cybozu.connpass.com/ ◎ 5月31日(火) 17:00〜 「Cybozu Frontend Monthly #23」 ちょこっと CM

21.

サイボウズの OSSポリシー

22.

サイボウズのOSSポリシー CC0で公開中! https://github.com/cybozu/oss-policy

23.

OSSポリシーとは? OSSのソースコードは職務著作としない (2.1 著作権の帰属) 【目的①】 社員が、過大な負担なくOSS関連活動を行えるよう支援 社員が所有するOSSは、業務時間を使って 開発しても、自動的に社員個人のもの (2.2 著作権の譲渡) 【目的②】 オープンソースコミュニティにおける良き一員であるために 必要なことを規定 【スコープ外】 OSSポリシーで取り扱う範囲は、著作権、特許、商標のラ イセンスに限定。 OSSに関連する業務の細かいルール、具体的な手順など は、別途「OSSガイドライン」でカバー 発見したOSSの不具合をアップストリームに 報告するのは努力義務(前文) OSSガイドライン OSS関連活動をする際に必要となる基礎知識の解説、OSSを 作る場合に必要となること、OSSを使う場合に必要となるこ と、OSSを支援する方法など。

24.

Before|After OSSポリシー策定前 職務著作をOSSとして公開する際は、部長の許可を得る。 OSSポリシー策定後 OSSのパッチを書いたけど、社外公開して良い? → OK!(申請も許可も不要) 業務時間中に、自分のOSSのコードを書いたけど、これは 会社の著作物(=職務著作)? → いいえ、個人のOSSとしてOK!(申請も許可も不要) OSSの不具合を見つけたので、開発元へフィードバックした い。業務としてやってよい? → もちろんOK!(むしろ努力義務なので、ぜひ!)

25.

OSSポリシー:0.本文書について 0. 本文書について サイボウズ株式会社およびその子会社(以下、「当社」とい う。)ならびに当社従業員が作成または利用するオープンソ ースソフトウェア(以下、「OSS」という。)について、そ の著作権、特許権および商標権に関する事項を定める。 なお、OSS 管理組織は本文書を作成、管理し、その内容を 変更することができるものとする。 また、本文書について は、Creative Commons Zero(以下、「CC0」という。) にて公開され、 CC0のライセンス に従って取り扱われるも のとする。

26.

OSSポリシー:1.前文 1. 前文 今日 OSS ならびに OSS 関連活動はソフトウェアで価 値を提供する企業に不可欠なものとなった。 当社の製 品・サービスにおいても数多くの OSS が利用されてお り、従業員も業務や個人活動で OSS 関連活動の機会が 増えている。 本規程の第一の目的は、当社ならびに当社従業員が OSS 関連活動を過大な負担なく行えるよう支援するこ とである。 そのために、当社、当社従業員または他者の 著作権、特許権および商標権に関する事項を定める。 本規程の第二の目的は、当社がオープンソースコミュニ ティにおける良き一員であるために必要な規定を定める ことである。 そのために、ライセンス違反への対応方針 ならびに社員が発見した他者 OSS の不具合を報告する 努力義務を定める。 本規程はライセンスに限定して定めるものであるが、 OSS に関連する業務はコミュニティ支援等他に数多く存 在する。 当該関連業務については別途定めるが、本規程 の目指すところである「当社ならびに当社従業員の OSS 関連活動の支援」および「当社がオープンソースコミュ ニティの良き一員であるようにすること」は一貫して共 通するものとする。

27.

OSSポリシー:2.著作権 2. 著作権 当社従業員が作成したソースコードおよび関連ドキュメ ントの著作権について、以下に規定する。 2.1. 著作権の帰属 以下のいずれかに該当するものを除き、その著作権は従 業員に原始的に帰属するものとする。 1. 当社の極秘情報を含むもの 2. 上長の明示的な指示または承認のもと作成されたもの 2.2. 著作権の譲渡 1. 従業員は、OSS 管理組織に対し OSS として公開す ることを前提とする著作権の譲渡を申請しその承認を 受けることにより、著作権を当社から譲り受けること ができる。 ※ OSS 管理組織は、別途定めるガイドラインの規定に 従って、当該申請を承認または拒否することができる。 2. 従業員が自己の所有する OSS プロダクトに対して自 己が業務で作成した著作物を取り込む場合は、前項 に定める手続きをしなくとも、当社から当該従業員 に対し著作権が譲渡されたものとみなす。 ※ 業務で作成した著作物の詳細については、別途ガ イドラインに規定する。

28.

OSSポリシー:3.従業員個人のOSS 3. 従業員個人の著作物のオープンソース化 および当社商標の使用 3.1. Disclaimer(免責条項)の記載 当社の商標を使用したうえで個人の著作物をオープンソ ース化する場合、当該著作物が当社の著作物であると誤 解されないようにするため、従業員はREADME に Disclaimer(免責条項)を記載しなければならない。 ※ Disclaimer(免責条項)の詳細については、別途定め るガイドラインに規定する。 3.2. 当社商標の使用 当社の商標については、別途定めるガイドラインの規定 に従って、使用するものとする。 ※ ソースコード、文書等の中で対象を明示することを目 的とする場合には、別途定めるガイドラインの規定にか かわらず、当社の商標を使用することができる。

29.

ちょこっと サイボウズのtechな情報は、こちらでチェック! Cybozu Tech https://tech.cybozu.io/ 記事、スライド、ビデオ、OSS情報などが まとまったポータルサイト! CM

30.

まとめ

31.

OSS活動のススメ OSSに関わらずソフトウェア開発するのは非現実的 OSSをより良くするために、エコシステムの一員になる 業務でやるなら、OSSポリシーがあると便利だよ

32.

Appendix

33.

参考情報 • 「サイボウズのオープンソースソフトウェアポリシーを紹介します」 • 「業務利用しているOSSの休日個人開発は業務か?」 • 「業務時間で書いたパッチは誰のもの? OSS活動にまつわる罠 (builderscon tokyo 2018)」

\初めてのセミナーを開催します/

採用セミナー開催