EC-CUBE Advent Calendar 2022の9日目の記事です。
はじめに
私は今まで、株式会社イルグルムでアドエビスの開発をしていたのですが、今年の夏から同じグループ会社であるEC-CUBEの開発元である「株式会社イーシーキューブ」にジョインすることになりました。それを受けて、株式会社イーシーキューブの裏側を少し紹介できればと思っております。
驚きその1:OSSの開発には、社外秘情報がほとんどない
これは最初に驚いたことなんですが、普通ソフトウェアを開発してる会社というのはプロジェクトの情報というものは秘匿されます。
様々な情報がインサイダー情報に該当することとなり、情報管理には気をつけなければいけません。
しかし、そもそもEC-CUBEの情報は全世界に公開されています。
Githubに行けばすべてのソースコードが見れるし、issueを見れば今どのようなことが開発課題になっているのかもわかります。
脆弱性の情報も開示しています。
インターネットに接続できる環境であれば、開発に関して社員と社員じゃない人が持ってる情報の違いは無きに等しいです。
今までプロプライエタリなソースコードばかりに触れてきた身としては非常に新鮮な体験でした。
驚きその2:様々なものが自動化されている
開発作業を行い、ソースコードに改変を加えた際に大変なのがテスト作業。
ソースコードの規模が大きくなってくると、既存の機能を破壊していないか、というリグレッションテスト(=回帰テスト)の重要性も高まってきます。
しかし、それらのテスト工数もソースコードの規模に比例してどんどんと増えていくのが実情です。
EC-CUBEでは、そんなテストが「Unitテスト」と「E2Eテスト」として自動化されています。
ご自身で改変したソースコードを元にいわゆるプルリクエストを送った時、GithubActionという機能を用いて自動実行されます。
結果としてテストがすべてパスできれば、少なくとも既存の機能に破壊が発生していないことが確認できます。
コードのカバレッジも計算されるため(上図参照)テストは実行されたけど、十分なテストを実施できているか?のチェックも自動で確認できます。
社内は社内で、また色んなものが仕組み化・自動化されていました
ここには詳しく書きませんが、社内のメンバーの誰かが「面倒くさい!」と感じることがあれば、「じゃあもっと楽にできるようにしよう!」とツール等の開発をする。
そんな日常が繰り広げられている職場を見て、エンジニアリングの本質を垣間見る機会が多いと感じます。
(自分も頑張らないと!というモチベーションにも繋がります。)
驚きその3:中の人は思った以上に少数精鋭→つまり・・・?
「日本で一番選ばれ続けているECオープンソース」 として君臨しているEC-CUBE。
さぞ、大規模な開発スタッフが常駐しているんだろうと思うわけですが、実際に会社の人数は30人にも満たない人数で運営されています。
システムエンジニアだけに限って言えば、数名レベルです。
ここだけをかい摘むと「個々人のパフォーマンスが高いんだな」と思われるかも知れませんが、
私が言いたいのはそういうころではありません。確かに、同僚の方々のエンジニアスキルは高いなと思いますが。。。
オープンソースは社内・社外問わず、コミュニティという集団で開発していくのが常です。
そのため、このトピックで本当に言いたいことは社外にたくさんのコミッターのみなさんがいるということです。
たくさんの人の支援を受け、みんなで作り育て上げられてきたプロダクトであるということを実感しました。
驚きその4:公式のYoutubeチャンネルがある
今や娯楽の一つとして定着しているYoutube。OSSであるEC-CUBEにも実はそのYoutubeチャンネルが有りました。
機能の紹介や開発に関する情報発信、また中の人の裏話や関わって頂いてる社外のコミッターの方々のインタビュー等、
動画の種類は多岐にわたっています。
そして、それをエンジニアのメンバーが手作りで作り上げているということ。
そして・・・まさか自分が配信番組のMCをやることになろうとは・・・ 人生ってわからないものです。
実際に直近で開催した、EC-CUBEのバグバウンティのイベントに協力していただいた方々のインタビュー配信が以下の動画になります。
以前からEC-CUBEにご協力いただいている方々が、プロダクトを愛していただいているというのを感じられる内容になっています。
驚きその5:セキュリティ意識が非常に高い
上述したように、株式会社イーシーキューブは30人弱の小さな会社です。
しかし、「ISMSの取得」「積極的な脆弱性情報の開示」を行っていることなど、会社としての信頼性を高めることに力を入れています。
ECサイトというものはお金も扱いますし、人の情報もたくさん扱います。
そこでセキュリティインシデントが発生することは最も防がないといけないことです。
それだけは起こすまいと、日々中のエンジニアのメンバーが脆弱性の対処をしたり、
EC-CUBEに対してのセキュリティチェックを簡単にできる方法を構築しています(現在進行系)
過去に発生したセキュリティインシデントの反省を踏まえ、本気でみんながセキュリティに取り組んでいる姿を見てプロフェッショナルを感じました。
そして、同時にEC-CUBEは思っている以上にセキュアなプロダクトであるということを再認識しました。
でもよく考えれば、ソースコードが全世界に公開されているということは、誰からでも中身を確認することが出来る
→リスクが合った場合みんなで発見して治す(=自然と叩かれていく)という作用があるのだとも思いました。
ソースコードが秘匿されている場合、リスクがどこに有るかさえもわからないですからね。
おわりに
まだまだ参加したばかりで尽力しきれていないところはありますが、これからもEC-CUBEに関する情報発信をしていければと思っております。
ぜひ、Youtubeの動画もご覧くださいませ!