SlideShare a Scribd company logo
© RakSul,Inc. All Rights Reserved.
そのRails Engine、
本当に必要ですか?
モノリシックなRailsアプリケーションで
Rails Engine を採用しなかった話
表参道.rb #41 〜技術的負債〜
Nobuhiro Nikushi
2018/12/06
© RakSul,Inc. All Rights Reserved.
About me
二串 信弘  
● Works for RAKSUL INC. from 2017/3
● Tech Lead in Raksul Platform Team
● Favorite Languages: Ruby, Golang,
TypeScript, etc
● Private: English, Violin, 子育て
ファブレス型印刷/広告EC
“ラクスル”
物流のUber
“ハコベル”
会社のサービス紹介
印刷や物流といった伝統的な産業で事業を展開
● ラクスルのシステムのRebuildを進めています
● PHPで書かれた一枚岩のWebシステムを、Railsなどで作り変えてます
最近やっていること
ref
● 一枚岩なレガシーシステムを ラクスルではどのように Rebuildしているの
か?https://www.slideshare.net/nixiesan/rebuild-124366117
● そうだ、ラクスルを作り直そう! | RakSul Tech Blog
https://tech.raksul.com/2017/12/18/raksul-platform-project/
● 新しいRailsアプリケーションでは、複数コンポーネント1Railsアプリ同居型のモノリ
スアプローチを採用しています。
● そのリポジトリ構成の戦略として、Rails Engineを使うかを検討し、結果採用を見送
りました。その時の知見を共有します。
今日の話
© RakSul,Inc. All Rights Reserved.
● raksul-core = 新しい Rails アプリケーション
● 既存システム(github:raksul/raksul) の置き換えとしてスタート
raksul-core, the new place for raksul.com
raksul
(existing PHP sytem)
DB
LB
GET https://raksul.com/path/to/page
raksul-core
(The new raksul.com in Rails)
置き換え機能、新機能既存ページ
The Raksul’s Database
migration
© RakSul,Inc. All Rights Reserved.
新しいRailsアプリ(raksul-core)の機能要件
● 3つのサイト(or API)機能を提供する
○ 以後 と呼ぶ
○ 管理画面 以後 と呼ぶ
○ 内部 以後 と呼ぶ
● これら機能は1つのRailsアプリで管理したい
○ 意図してモノリシックなアプローチを採用しているため
ref: 詳しい経緯 一枚岩なレガシーシステムを ラクスルではどのように Rebuildしているの
か?https://www.slideshare.net/nixiesan/rebuild-124366117
© RakSul,Inc. All Rights Reserved.
1. Rails Engine案
○ 表側のサイトと管理画面を同居させる文脈でインターネットを検索すると事例
が結構見つかる。案として検討
○ 結局、採用見送り
2. namespace(Module)で単純分割する案
○ 採用
リポジトリ構成案
© RakSul,Inc. All Rights Reserved.
3コンポーネント(Web, Ops, API) + 1 Rails Engine(Shared) 構成
Rails Engine を使った構成案
Layering of raksul-core by Rails Engine
責務
Web
● A rails app for Public Web
Site
● フロント向けAPI(BFF)も兼任
Ops
● 管理画面
● フロント向けAPI(BFF)も兼任
API
● A rails app for Internal Web
APIs for other systems
Shared
● Rails Engine
● Modelを共通レイヤとして
● コンポーネントまたいで利用可
能なコアビジネスロジックはここ
に
© RakSul,Inc. All Rights Reserved.
メリット
● Gemfileを小さく保てる
○ 個々で好きな を選択できて の依存関係を小さ
く保てる
● 各 app が独立して起動するのでnamespace不要
■ 例 の と の が
あってもよい。それぞれ独立した サーバプロセスとなるので。
● フロントエンドのアセット系管理の柔軟性が増す
○ しかり、 しかり で別々で管理できる
● config/environments/production.rb 等 設定ファイルが独立
○ 用だけの設定とかあっても、それぞれで独立管理なので問題ない
Rails Engine を使った構成案のメリット
© RakSul,Inc. All Rights Reserved.
一見するとめちゃくちゃ良い案ではないか、とおもってしまった自分がいました。
ちょっと冷静に考えると、これらメリットはメリットであるものの本当にそのメリットは必須
なんだろうかとおもいました。
そこでデメリットについても考えてみました。
ちょっと冷静に考えてみる
© RakSul,Inc. All Rights Reserved.
● 初期の構築に時間がかかる
○ リポジトリ構成をどうすればいい で
○ CI、デプロイ、インフラ周りが複雑化
● リポジトリ構成の複雑化は新入りのキャッチアップコストにつながる
● Rails Engine の知識。http://guides.rubyonrails.org/engines.html を読めば分か
るでしょ、という意見もあるけど、分からない人もいます。
● そもそもモデルが遠くに(shared)に行ってしまうデメリット
○ 単体テストとか、 とかの運用大変そう
○ このあたりはどのレイヤを に切り出すかを変えれば変わるかもしれ
ません
● test/dummy/app を管理しなければならない手間が生まれる
Rails Engine を使った構成案のデメリット
© RakSul,Inc. All Rights Reserved.
違う切り方で Rails Engine を適用すれば、うまく運用できたのかもしれないが...
Rails Engineの構成案
© RakSul,Inc. All Rights Reserved.
メリット < デメリット
弊社ではRails Engine の採用を見送りました
© RakSul,Inc. All Rights Reserved.
namespace(Module)で単純分割する案
を採用しました
もう1つの案
© RakSul,Inc. All Rights Reserved.
3種類のコンポーネントを定義
Controller以上をnamespace(module)で単純分割
namespaceによるコンポーネント同居構成案
Database
Models
Thor
CLI(Batch)
Controllers
Views,
Serializers
Controllers
Views,
Serializers
Controllers
Serializers
Web Ops API
raksul.com 管理画面 api.raksul.local
責務
Web
● Public Web Site
● フロント向けAPI(BFF)も兼任
Ops
● 管理画面
● フロント向けAPI(BFF)も兼任
API
● Internal Web APIs for other
systems
Layering of raksul-core by single rails app
© RakSul,Inc. All Rights Reserved.
● 3コンポーネントを切る Top Level Module を定義 `Web`, `Ops`, `Api`
● Controller以上のレイヤをModule(=ディレクトリ)で分割するだけ
● routes.rb肥大化は config/routes/{web,ops,api}.rb で分割(後述)
● Controllers, Views, Serializers はコンポーネントをまたいで依存させてはいけな
い、のルールを守る
○ 例 内で コンポー
ネント するのはコンポーネントまたぎなので
○ 例 を コンポーネントのコントローラが参照して
はいけません。代わりに を実装しましょう。
シンプル
KISSの原則
namespaceによるコンポーネント同居構成案の概要
© RakSul,Inc. All Rights Reserved.
Controller
ex)
● Api::V1::UsersController
● Web::Mypage::OrdersController
● Ops::UsersController
リポジトリ構成(Controller)
.
├── app/
│ ├── controllers/
│ │ ├── api/
│ │ │ |── v1/
│ │ │ | └── users_controller.rb
│ │ ├── application_controller.rb
│ │ ├── concerns
│ │ │ ├── api/ ..
│ │ │ ├── ops/ ..
│ │ │ └── web/ ..
│ │ ├── ops/
│ │ │ └── users_controller.rb
│ │ └── web/
│ │ ├── account/ ..
│ │ ├── mypage/ ..
│ │ └── top_page_controller.rb
© RakSul,Inc. All Rights Reserved.
Serializers(AM::Serializers)
● web/, ops/, api/でディレクトリを
切る
View
● web/, ops/ でディレクトリを切る
リポジトリ構成(Presentation)
│ ├── serializers/
│ │ ├── api/
│ │ │ └── v1/
│ │ │ └── user_serializer.rb
│ │ ├── concerns/
│ │ │ ├── api/
│ │ │ ├── ops/
│ │ │ └── web/
│ │ ├── ops/
│ │ └── web/
│ │ ├── api
│ │ │ └── v1
│ │ │ ├── order_serializer.rb
│ └── views/
│ ├── layouts/
│ │ ├── ops/
│ │ └── web/
│ ├── ops/
│ └── web/
© RakSul,Inc. All Rights Reserved.
routes.rb肥大化対策
コンポーネント単位でファイルを分
割
cf Railsのroutes.rbを複数のファイ
ルに分割する | 日々雑記
config/routes.rb
# config/routes.rb
Rails.application.routes.draw do
draw :api
draw :ops
draw :web
end
# config/routes/web.rb
Rails.application.routes.draw do
constraints host: 'raksul.com' do
namespace :mypage do
get '/', to: 'top_page#show'
end
# etc...
end
end
© RakSul,Inc. All Rights Reserved.
● フロントエンドの構成の工夫。ref: Webpackerをやめるなら
● デプロイ周りのカスタマイズ
時間の都合、やむなく興味があれば直接質問ください。
ref: WebpackManifestというgemが便利、という
https://tech.raksul.com/2018/10/18/rails-webpack-without-webpacker/
namespaceによるコンポーネント同居構成案のデメリット
© RakSul,Inc. All Rights Reserved.
● この構成で1年ほど運用できている
● 開発効率は非常によい
● シンプルなやり方なので初見でも理解できるい
この構成で運用して
© RakSul,Inc. All Rights Reserved.
● インターネット上で得られる知見は、必ずしも自分のケースにマッチするわけではな
いので、組織の人数やスキル感、運用時のことを考えて決めよう
● Simple な構成は正義
学び
© RakSul,Inc. All Rights Reserved.
まとめ
© RakSul,Inc. All Rights Reserved.
複数コンポーネント1Railsアプリ同居型のモノリスアプローチを選択し、そのリポジトリ構
成の戦略として、Rails Engineを使うかを検討し、結果採用を見送った際の知見を共有
しました。
まとめ
© RakSul,Inc. All Rights Reserved.
Thank you!

