チュートリアルの前提となる知識を書いていきます。
ざっと読んでからチュートリアルに進んだほうがいいかもしれない。
Okapi-Stripes Platformとは
- Folio LSPプロジェクトのインフラストラクチャとして開発されたもので、Okapi、Stripesとその他のコンポーネントで構成されています。
- OSみたいなもので、Folioの基本的な部分です。
Okapi-Stripes Platformのいいところ
- マルチテナント
- 拡張可能(テナントがそれぞれ、ニーズに合わせてアプリを選択できる)
Okapi-Stripes Platformの決まりごと
- 機能をアプリに分割すること。例:請求書のアプリ、ベンダーのアプリ、支払いのアプリ など
- 個々のアプリはそれぞれビジネスロジックとデータストレージを持っています。
- アプリ同士は、APIを通じて通信します。※APIは同じバージョンでないといけない
逆を言うと、他のアプリが持っているデータを、SQLとかで直接データを取るようなアプリはダメよ、ということです。
Okapi-Stripes Platformのコンポーネント
####①ランタイム・コンポーネントとフレームワーク
- バックエンドは、マイクロサービス・アーキテクチャで、Okapiと呼ばれています。
- マイクロサービスのAPI Gatewayパターンを採用しています。
- RAMLモジュールビルダー(RMB)フレームワークを使ってOkapiを作成・保守します。
####②基本的なアプリケーションのビルディングブロック
Okapi-Stripes Platformが提供する機能
- mod-users: システム内のユーザーの詳細の管理
- mod-permissions: 要求された操作が許可されているかどうかを判断する機能
- mod-authtoken: セッション管理
- mod-configuration: 構成管理
####③ソフトウェア開発のライフサイクルのプラクティスとユーティリティ
- モダンな開発をします。
- 以下のプラクティスが、インフラ管理コード(folio-infrastructure、folio-ansible、folio-install)とドキュメントに書かれています。
- 継続的インテグレーション/継続的デリバリーパイプライン(CI/CD)
- 自動テスト
- ツール標準化
- 期待されるコードカバレッジ
- デプロイメントパターン
- 開発チームが新しいコードや機能を統合できるように確立された環境(多分Dockerとかのこと)
- プラットフォームでの開発に便利な、以下のCLI(Command Line Tool)があります。
- Okapi-CLI
- Stripes-CLI
#補足
- RAMLとは: RESTful API Modeling Languageの略でYAMLベースのRESTful APIを設計するためのモデリング言語です。
- RMBとは:RAMLファイルやスキーマファイルでAPIやオブジェクトを定義すると、RMBがコードを生成してくれます。
- Ansibleとは:レッドハットのオープンソースの構成管理ツール
#参考
- Folio Project「Definition of the Okapi-Stripes Platform, FOLIO LSP Base and FOLIO LSP Extended Apps」(https://wiki.folio.org/display/TC/Definition+of+the+Okapi-Stripes+Platform%2C+FOLIO+LSP+Base+and+FOLIO+LSP+Extended+Apps)
#変更履歴
2020年7月5日 新規作成