こんにちは、エムスリー エンジニアリンググループ / 製薬企業向けプラットフォームチームの後藤です。
この記事はエムスリーSREがお届けするブログリレーの11日目です。
このブログリレーでも何度か紹介していますが、エムスリーにはチーム横断のSREである「コアSRE」と各サービスチーム内のSREである「チームSRE」が存在します。
私は2020年4月にチームSREとして入社しましたが、それまで実務としてインフラをしっかりと触った経験はほぼゼロでした。
本記事では、このような私がチームSREとして1年間どのような業務に取り組んできたのか紹介したいと思います。
今はSREではないけれども、SREに興味がある、チャレンジしてみたいと思っている方々の参考になればと思います。
1. チームSREになる前のバックグラウンド
まず、コアSREとチームSREのそれぞれの役割や体制の意図についてはリレー初日の記事を御覧ください。
上記の記事にある通り、チームSREの採用では「少しインフラ触ったことがあるアプリケーションエンジニアや、インフラ未経験だけどSREに挑戦してみたいという人」も対象となっています。
私自身もこれまではSIerでアプリケーションエンジニアをしており、インフラ(クラウド含む)の実務経験がない状態からチームSREになりました。
会社を変え、職種も変えるというのはチャレンジでしたが、自分のスキルの幅を広げるチャンスだと思いましたし、大規模なサービスを運用しているチームで多くの経験ができると思い決断しました。
インフラの実務経験がゼロと書きましたがまったくの無知というわけではなく、高専から大学院修士までの9年間コンピュータサイエンスは学んできましたし、DB/NWスペシャリストの資格は持っています。
スキルレベルを正確に表すのは難しいですが、「インフラの基礎知識はあるが実務経験はないアプリケーションエンジニア」というのが近いかなと思います。
2. チームSREとして取り組んできた業務
チームSREとして入社してから1年弱の間に私が取り組んだ主な業務です。
- チームSREの立ち上げ
所属チームでは私が最初のチームSREということもあり、最初は立ち上げとしてチームの課題の整理や取り組みの検討をしました。
担当サービスに対して、可用性・パフォーマンス・モニタリング・セキュリティ・運用などの観点から課題を挙げて、対応の優先度付けをしていきました。
この時点では、担当サービスや社内インフラの中身が全然わからない状態だったので、私が主導的に動くというよりはキャッチアップの側面が強かったです。
- 担当サービスのクラウド移行
担当サービスの中にはまだオンプレミスで動いているものがあり、それらをクラウド移行していくのが私の主なミッションです。
移行においては、計画の策定・クラウド環境のアーキテクチャ検討・環境構築・移行作業というように全ての作業に関わっています。
移行の戦略は Re-platform を原則としているので、ただサーバをクラウドに持っていくわけではなく、アプリケーションをコンテナ化してECSにのせたり、DBはAuroraにしたりとサービスごとに最適なアーキテクチャを検討した上で移行します。
- サービスの性能改善
ありがたいことに担当しているサービスの利用が非常に伸びているので、パフォーマンス面で問題がでることがあります。
モニタリングした結果をもとにボトルネックの特定、アプリケーション/インフラの修正を実装するという改善業務を継続的に実施しています。
あるAPIの性能改善をした時の流れを具体例として挙げると、kibanaでアプリケーションとDBのログを調べて、特定のパターンのリクエストのみ遅いこととDBのクエリが大量に発行されていることを特定し、ソースコードの上の問題箇所を突き止めて修正を実装するというところまで実施しました。
- その他
その他にも、サービスやチーム環境の改善につながる業務を日々進めています。
開発環境やCI/CDパイプラインもチームSREが主に管理していますし、モニタリング用のダッシュボードを構築したり、サービスのアラートに対応したりもしています。
3. チームSREになって得られたもの
チームSREになって最も成長した点は、やはりインフラ周りの実務経験を積めたことです。
裏を返せばここは最も苦労した点でもあり、DB、NW、クラウドなどいろいろと関わりましたが、経験不足のためにキャッチアップはかなり大変でした。
ただ、エムスリーのインフラはほとんどAnsibleやTerraformでコード化されていますし、ガイドが社内Wikiにまとまっていたり、他チームのサービスを参考にできたりと、学ぶための環境は整っていました。
ある程度の基礎知識はあったので、知識と実経験が組み合わさることで自分でも想像以上のスピードで成長できたと思います。
また、チームSREの特徴として、担当サービスのアプリケーションからインフラまで全体を見ることができます。
パフォーマンス改善でも障害対応でも、問題箇所の特定から、実際に修正のコードを書いてというところを一貫してできるので、自分でやりたがりの私としては裁量と責任感をもって臨める素晴らしいポジションです。
最後に、余談ですが、AWSのサービスの略語をたくさん覚えることができたことも大きな成長でした (笑)
4. まとめ
チームSREは、チーム横断の共通インフラを管理するコアSREと各チームで開発をしているエンジニアの中間のような存在です。
そのため、私のようにアプリケーションエンジニアからでもチャレンジしやすく、いい感じにスキルとキャリアの幅を広げられたように思います。
この1年はチームの課題を解決しながら自分も成長してきましたが、これからは成長した分を活かしてどんどん攻めの施策を進めてチームの改善をしていきたいと思います。
We are Hiring!
最後になりますが、エムスリーではインフラ未経験でもチャレンジしたいという気概のある方を絶賛を募集中です。
自身の成長とサービスの成長の両方を目指していきたい方をお待ちしています!!