More Related Content

PPTX
CloudFront経由でのCORS利用
PPTX
Azure API Management 俺的マニュアル
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
PPTX
20211109 JAWS-UG SRE keynotes
PPTX
20220409 AWS BLEA 開発にあたって検討したこと
PPTX
クラウドでも非機能要求グレードは必要だよね
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
PDF
Where狙いのキー、order by狙いのキー
CloudFront経由でのCORS利用
Azure API Management 俺的マニュアル
SPAセキュリティ入門~PHP Conference Japan 2021
20211109 JAWS-UG SRE keynotes
20220409 AWS BLEA 開発にあたって検討したこと
クラウドでも非機能要求グレードは必要だよね
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Where狙いのキー、order by狙いのキー

What's hot (20)

PDF
Google Cloud で実践する SRE
PDF
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
PDF
AWSのログ管理ベストプラクティス
PDF
Azure Monitor Logで実現するモダンな管理手法
PDF
JenkinsとCodeBuildとCloud Buildと私
PDF
[AKIBA.AWS] AWS Elemental MediaConvertから学ぶコーデック入門
PDF
webエンジニアのためのはじめてのredis
PDF
20200721 AWS Black Belt Online Seminar AWS App Mesh
PDF
分散トレーシング技術について(Open tracingやjaeger)
PDF
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
PDF
DevOps with Database on AWS
PPTX
WayOfNoTrouble.pptx
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
Kongの概要と導入事例
PDF
Amazon S3を中心とするデータ分析のベストプラクティス
PDF
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
PDF
AWS Black Belt Online Seminar - Amazon Lightsail
PDF
DevOpsに求められる様々な技術とその連携の学習方法
PPTX
ビッグデータ処理データベースの全体像と使い分け
2018年version
Google Cloud で実践する SRE
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
AWSのログ管理ベストプラクティス
Azure Monitor Logで実現するモダンな管理手法
JenkinsとCodeBuildとCloud Buildと私
[AKIBA.AWS] AWS Elemental MediaConvertから学ぶコーデック入門
webエンジニアのためのはじめてのredis
20200721 AWS Black Belt Online Seminar AWS App Mesh
分散トレーシング技術について(Open tracingやjaeger)
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
DevOps with Database on AWS
WayOfNoTrouble.pptx
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Kongの概要と導入事例
Amazon S3を中心とするデータ分析のベストプラクティス
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
AWS Black Belt Online Seminar - Amazon Lightsail
DevOpsに求められる様々な技術とその連携の学習方法
ビッグデータ処理データベースの全体像と使い分け
2018年version
Ad

