見出し画像

[WEBエンジニア]転職して3ヶ月の振返り (その2

[WEBエンジニア]転職して3ヶ月の振返り (その1 に続く記事です。

その1は、退職エントリーっぽくなってしまったので、
この記事は、転職して3ヶ月何やってきたかを振り返りたいと思います。
主に自分メモなので、読み手をあまり意識しておりませんのであしからず。。

会社について

・自社サービス系(メディア)
・社員数10名 (うち、エンジニア:2名、デザイナー2名)
・複数サービス存在
・インフラエンジニア不在
・ AWS使ってた
・php x Laravelがメイン

状況

・毎年1月、平時の10倍のトラフィックが来る日がある
 前年はサービス落ちてるので、今年は落とさないが3ヶ月の目標
・インフラエンジニア不在で冗長化なし
・アプリケーションは、もともとDIを意識した構造で、
 とっつきやすかった(闇が無いとは言ってない)
・アプリケーションでExceptionがあがると、Slackに通知される仕組みが
 あり、不具合はちゃんと直す文化があった

総評

・前職はマネージメントメインで自分で手を動かす
 機会がなかったので発散できた!
・github への コミット量もダントツNo1\(^o^)/
・トラフィック祭り何の問題もなく乗り越えた!
 (もっとトラフィック来てほしかったぐらい)
・toC向けのサービス開発もできた。使ってもらえるのはホント嬉しい
・JSと少し仲良くなれた(次は、 Vue.js or React での開発したい)
・色々変えたけど、自由にやらせてもらえたのと、
 抵抗なく受けれてくれた、開発チームのみなさんのおかげ

やったこと

# インフラ可視化

・NewRelic導入
 - 定量的な監視が不十分だったので、SaaS導入した
 - 無料枠の範囲で考えていたが、APMが想像以上に良かったので課金

・AWS RDS Performance Insight 導入
 - RDSのボトルネックが可視化される
-  MySQLのバージョン低くく対応してなかったので、合わせてvUP

# インフラ冗長化

・セッションストレージの変更
 - File だったので DynamoDBに移行
  - パフォーマンス的にネガティブ要因があるので、
     今後、Redis or Memcached に移行予定
       - 小規模サービスは、DynamoDBでも十分ということはわかった

・アプリケーション改善
 - 一時的にローカルストレージを使う処理があり、後続のバッチ処理に
ファイルを渡せないため、S3にアップロードするように変更

・ Terraform導入
 - 使うの初めてなので、部分的に使用。VPCの定義やEC2起動など
 - まだドキドキしながら触っている

・ Ansible導入
 - TerraformとAnsibleを使って、移行先構築
 - コンテナに一気に行きたかったけど学習コストと影響範囲を考え、
  EC2での冗長化。

・冗長化の副次効果
 - AmazonLinux1 から CentOS8 に
  - 移行した翌日に、CentOS8のサポート切り上げ発表。。
  - 次はコンテナ行く!
 - php7.2 => 7.3 ( 7.4はちょっと影響範囲広すぎたので段階踏む。)
 - VPCのネットワークの整理整頓(private/public の使い分け)
 - ssh ログイン経路の一本化(bastion経由)

・アプリケーションパフォーマンス改善
 - 1月のトラフィック祭りに向けて
  - N+1の改善、
  - memcached による キャッシュ利用
 - Laravelのdebugbar と NewRelic, Performance Insight 見ながら効果の高そうなものをピックアップ
 - サーバサイドは、三分の一程度の処理時間に!

# デプロイ&開発環境改善と開発ワークフロー

・git pull でのデプロイから、毎回buildするように変更
 - Slackでデプロイできるようになっていたのでバックエンドを差し替え
 - deployer 使った
  - 余裕ある時、GithubActionsと codeDeoloy あたりに変更したい

・webpack のbuildファイルを git除外
 - 毎回大量Conflict出ていて辛かった。デプロイ時にbuildするように変更

・ デプロイの民主化
 - ボスが1人で全部コードレビューしてリリースまでしていた
  - 1人以上のレビューでマージOKに
  - 今ではデザイナーもデプロイしてる
  - 今後は、マージされたら自動デプロイにかえたい

・Docker開発環境の整備
 - 以来は、Macに直接 apache,php,mysql をインストール
 - 手順書ベースだった環境構築を Docker化して数コマンドで 環境構築できるように


# サービス開発

・機能開発。既存サービスに新たな機能(独立性高い)
 - 実質3weekぐらい
 - デザイナーと2人三脚で概ね予定通りリリースできた!
 - 残念ながらJquery使った(学習コストと既存の兼ね合い)

# その他

・redash 導入
 - 継続的なKPIの追っかけの為、導入

・ 社内Wifi改善
 - 頻度にWifiが切れるのでCisco Meraki導入

次の3ヶ月


トラフィック祭りの為に、インフラに比重をおいてきたが、次の3ヶ月は、サービス開発に主軸を移していく所存。
開発リソースが相当限られているのでメリットのある開発をしていきたい。
会社の決算が2月末なので、来期に良い開発ができるよう提案していく。


この記事が気に入ったらサポートをしてみませんか?