はじめましてシステム基盤部で働いているシステム基盤部・エンジニアリングマネージャーの熊谷です!
今回は、READYFORのインフラ構成と変遷について簡単に紹介したいと思います。このREADYFOR TECH BLOGの中でもインフラ周りに関しては、あまり触れられていないので、まずは少しでも知っていただけたらと思い、投稿させていただきます。
※ 内容的には、SRE Teck Talkでの話に少し付け足した形になります。
https://3-shake.connpass.com/event/214041/
はじめに
インフラ構成を紹介する前にREADYFORのエンジニア数の推移と体制について軽く触れさせていただきます。実は、READYFORがスタートアップして加速度的な成長を目指し始めてたのは2018年末で、そこから2019年に現CTOである町野が就任して、その前後でエンジニア体制が大きく変わっています。そして、その2019年以降でインフラ構成も大きな変化を遂げていっています。
インフラ構成の変遷
上記の通り、READYFORは2019年1月を境に体制・基盤が大きく変わり始めています。
※ 以下は、利用サービス・ツールを紹介するための図ですので、詳細に記述はしておらず、実際の構成とは異なります。あくまで、READYFORのインフラ基盤がこれまで、どのようなサービス・ツールを導入していったのかをお伝えできればと思っています。
2019年1月以前
2019年1月以前までは、インフラ整備が進んでおらず、最小限のAWSリソースで運用していました。当時の話として、以下のようなエピソードが色々ありますが、いずれもスタートアップなど事業の初期フェーズで、似たような経験をされた方も多いのではないでしょうか。自分も身に覚えがあることが多々あります・・。
- 準備していたにも関わらず、テレビ放映された瞬間にサーバーが落ちる。( サーバー増強はしていたが、データベースのコネクションで詰まる事態に。。)
- インフラ担当者が一人しかおらず、その一人も辞め、インフラ担当者が一人もいなくなる危機に陥る。
- 本番へのデプロイは、個々のローカル環境から実施しており、個人のネットワーク状況に委ねられる。
2019〜2020年(前半)
まずは、アクセス急増でもサーバーダウンしないインフラ構築が急務であったため、AutoScaling導入やAurora移行などを行い、そのあたりの地盤を固めていきます。また同時に監視・セキュリティ周りの整備も進めていきます。
VPC移行やネットワーク整備、またTerraformでの管理も徐々に進めていきます。
ただ、アクセス増加にはある程度、耐えれるようになったものの、オートスケールは導入しているがスケールイン/アウトは手動で行ったり、デプロイも手動で対応したりと、まだまだ課題は多くありました。
2020年(後半)〜現在
2020年に入り、さらにエンジニア数が増加して、ECS/EKS導入により強固なサービス基盤を構築を目指しつつ、データ基盤周りの整備を始めます。
利用サービスも、Netlify, Autify, GCP(BigQuery)など増えていきます。
ここまでで、かなりざっくりではありますが、READYFORで利用しているインフラ・サービスを紹介させていただきました。
ただ、今回上げさせていただいたサービスは、今でも絶賛進行中の部分もあり、発展途上です。例えば、ECS/EKSの一部では導入はしていますが、サービス全体でCI/CDから完全に整備仕切れているかというとまだまだですし、データ基盤にしてもある程度、サービスは利用していますが、事業全体で活用できているかというと、これからといった感じです。
他にも現在、エンジニアの増加と共に、過去のコンテキストを背負ったモノリスアーキテクチャが一つの大きなボトルネックになっているのですが、その問題解決に今まさに取り組んでいるところです。
また、SREでの信頼性の取り組みや開発者体験の向上に関しても、まだまだ課題は多くあり、READYFORの更なる成長に貢献すべく、日々奮闘中です。
SREとREADYFORの取り組み
続いて、SREとしてインフラ基盤を構築する上で、切り離すことのできない取り組みとして、READYFORの「乳化」「ドメイン駆動設計」が挙げられ、それらについても簡単に紹介させていただきます。
SREと「乳化」
よくあるケースとして、例えばSREとして、サービスの信頼性を上げるための取り組みを提案しても、事業部やプロダクト側との距離があったり、経営陣からの理解がなかったして、中々思うように進められないと言った事が挙げられるのではないでしょうか。 READYFORでは、「組織の中にエンジニアリングが自然に溶け込んでいる状態」 を「乳化」と呼んでおり、全社的にこの「乳化」を目指しています。「乳化」に関しては、このTECH BLOGでもいくつか記事がありますので、興味がある方は是非参考にしてみたください。
SREと「ドメイン駆動設計(DDD)」
事業やエンジニアリング組織の拡大にも併せて、READYFORのアーキテクチャも継続的に進化していく必要があるのですが、その中で向き合っていく必要がある大項目として、モノリシック・アーキテクチャやマイクロサービスアーキテクチャが挙げられます。READYFORのエンジニアリング組織が拡大し始めたのは、この2〜3年ではありますが、サービスとしては歴史があるため、過去のコンテキストがモノリシック・アーキテクチャとして積み上がってきており、それにより弊害が生まれてきています。
モノリスへの対応は、絶賛取り組み中なのですが、エンジニアリング組織全体でも事業ドメインとしっかり向き合いつつ、READYFORの次なるアーキテクチャに向けて、チーム一丸となり、取り組んでいるところです。
こちらに関しても、もし興味があれば、弊社メンバーの記事がいくつかございますので、参照ください。
最後に
READYFOR SREチームが取り組むインフラの変遷と全体像について簡単に紹介しました。全体的に広く浅めの内容ではありましたが、何か参考になれば幸いです! SRE/インフラに関する各技術の詳細な知見や事例に関しては、また別の機会で紹介できればと思っています。