Similar to そのRails Engine、 本当に必要ですか? (20)

PPTX
Tech fun rails_workshop
KEY
Real world rails
PPTX
Shinjuku.rb #28 LT Rails Engineで変なことをやってみた話
PDF
Rubykansai 81
PDF
Tottoruby 20110903
PDF
Hyper → Highspeed → Development
PDF
Rails3.1rc4を試してみた
PDF
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
PDF
パフォーマンス計測Ciサービスを作って得た知見を共有したい
PPTX
fluxflex meetup in Tokyo
PDF
Railsの開発環境作るぞ
PPTX
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
PPTX
UnicastWS vol.2
PDF
Sqale の Puppet と Chef (と テスト)
KEY
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
PDF
PaaSの作り方 Sqaleの場合
PPTX
Fluxflex meetup 2011 in Tokyo
PDF
クラウドインターネットルータ
PDF
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜開発編 先生:増井 雄一郎
PPTX
Rails on GKEで運用するWebアプリケーションの紹介
Tech fun rails_workshop
Real world rails
Shinjuku.rb #28 LT Rails Engineで変なことをやってみた話
Rubykansai 81
Tottoruby 20110903
Hyper → Highspeed → Development
Rails3.1rc4を試してみた
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
パフォーマンス計測Ciサービスを作って得た知見を共有したい
fluxflex meetup in Tokyo
Railsの開発環境作るぞ
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
UnicastWS vol.2
Sqale の Puppet と Chef (と テスト)
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
PaaSの作り方 Sqaleの場合
Fluxflex meetup 2011 in Tokyo
クラウドインターネットルータ
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜開発編 先生:増井 雄一郎
Rails on GKEで運用するWebアプリケーションの紹介
Ad

