2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

マイクロサービス化の第1歩 PHP編

Posted at

マイクロサービス化の一番美味しい所

マイクロサービス化、メリット、デメリット色々言われていますが、
マイクロサービス化(とセットで実施される継続的デリバリー)の一番美味しいところは

  • 切り戻し可能(Blue-Green Deployment)

だと思います。

切り戻し例

  • webサイトのlogin機能になんとかSNS連携ログイン機能を入れた
  • 本番環境にアップした
  • 本番環境では動かなかった(外部連携は本番サーバでしか確認出来ない、というのはありがち)
  • あわてて元に戻す

この時、

  • もう一度古いソースコードを配布し直す(docker再配布含む)

というのは、さえないやり方です。

表側 裏側
ロードバランサー(nginx,AWS LB等) apache (brue)
apache (green)

のような仕組みで、

  • 本番環境は今apache(blue)で動いている
  • 本番環境apache(green)にアップした
  • 本番環境apacheをblue->greenに切り替える
  • 本番環境apache(green)では動かなかった
  • 本番環境apacheをgreen->blueに切り戻す

による秒単位の切り戻しを実現しましょう。

第2歩目以降

これができれば、第2歩目以降で

表側 裏側
ロードバランサー(nginx,AWS LB等) apache (brue) /login
apache (brue) /login 以外
apache (brue) 画像ファイル
apache (green) /login
apache (green) /login 以外
apache (green) 画像ファイル

だったり

表側 裏側
ロードバランサー(nginx,AWS LB等) apache (brue) php 7.0
apache (green) php 7.3

だったり

表側 裏側
ロードバランサー(nginx,AWS LB等) apache (brue) レガシーPHP
apache (green) Laravel 5.1
apache (yellow) Laravel 5.5
apache (orange) golang 1.12

といった事が可能になります。

言語(php,ruby,golang,...)がどうの、
フレームワーク(Laravel,Symfony,Slim,...)がどうの、
といった話は、だいぶん先の話です。

レガシーPHPでもマイクロサービス化進められますよ。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?