この記事は「オンラインでアイデアソン・ハッカソンをやってみた」の続きです。
オンラインでのアイデアソン・ハッカソンの雰囲気を知りたい方は上記もご覧いただければと思います。
こんにちは、イーシーキューブの足立です。
5月の「開発の二日間」では、プラグインの審査・検証を自動化する仕組みを作ろう!というアイデアをもとに、全体のアーキテクチャを考え、開発が始まりました。
この「プラグインの審査・検証を自動化する仕組み」について、少し背景も含めて説明できればと思います。
EC-CUBEにはプラグインという機能拡張の機構があります。これにより、カスタマイズしなくても、プラグインをインストールするだけで新しい機能が追加できるようになっています。
プラグインは、EC-CUBEオーナーズストアで配布・販売が可能で、現在では1,000件以上のプラグインが公開されています。これらのプラグインは弊社でのみで開発しているわけではなく、大半はプラグイン開発者の方々が開発・公開しているものです。
iPhoneのApp StoreやAndroidのGoogle Playのアプリと同じように、EC-CUBEオーナーズストアでプラグインを公開するにあたっては、一定の審査・検証が行われます。
ありがたいことにプラグインの申請も徐々に増えてきて、審査完了までお待たせしてしまう状況も発生していました。一部の業務は自動化されているのですが、業務全体のフローを見るとまだまだ手作業の部分も残っています。
・申請の管理自体はJiraを使っているが、チケット作成やステータス更新は手動で、登録漏れ・更新漏れも発生することがある
・インストール検証や機能検証では、環境のセットアップやテストスクリプトの実行は手動で行っている
といった課題があり、「開発の二日間」ではそこを改善することにしました。
こうして考えたのが、以下の全体像です。
全体のアーキテクチャは上記の図のように、
Jiraのチケット作成
・プラグインの申請が行われる
・SNSへ通知
・SQSへ申請キューをのせる
・キューにのったタイミングでLambda実行
・LambdaからJira APIを叩き、管理チケットを作成
インストールテスト
・プラグインの申請が行われる
・SNSへ通知
・SQSへ申請キューをのせる
・キューにのったタイミングでLambda実行
・LambdaからStep Functionsを実行、Fargateへ連携し自動テストを走らせる
といった流れで、管理用のJiraチケット作成や、インストールテストの実行が自動に行われるようにしています。AWS上に、手作業で行っていた部分をもっていくことで、業務のミス防止・作業時間の短縮を狙っています。
自動化の仕組みを構築するにあたって利用した技術も少し触れておくと、
・Amazon SNS
・Amazon SQS
・AWS Lambda
・AWS Step Functions
・AWS Fargate
といったAWSのクラウドサービスを利用しています。
「開発の二日間」という短い時間ではあるものの、開発メンバー全員がAWSの各サービスを実際に業務で利用するという経験を得ることができ、技術レベルの底上げにつながったのではないかなと思います。
5月の「開発の二日間」では、プラグイン申請すると管理用チケットを自動作成したり、自動テストを走らせる仕組みが一部動くところまで実装することができました。
次回、6月の「開発の二日間」で完成までもっていければと思います!