そのRails Engine、 本当に必要ですか?

  • 1. © RakSul,Inc. All Rights Reserved. そのRails Engine、 本当に必要ですか? モノリシックなRailsアプリケーションで Rails Engine を採用しなかった話 表参道.rb #41 〜技術的負債〜 Nobuhiro Nikushi 2018/12/06
  • 2. © RakSul,Inc. All Rights Reserved. About me 二串 信弘   ● Works for RAKSUL INC. from 2017/3 ● Tech Lead in Raksul Platform Team ● Favorite Languages: Ruby, Golang, TypeScript, etc ● Private: English, Violin, 子育て
  • 4. ● ラクスルのシステムのRebuildを進めています ● PHPで書かれた一枚岩のWebシステムを、Railsなどで作り変えてます 最近やっていること ref ● 一枚岩なレガシーシステムを ラクスルではどのように Rebuildしているの か?https://www.slideshare.net/nixiesan/rebuild-124366117 ● そうだ、ラクスルを作り直そう! | RakSul Tech Blog https://tech.raksul.com/2017/12/18/raksul-platform-project/
  • 6. © RakSul,Inc. All Rights Reserved. ● raksul-core = 新しい Rails アプリケーション ● 既存システム(github:raksul/raksul) の置き換えとしてスタート raksul-core, the new place for raksul.com raksul (existing PHP sytem) DB LB GET https://raksul.com/path/to/page raksul-core (The new raksul.com in Rails) 置き換え機能、新機能既存ページ The Raksul’s Database migration
  • 7. © RakSul,Inc. All Rights Reserved. 新しいRailsアプリ(raksul-core)の機能要件 ● 3つのサイト(or API)機能を提供する ○ 以後 と呼ぶ ○ 管理画面 以後 と呼ぶ ○ 内部 以後 と呼ぶ ● これら機能は1つのRailsアプリで管理したい ○ 意図してモノリシックなアプローチを採用しているため ref: 詳しい経緯 一枚岩なレガシーシステムを ラクスルではどのように Rebuildしているの か?https://www.slideshare.net/nixiesan/rebuild-124366117
  • 8. © RakSul,Inc. All Rights Reserved. 1. Rails Engine案 ○ 表側のサイトと管理画面を同居させる文脈でインターネットを検索すると事例 が結構見つかる。案として検討 ○ 結局、採用見送り 2. namespace(Module)で単純分割する案 ○ 採用 リポジトリ構成案
  • 9. © RakSul,Inc. All Rights Reserved. 3コンポーネント(Web, Ops, API) + 1 Rails Engine(Shared) 構成 Rails Engine を使った構成案 Layering of raksul-core by Rails Engine 責務 Web ● A rails app for Public Web Site ● フロント向けAPI(BFF)も兼任 Ops ● 管理画面 ● フロント向けAPI(BFF)も兼任 API ● A rails app for Internal Web APIs for other systems Shared ● Rails Engine ● Modelを共通レイヤとして ● コンポーネントまたいで利用可 能なコアビジネスロジックはここ に
  • 10. © RakSul,Inc. All Rights Reserved. メリット ● Gemfileを小さく保てる ○ 個々で好きな を選択できて の依存関係を小さ く保てる ● 各 app が独立して起動するのでnamespace不要 ■ 例 の と の が あってもよい。それぞれ独立した サーバプロセスとなるので。 ● フロントエンドのアセット系管理の柔軟性が増す ○ しかり、 しかり で別々で管理できる ● config/environments/production.rb 等 設定ファイルが独立 ○ 用だけの設定とかあっても、それぞれで独立管理なので問題ない Rails Engine を使った構成案のメリット
  • 11. © RakSul,Inc. All Rights Reserved. 一見するとめちゃくちゃ良い案ではないか、とおもってしまった自分がいました。 ちょっと冷静に考えると、これらメリットはメリットであるものの本当にそのメリットは必須 なんだろうかとおもいました。 そこでデメリットについても考えてみました。 ちょっと冷静に考えてみる
  • 12. © RakSul,Inc. All Rights Reserved. ● 初期の構築に時間がかかる ○ リポジトリ構成をどうすればいい で ○ CI、デプロイ、インフラ周りが複雑化 ● リポジトリ構成の複雑化は新入りのキャッチアップコストにつながる ● Rails Engine の知識。http://guides.rubyonrails.org/engines.html を読めば分か るでしょ、という意見もあるけど、分からない人もいます。 ● そもそもモデルが遠くに(shared)に行ってしまうデメリット ○ 単体テストとか、 とかの運用大変そう ○ このあたりはどのレイヤを に切り出すかを変えれば変わるかもしれ ません ● test/dummy/app を管理しなければならない手間が生まれる Rails Engine を使った構成案のデメリット
  • 13. © RakSul,Inc. All Rights Reserved. 違う切り方で Rails Engine を適用すれば、うまく運用できたのかもしれないが... Rails Engineの構成案
  • 14. © RakSul,Inc. All Rights Reserved. メリット < デメリット 弊社ではRails Engine の採用を見送りました
  • 15. © RakSul,Inc. All Rights Reserved. namespace(Module)で単純分割する案 を採用しました もう1つの案
  • 16. © RakSul,Inc. All Rights Reserved. 3種類のコンポーネントを定義 Controller以上をnamespace(module)で単純分割 namespaceによるコンポーネント同居構成案 Database Models Thor CLI(Batch) Controllers Views, Serializers Controllers Views, Serializers Controllers Serializers Web Ops API raksul.com 管理画面 api.raksul.local 責務 Web ● Public Web Site ● フロント向けAPI(BFF)も兼任 Ops ● 管理画面 ● フロント向けAPI(BFF)も兼任 API ● Internal Web APIs for other systems Layering of raksul-core by single rails app
  • 17. © RakSul,Inc. All Rights Reserved. ● 3コンポーネントを切る Top Level Module を定義 `Web`, `Ops`, `Api` ● Controller以上のレイヤをModule(=ディレクトリ)で分割するだけ ● routes.rb肥大化は config/routes/{web,ops,api}.rb で分割(後述) ● Controllers, Views, Serializers はコンポーネントをまたいで依存させてはいけな い、のルールを守る ○ 例 内で コンポー ネント するのはコンポーネントまたぎなので ○ 例 を コンポーネントのコントローラが参照して はいけません。代わりに を実装しましょう。 シンプル KISSの原則 namespaceによるコンポーネント同居構成案の概要
  • 18. © RakSul,Inc. All Rights Reserved. Controller ex) ● Api::V1::UsersController ● Web::Mypage::OrdersController ● Ops::UsersController リポジトリ構成(Controller) . ├── app/ │ ├── controllers/ │ │ ├── api/ │ │ │ |── v1/ │ │ │ | └── users_controller.rb │ │ ├── application_controller.rb │ │ ├── concerns │ │ │ ├── api/ .. │ │ │ ├── ops/ .. │ │ │ └── web/ .. │ │ ├── ops/ │ │ │ └── users_controller.rb │ │ └── web/ │ │ ├── account/ .. │ │ ├── mypage/ .. │ │ └── top_page_controller.rb
  • 19. © RakSul,Inc. All Rights Reserved. Serializers(AM::Serializers) ● web/, ops/, api/でディレクトリを 切る View ● web/, ops/ でディレクトリを切る リポジトリ構成(Presentation) │ ├── serializers/ │ │ ├── api/ │ │ │ └── v1/ │ │ │ └── user_serializer.rb │ │ ├── concerns/ │ │ │ ├── api/ │ │ │ ├── ops/ │ │ │ └── web/ │ │ ├── ops/ │ │ └── web/ │ │ ├── api │ │ │ └── v1 │ │ │ ├── order_serializer.rb │ └── views/ │ ├── layouts/ │ │ ├── ops/ │ │ └── web/ │ ├── ops/ │ └── web/
  • 20. © RakSul,Inc. All Rights Reserved. routes.rb肥大化対策 コンポーネント単位でファイルを分 割 cf Railsのroutes.rbを複数のファイ ルに分割する | 日々雑記 config/routes.rb # config/routes.rb Rails.application.routes.draw do draw :api draw :ops draw :web end # config/routes/web.rb Rails.application.routes.draw do constraints host: 'raksul.com' do namespace :mypage do get '/', to: 'top_page#show' end # etc... end end
  • 21. © RakSul,Inc. All Rights Reserved. ● フロントエンドの構成の工夫。ref: Webpackerをやめるなら ● デプロイ周りのカスタマイズ 時間の都合、やむなく興味があれば直接質問ください。 ref: WebpackManifestというgemが便利、という https://tech.raksul.com/2018/10/18/rails-webpack-without-webpacker/ namespaceによるコンポーネント同居構成案のデメリット
  • 22. © RakSul,Inc. All Rights Reserved. ● この構成で1年ほど運用できている ● 開発効率は非常によい ● シンプルなやり方なので初見でも理解できるい この構成で運用して
  • 23. © RakSul,Inc. All Rights Reserved. ● インターネット上で得られる知見は、必ずしも自分のケースにマッチするわけではな いので、組織の人数やスキル感、運用時のことを考えて決めよう ● Simple な構成は正義 学び
  • 24. © RakSul,Inc. All Rights Reserved. まとめ
  • 25. © RakSul,Inc. All Rights Reserved. 複数コンポーネント1Railsアプリ同居型のモノリスアプローチを選択し、そのリポジトリ構 成の戦略として、Rails Engineを使うかを検討し、結果採用を見送った際の知見を共有 しました。 まとめ
  • 26. © RakSul,Inc. All Rights Reserved. Thank you!