この記事はアイスタイル Advent Calendar 2022 6日目の記事です
アイスタイルにて主にバックエンドのサービスを担当しているusuitです。
今年は私が担当している通知基盤というサービスのクラウド移行を行いました。
この記事ではその経験から学んだ教訓たちを紹介していきたいと思います。
通知基盤って何?
通知基盤は@cosmeのスマホアプリに表示されるお知らせやPush通知の配信を行っているサービスです。
今回のクラウド移行では外部MAツールにそれらのデータを連携するよう作り変えを行いました。
その作り変えの中感じたことを以下にまとめました。
急がば回れ
クラウド移行開始時、それまで私はAWSはチュートリアル程度しか触ったことがありませんでした。
ネットで調べながらなんとかサービスをリリースしましたが、その中で感じたことが以下になります。
AWSの公式ドキュメントはいきなり読んでも知らない単語ばかりで分からない
- まずはDevelopersIOやQiitaから入るのもアリ
- でもそこで終わらないでしっかり公式ドキュメントを読むべき
- 公式ドキュメントの情報量に勝るものはない
チュートリアルだけでなく、公式ドキュメントだけを参考に作ってみたりするとベター
- やるのはミニマムな内容でいい
- 書いてある内容をトレースするのと、自分で調べて実践するのでは理解度が全く違う
- 料金がかかってもそれくらい怒られない(はず)
※ 怒られた場合は自己責任でお願いします
スタートダッシュはできないが最終的には役に立つ
- プロジェクト初期の余裕がある時期の方がしっかりドキュメントを読める
- プロジェクト後半の修正ほどスケジュールがタイトになるもの
- 焦って調べたら変なやり方を採用してしまうかも
- 後で直せばいいと思っても結局そのまま何年も経過してしまうかも
- 1度ドキュメント読んでいればどこに何が書いてあるか大体覚えてる
- 結果的に修正時間を短縮できたりする
- 間違ったやり方を選んでしまう可能性も低くなる
→遅かれ早かれドキュメントと格闘するときはやってくる!だったら最初からやっておこう!
「おや?」を見逃してはいけない
クラウド移行後2週間くらい経ったときの出来事でした。
ユーザーからお知らせのページから遷移した際に操作ができないという問い合わせがありました。
原因はアプリの遷移処理の実装不備だったのですが、今回そこは問題ではありません。
実はテスト時にページの表示が変わったなとは思っていた
- 実装変わったからデザインも変わったのかなくらいにしか思ってなかった
- 実際は遷移時に必要な処理が抜けていたため表示が変わっていた
この「おや?」をそのままにしなかったらこの障害は発生しなかった
- とりあえず聞いておけばアプリチームが見てくれて事前に発覚できたはず
- 問題なかったならなかったでOK
- 質問と回答くらいなら工数は数分
- バグの可能性が確実に1つ潰せる
→疑問や気になった点は小さなことでもそのままにしない姿勢が大事
やっぱり世の中うまくは行かない
AWS移行後にけっこうトラブルを起こしてしまいました。
その中には事前に防げたものもあるし、防げなかったものもありました。
防げたものこそ次に活かせる学び
- 次は絶対起こさない
- テスト時のチェック観点
- 実装時に注意する点
- 他のチームとの連携
- こういう学びの1つ1つが自分の引き出しになる
→しっかり反省する姿勢は大事
じゃあ防げなかったものは?
-
起きたものは仕方がない
-
ミスは誰にでもあるのだから
-
大切なのは報連相と迅速な対応
- ユーザー影響はどれくらい?
- 回避策はある?
- 原因は分かってる?
- いつ対応できる?
→ しっかり対応することで企画側との信頼関係も築ける
-
知識をつけておけば対応もはやくなる
- 最初の急がば回れの話に戻る
-
コンティンジェンシープランは用意しておかないといけない
- 切り戻し方法
- そもそも切り戻せる設計
まとめ
ドキュメントを読もう!
- まずは知識を身につける
- めんどくさがったら後から自分に返ってくる
疑問はしっかり解消しよう!
- テスト時の挙動だけにあらず
- 設計、実装で迷ったときも有識者に確認しておけば技術的負債も発生しない
しっかり反省して自分の引き出しを増やそう!
- ミスは誰だってするもの
- 1度目の失敗は仕方がない
- でも2度目はないぞ
以上になります。
今回私がクラウド移行を経験して学んだ教訓を紹介させていただきました。
最後まで目を通していただきありがとうございました!