ハマログ

株式会社イーツー・インフォの社員ブログ

2020年の振り返り(システム開発編)

あいかわらずLaravelを利用する日々なので、新しい話題はほぼAWS側の取り組みになります。

サーバーレス+Laravel

PHP+LaravelをAWSのサーバーレスで動かして本番環境にローンチしました。
API Gateway → Lambda → RDS Proxy → RDS の順番に処理が流れます。
PHPをサーバーレス環境で動かすためにbrefを導入しています
Bref – Serverless PHP made simple
php-fpmの何かがエラーになって、カスタムランタイムをちょっと修正した気がする

サービスのコンテナ化(AWS Fargate+Laravel)

サーバレスとは別のプロジェクトでサービスをコンテナ化しました。いままではEC2での運用ばかりだったため、今年はコンテナとサーバーレス両方にチャレンジしたことになります。

AWSでのコンテナの選択肢はAmazon ECS on EC2とAWS Fargateの2択ですが、今回はAWS Fargateを選定しました。選定理由は忘れた。

デプロイ自動化

Laravelアプリケーションのサーバーへのデプロイには、PHPloyをカスタマイズして利用しています。
banago/PHPloy: PHPloy – Incremental Git (S)FTP … – GitHub
今年はサーバーレス環境を利用するにあたり、CICDの導入が必要になったため、CodePipelineでビルド、デプロイしています。画面からボタン押して待つだけ。

ちなみに、JavaのプロジェクトにはGithub Actionsを利用しています。

E2Eテスト

わりと大きめの規模の案件が増えてきましたが、受託開発とユニットテストの相性があまりよくないため、ユニットテストを書かないまでも、せめてブラウザテストは実行したいと考えています。
ユニットテストも書きたいですが。

開発チームで導入まですすめることができなかったですが、優秀なQAチームが環境の導入と複数プロジェクトへの横展開の作業を推進してくれました。
信頼のSelenium IDEです。
実行開始したら画面眺めて待つだけ。

リードエンジニアがランチミーティングでCypress.jsを紹介してたけど、TypeScriptでコードかけるのと画像の差分取得できるが良さそうだった。

マルチテナント

Laravelが導入できそうなプロジェクトで、マルチテナントの引き合いがいくつかあったのと、あたらしい自社サービス提供もはじめたので、Laravel Tenancy導入しました。
ライブラリもいつもどおりcomposerで導入できるので、普通のLaravel開発とあまりかわらない。

まとめ

今年もあっという間の一年で、受託会社らしく「プロジェクト開始」「納品」「保守」をただ繰り返しているような気がしますが、振り返ってみるといろいろなことに挑戦できてよかったです。

フロントエンドもなんとかしたかったのですが、ちょうどReact案件がはじまったので、こちらはリードエンジニアに頼ってチームに浸透させていきたいと思います。

来年に続く
AWSDockerEC2ECSFargateLaravelLaravel TenancyPHPSeleniumTenancyTypeScriptテストマルチテナント自動化

  kaneko tomo   2020年12月27日


関連記事

laravelでのBasic認証と例外設定

laravelでのBasic認証と例外設定 Apache側で設定しようとしてハマ…

トリミングしたのに加工前の画像が復元できてしまうPNGの調査

社内でも話題に上がってた「トリミングしたはずのスクリーンショットから全体画像を復…

svn+sshでcheckoutする

背景 Mac を使っていると terminal で svn client が使い…


← 前の投稿

次の投稿 →