#394 【学習アプリ】SREエンジニア

#394 【学習アプリ】SREエンジニア

Summary

掲載日:2021年5月13日
東京| 正社員 | 600〜1,000万円

Job

【会社概要】

イギリスのロンドンで創業された、国境や貧富の差を超えて、世界中で誰もが学びたいものを好きなだけ学べる社会の実現を目指す会社です。

モバイル教育プラットフォームの企画・開発・運営を行っており、オンライン教育サービスの開発に携わって頂きます。この学習アプリは現在、BtoC/BtoB領域において様々なサービスラインナップを提供しており、開発者はそれぞれのチームに分かれて開発を行っています。

【お仕事の内容】

・パブリッククラウドと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, など サービスは多くの 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チームのあり方は、依頼をただこなすのではなく、開発組織をエンパワーすることを通じて、プロダクトをより良いものにしていくことではないでしょうか。

マイクロサービスへの移行にせよ、チームの自己完結化にせよ、これらの課題は明確な終わりがないものですし、問題のボトルネックは常に移り変わるものです。モノリスから切り出したマイクロサービスがまたモノリスになって、そこからまた切り出しが必要になる、という状況だって起こってくるかもしれません。

そんな中でできることは、日々開発チームやチームメンバーとの対話を通じて課題を設定し、そこへのゴールを一度明確にし、一つ一つやっていくしかありません。しかし、一つ課題をクリアすると、また別の課題が見えてくるものです。それでも、そこから生み出されるソフトウェアや、ユーザーに届いた価値、そしてそれを実現するために成長した自分やチームというのはきっとそこにあるものなのかもしれません。

【必須条件】

・AWS 等のパブリッククラウド上で構成管理ツールによる Infrastructure as Code 等を通じた自動化の仕組みの運用の経験がある

・Web アプリケーションの運用経験がある

・シェルスクリプト以外のプログラミング言語を書いた経験がある(Go言語、Ruby、Pythonなど)

・Docker を始めとしたコンテナ関連技術の利用経験

・「Distributors of Wisdom」、「知の流通革命」を実現する、というミッションへの共感、エンジニアリングのスタイルに共感できること

・プロダクト開発など、SREに閉じない業務において、それぞれの関係者と対話的なコミュニケーションを行うことで、より良いものを作っていける方

・日本語が母語でない場合はN2相当の言語能力をお持ちの方

【歓迎条件】

・DevOpsを実践するチームで働き、Dev/Ops両方の観点からプロダクトの開発を行った経験がある

・SLI/SLOを決めたり、それらをレビューする文化を作ってきたことがある

・CI/CDパイプラインの構築や、開発環境の共通化を通してDeveloper Experienceの改善をした経験がある

・組織・技術の両面からアーキテクチャを考え、実装し、進化させてきた経験がある

・Microservicesのような分散システムを安定的に稼働・運用させるためのノウハウを持っている

・Logging, Tracing, Metrics等Observabilityを確保するための基盤を構築した経験がある

・自社サービスのクラウドに特化した設計の経験がある

・RDBMS/KVS/列指向DB等、複数のデータベースの中から、求められる要件や特性に応じて適切な選択ができる

・分析基盤の構築経験がある

・RubyやGoでのプログラミング経験がある

・英語によるコミュニケーションスキルがある、または磨きたい

【待遇・条件】

雇用形態 :正社員

試用期間 :3ヵ月間(試用期間内での条件や給与の変動なし)

想定年収 :600〜1,000万円

勤務地  :東京都(フルリモート)

勤務時間 :フルフレックス制(コアタイムなし)

休日   :完全週休2日(土・日)、祝祭日

休暇   :夏季休暇、年末年始休暇、その他の休暇有

残業時間 :平均月10時間内

福利厚生 :社会保険完備、通勤手当(会社規定に沿う)、その他福利厚生有

【選考について】

応募に必要な書類:履歴書、職務経歴書

オンライン面接:可

面接の言語:日本語

面接回数(流れ):3回 *コーディングテストあり

海外在住の方の応募:可

*候補者の状況によって変更あり