「インフラ怖い」が生んだSREの業務負担――freeeはどう改善したか:運用コストを減らす3つのポイントとは(1/2 ページ)
本番環境にKubernetesを活用するfreeeでは、SREに運用管理業務が集中して疲弊してしまった。そこで、開発チームにサービスの運用管理業務を任せることで改善していったという。その方法とは?
個人事業主や法人向けにSaaSを開発、提供するfreeeは、本番環境にAmazon Web Services(AWS)の「Amazon Elastic Compute Cloud」(以下、EC2)と「Amazon EC2 Auto Scaling」(以下、EC2 Auto Scaling)を活用していた。だが、提供するサービスの増加やマイクロサービス化などに伴い、SRE(Site Reliability Engineer)に運用管理業務が集中して疲弊。そこで、開発チームにサービスの運用管理業務を任せる形で、SREの業務負荷を減らしていったという。
2019年6月12〜14日に開かれた「AWS Summit Tokyo 2019」において、freeeでSREを務める足立紘亮氏が講演した内容を要約してお伝えする。
「負のスパイラル」が起きた運用管理の現場
freeeでは、在籍する100人以上の開発者が、2〜10人ずつのチームに分かれてサービス開発を行っている。規模によっては複数のチームが兼任でサービスを開発することもあるという。
その全プロダクト(サービス)のインフラを横断的に支えているのが、8人で構成されたSREチームだ。例えば、新規サービスをリリースする際には、SREがネットワークやデプロイ環境を構築したり、クラウドサービスの各種構成管理を整備したり、開発基盤の保守業務を行ったりしている。
「このような体制だと、リリース直後のサービス運用フェーズで、開発チームの問い合わせがSREに集まりがちだ。例えば、誇張しているかもしれないが、『デプロイに失敗した』『サービスが落ちた』『アクセス数が増加してさばけない』『DBのIOPS(I/O per Second)が高く、サーバが耐えられない。どうにかして』といったようなものだ。サービスを1つ運用する分には問題なく対応できるかもしれないが、複数のサービスをリリースして運用フェーズに進む状況では、SREに依頼されることが増加する。その結果、SREは目先のタスクに追われ、本当にやりたいことができない状況になった」
さらにこの問題を加速させたのがアプリケーションのマイクロサービス化だ。
アプリケーションのデプロイを容易にし、新しい技術を導入しやすくするため、サービスをマイクロサービスアーキテクチャで構築するケースが出てきた。これにより、アプリケーションを構築するための言語やフレームワークが多様化したり、アプリケーションのデプロイフローが複雑化したり、依存するサービスが増加したりした。結果、さらにSREに対して運用管理が集中し、SREチームが疲弊していったという。
「インフラ構築のために用意された強い権限はSREだけが持っていた。さらに現状のインフラ構成がどうなっているかまで開発者は認識できていなかったため、『インフラを触るのは怖い』という感覚が起こった。そして、SREにインフラ構成の全てを任せる状況を生み出し、SREチームを疲弊させていった」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Kubernetesがクラウド界の「Linux」と呼ばれる2つの理由
大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」第3回は、Kubernetesがクラウド界の「Linux」と呼ばれている理由とともに、Kubernetes内部の仕組み、機能を紹介します。 - Kubernetes活用に至るまで――リクルートテクノロジーズがコンテナを大規模システムの本番環境へ適用した事例
本連載では、サービスの開発、提供のアジリティ向上の一助となることを目的として、企業における「Kubernetes」の活用について解説する。今回は、リクルートテクノロジーズにおいて筆者が取り組んだ事例を基に、コンテナ仮想化技術を本番環境で利用する際の取り組み、成果と課題、「なぜ最終的にKubernetesを活用する決断に至ったか」を説明する。 - Kubernetesを手元で試せる「Minikube」「MicroK8s」とは
「コンテナ技術」やコンテナ実行環境の「Docker」、大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」。第4回は、Kubernetesのパッケージマネジャー「Helm」と手元で試せる「Minikube」「MicroK8s」を紹介します。