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
自己完結チームがプロダクトを素早く安全に届け続けるためのプラットフォームと文化を作る
Values
・Fail smart: 失敗を非難せず、学習の糧とする。また、影響範囲をコントロールし、最小のリスクから最大のリターンを得られるよう、プロセスに失敗を織り込む。
・Learning: 未知の課題を発見・解決するために、あらゆる物事を学習の機会と捉え、必要な変化をし続ける。
・Borderless: 組織の垣根なくコミュニケーションし、協力しあうことでより大きな成果を目指す。
・Metrics-driven: あらゆる課題・物事を指標化し、問題を点ではなく線で捉え、柔軟かつ自動的な解決を目指す。
応募条件
SRE としてご入社いただく方には、スタディサプリのサーバ構成・アーキテクチャ・開発チームの課題・プロダクトとして解決したい課題を理解し、組織の成長・変化に合わせて絶えず進化させていけるよう、または開発チームが自律的に開発のライフサイクルを回していけるよう、問題解決に向けた提案や対話を通し、実装からそれらが広がっていくための仕組み作りまで主体的に行っていけるようになることを期待します。
その後は、ご志向やパフォーマンスに応じて、他メンバーの育成、教育やエンジニアリングマネージャーを目指していただく事も可能です。
[必須条件]・AWS 等のパブリッククラウド上で構成管理ツールによる Infrastructure as Code 等を通じた自動化の仕組みの運用の経験がある
・Web アプリケーションの運用経験がある
・シェルスクリプト以外のプログラミング言語を書いた経験がある(Go言語、Ruby、Pythonなど)