SRESRE

教育サービスを改革する自己完結型チームを実現するSRE募集!
SRE は、日本、インドネシア、フィリピンでさらに拡大を続ける学習サービス(Quipper Video, Quipper School, スタディサプリ小・中・高校講座、大学受験講座)の安定性、信頼性、高い開発体験による自己完結型の開発チームを、開発チームと協力しながら作っていくことをミッションとして組織されています。その業務内容は、インフラの構築、監視、障害対応だけではなく、特にパブリッククラウドとSaaSの活用、自動化、OSSの活用、そしてそれらのシステムが現状の組織において半ば自動的に機能するような状態を目指しています。
業務内容
・パブリッククラウドとSaaSの活用
・スタディサプリは、現在は AWS と GCP 上に構築されています
・サービスとしてコアでない部分については SaaS を積極的に活用しています
・監視に Datadog, メールに Sendgrid, エ ラー管理に Sentry など
・Infrastructure as Code (コード化、自動化)
・インフラの構築は可能な限り Terraform, Ansible などのツールを利用してコード化、自動化しています
・OSS の活用
・Kubernetes, Envoy, Argo CD, Ruby, Ruby on Rails, Go, gRPC, PostgreSQL, MongoDB, fluentd, など Quipper のサービスは多くの OSS に支えられています
・OSS を利用するだけではなく、必要に応じて issue 報告や、プラグインの作成など積極的に関わっていくことを推奨します
・コードを書く
・コードを書かずに既存のソリューションを利用する方が合理的であればそうしますし、自分たちで作る方が合理的なのであればそうします
具体的には、以下のような課題に関して具体的なイメージをチームメンバーや開発チームとともに作り上げ、実装・展開していくこと。
・開発チームと共にSite Reliability Engineeringの思想やスキルを学んで、より良いプロダクト開発のあり方を探るためのプログラムの作成
・GitOpsツール等によりCI/CDパイプラインを最適化し、開発体験を向上する仕組み
・AWS等のクラウドリソースのセルフサービス化のための仕組み
・サービスの成長や季節性に合わせた柔軟なスケーリングを行うためのプランニングおよびオートスケーリングの適用
・Cluster/Podのオートスケーリングによるスケーリングの簡易化・自動化
・EnvoyやOpenTelemetry等によるObservability基盤
・Istio/Envoy等を活用した、Circuit BreakerやRate Limiting等のMicroservicesの安定化を促す機構を簡単に利用できる仕組み
・Jenkins等のジョブ実行基盤を現在の組織の形に合わせたCloud Nativeな形への段階的移行
・Telepresence等を用いて、効率的にKubernetes上でアプリケーション開発を行うための仕組み
・Prometheus Exporter等を用いた、言語やフレームワークごとの共通のメトリクスを簡単に収集できるような仕組み
・複数アプリケーション横断でログを検索するためのログフォーマットの整備、ライブラリ
・Savings PlansやSpotinst等の活用によるリソースとコストの最適化
ポジションの魅力
現在、モノリシックなアーキテクチャからマイクロサービスへの段階的な移行を進めています。これは技術的な問題だけではなく、組織的な課題でもあり、プロダクト開発をもっと前に進め、より良い教育のあり方を探っていくための問題です。DevOps/SREの様々なプラクティスの重要性が、実感を込めて感じられる状況になっています。
マイクロサービスへの移行にあたって、現状SREを含めた広い意味での開発組織全体の大きな課題が、「自己完結化」です。同じサービスを複数のチームで共有してしまっているため、機能のリリースには複雑な調整が必要になります。また、新規サービスの作成においても、例えば必要なインフラのセットアップにSREとの調整が必要であったりと、必要なスピードが出せない状況になってきました。
そこを打破するのが「自己完結化」です。各チームがそれぞれの責任範囲に応じてサービスを持つことができれば、調整のコストを限りなくゼロに近づけ、自分たちが必要な機能開発のサイクルを、低コストで何度も繰り返すことができますし、それを通じてより正しいプロダク トが作っていけるはずです。
また、インフラレイヤにおける技術選定も開発チーム内で行えるようになれば、必要な機能に対して最適な選択肢を素早く検証することができ、そうやって培ったインフラへの知見が、それまでとは全く違った機能のあり方を浮かび上がらせることだってあるかもしれません。そんな組織において求められるSREチームのあり方は、依頼をただこなすのではなく、開発組織をエンパワーすることを通じて、プロダクトをより良いものにしていくことではないでしょうか。
マイクロサービスへの移行にせよ、チームの自己完結化にせよ、これらの課題は明確な終わりがないものですし、問題のボトルネックは常に移り変わるものです。モノリスから切り出したマイクロサービスがまたモノリスになって、そこからまた切り出しが必要になる、という状況だって起こってくるかもしれません。
そんな中でできることは、日々開発チームやチームメンバーとの対話を通じて課題を設定し、そこへのゴールを一度明確にし、一つ一つやっていくしかありません。しかし、一つ課題をクリアすると、また別の課題が見えてくるものです。それでも、そこから生み出されるソフトウェアや、ユーザーに届いた価値、そしてそれを実現するために成長した自分やチームというのはきっとそこにあるものなのかもしれません。
チームのVision / Mission / Values
Vision
最高の学習プロダクトを作り続けられる開発組織の実現
Mission