CI/CD
CI:継続的インテグレーション
CD:継続的デリバリ
超簡単に言うと、
ビルド、テスト、デプロイを自動化で実施する手法のこと。
ビルド、テスト、デプロイが自動化されるのでデプロイ時間が
短縮できるのと、人的ミスが発生しないというメリット。
マイクロサービスの分散トランザクションを使用しない理由
マイクロサービスの分散トランザクションを使用しない理由
機能ごとにデプロイしてサービスとして提供するソフトウエア技法。
また、DBはマイクロサービスごとに持つのが一般的らしい。
マイクロサービスは各サービスを疎結合してネットワークを通じて
各サービスとやりとりをする。
そのため、
トランザクションは分散トランザクションを使用しないのが一般的。
理由は以下と理解。
・各サービスのDBが分散トランザクションを実装しているか保証できない
・分散トランザクションはロックをとるため、サービスが複数あると
その分、ロックする時間もかかる
※あと他に、分散トランザクションは複雑で不具合が・・・という説明もあるが、?です。。
分散トランザクションを使用しない代わりに
saga(サーガ)という考えが使用される。
内容は、各サービス内でDBトランザクションを実行させ、
処理に失敗した際、各サービスでロールバック処理を実装する。
⇒これを「保証トランザクション」とよぶ。
リバースプロキシサーバ
リバースプロキシ
プロキシサーバでは、グローバルIPを付与して、
内部ネットワークから外部ネットワークの通信はプロキシサーバが行うものでした。
リバースプロキシサーバは、
外部からのアクセスをWebサーバの代わりに受け、
そのWebに連携する動作をするサーバになります。
プロキシサーバはこちらの記事で説明