ご挨拶
はじめまして、これからこのサイトでSREに関する様々な情報を発信していきます。
サイト運営者のMakiです。
普段は都内のIT会社でSREチームのマネジメントを行っています。
SREというのはGoogleがシステムをどのように運用していくべきなのかを提唱したものです。
最近ではSREチームを立ち上げましたといった記事を見かけることも多くなり、少しずつIT業界の中では浸透しているワードなのではないかと思います。
実際にSREに携わる身として、自分自身が経験したことや考えていること、今後取り組んでいきたいことなどの情報を発信していきたいと思います。
SREって何?
SREについて簡単に説明をいたしますと、SREとはGoogleが提唱した「Site Reliability Engineering
」という考えのことを言います。
具体的には以下のようなことを行います。
- サイトの信頼性を保証する
- 運用業務とサイトの信頼性向上の2つの役割を担う
- 積極的にコードを記述
- 運用をクラウドや自動化に置き換える
上記についてスマホゲームを例に例えて説明したいと思います。
サイトの信頼性を保証するとは
サイトの信頼性とは何かというと具体的にはインターネットにつながっているサービスが問題なく使えることを担保するということです。
スマホゲームの例で説明するとゲームが問題なく使える状態をできる限り担保するということになります。
スマホゲームっていろんな要因によってたまに使えなくなったりすることありますよね?
例えばアニメのコラボイベントをやった際にアクセスが集中してサーバーダウンしてしまったりとか、アップデートを行ったら不安定になってしまったとか。
こういうのがあるたびにゲーム会社の中の人達はいち早くゲームを再開させれるようにがんばります。
SREではこのようにユーザーがサービスを安心して利用できるようにするということに責務を持つという役割があります。
運用業務とサイトの信頼性向上の2つの役割を担う
次に運用業務とはシステムの運用者が日々行っている業務になります。
スマホゲームでいうとゲームのメンテナンスがこれに当たります。スマホのゲームって新しイベントが始まったり新しい機能がついたり頻繁にしますよね。
そのときに内部ではメンテナンス作業を行い、新しいイベントや機能のが利用できるようにせっせと動いています。
また、過去のイベントの状況を加味して事前サーバーがダウンしないように対策を打ったりなど、みなさんがゲームを安心して利用できるようにするために日々工夫をを重ねています。
積極的にコードを記述
SREでは人の手で運用作業を行うだけでなく、運用業務をより効率的に行うために様々な作業を自動化したり、サイトが使えなくなったときに人の手で復旧するのではなく問題が発生したら機械的に復旧できるように仕組みを整えるなどエンジニアリングをすることによって改善を行います。
例えば、スマホゲームだと新しいバージョンの機能がリリースされたら、運用者の手をなるべく介さずにみんなに提供できるように自動化するためのコードを書いたりします。
運用をクラウドや自動化に置き換える
スマホゲームのユーザー数が順調に増えてきたときに、ゲーム会社の人はユーザーがゲームを快適にできるようにするためにサーバー数の増加やサーバースペックの増強を図ります。
ユーザー数が緩やかに伸びていくのであれば運用者がサーバーをセットアップして対応することも可能かもしれません。
ゲームのユーザー数が急激に伸びたときなどにその作業を実施するのはとても大変です。
そういった作業を自動的に行えるように設計することも可能です。
このように今まで人が作業していた領域をクラウドや自動化の技術を駆使して効率的に行えっていくことをSREの人たちは行っています。
まとめ
- SREとはGoogleが提唱した「Site Reliability Engineering」という概念
- サイトの信頼性を保証する
- 運用業務とサイトの信頼性向上の2つの役割を担う
- 積極的にコードを記述
- 運用をクラウドや自動化に置き換える
以上がSREについての簡単な説明になります。
より詳しい内容はGoogleのSRE本に記載がされています。
SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
英語版はインターネット上で無料で読むことができます。英語が得意な方は読んでみてはいかがでしょうか?
Site Reliability Engineering
https://landing.google.com/sre/sre-book/toc/index.html
コメント