2020年の振り返り(システム開発編)
あいかわらずLaravelを利用する日々なので、新しい話題はほぼAWS側の取り組みになります。
サーバーレス+Laravel
PHP+LaravelをAWSのサーバーレスで動かして本番環境にローンチしました。
API Gateway → Lambda → RDS Proxy → RDS の順番に処理が流れます。
API Gateway → Lambda → RDS Proxy → RDS の順番に処理が流れます。
PHPをサーバーレス環境で動かすためにbrefを導入しています
Bref – Serverless PHP made simple
Bref – Serverless PHP made simple
php-fpmの何かがエラーになって、カスタムランタイムをちょっと修正した気がする
サービスのコンテナ化(AWS Fargate+Laravel)
サーバレスとは別のプロジェクトでサービスをコンテナ化しました。いままではEC2での運用ばかりだったため、今年はコンテナとサーバーレス両方にチャレンジしたことになります。
AWSでのコンテナの選択肢はAmazon ECS on EC2とAWS Fargateの2択ですが、今回はAWS Fargateを選定しました。選定理由は忘れた。
AWSでのコンテナの選択肢はAmazon ECS on EC2とAWS Fargateの2択ですが、今回はAWS Fargateを選定しました。選定理由は忘れた。
デプロイ自動化
Laravelアプリケーションのサーバーへのデプロイには、PHPloyをカスタマイズして利用しています。
banago/PHPloy: PHPloy – Incremental Git (S)FTP … – GitHub
banago/PHPloy: PHPloy – Incremental Git (S)FTP … – GitHub
今年はサーバーレス環境を利用するにあたり、CICDの導入が必要になったため、CodePipelineでビルド、デプロイしています。画面からボタン押して待つだけ。
ちなみに、JavaのプロジェクトにはGithub Actionsを利用しています。
ちなみに、JavaのプロジェクトにはGithub Actionsを利用しています。
E2Eテスト
わりと大きめの規模の案件が増えてきましたが、受託開発とユニットテストの相性があまりよくないため、ユニットテストを書かないまでも、せめてブラウザテストは実行したいと考えています。
ユニットテストも書きたいですが。
開発チームで導入まですすめることができなかったですが、優秀なQAチームが環境の導入と複数プロジェクトへの横展開の作業を推進してくれました。
信頼のSelenium IDEです。
ユニットテストも書きたいですが。
開発チームで導入まですすめることができなかったですが、優秀なQAチームが環境の導入と複数プロジェクトへの横展開の作業を推進してくれました。
信頼のSelenium IDEです。
実行開始したら画面眺めて待つだけ。
リードエンジニアがランチミーティングでCypress.jsを紹介してたけど、TypeScriptでコードかけるのと画像の差分取得できるが良さそうだった。
リードエンジニアがランチミーティングでCypress.jsを紹介してたけど、TypeScriptでコードかけるのと画像の差分取得できるが良さそうだった。
マルチテナント
Laravelが導入できそうなプロジェクトで、マルチテナントの引き合いがいくつかあったのと、あたらしい自社サービス提供もはじめたので、Laravel Tenancy導入しました。
ライブラリもいつもどおりcomposerで導入できるので、普通のLaravel開発とあまりかわらない。
まとめ
今年もあっという間の一年で、受託会社らしく「プロジェクト開始」「納品」「保守」をただ繰り返しているような気がしますが、振り返ってみるといろいろなことに挑戦できてよかったです。
フロントエンドもなんとかしたかったのですが、ちょうどReact案件がはじまったので、こちらはリードエンジニアに頼ってチームに浸透させていきたいと思います。
来年に続く
フロントエンドもなんとかしたかったのですが、ちょうどReact案件がはじまったので、こちらはリードエンジニアに頼ってチームに浸透させていきたいと思います。
来年に続く