sre_recruit

SREで@niftyを支えるエンジニア力とは

2021/12/17

ニフティはインターネットを通じて、人びとの暮らしをより豊かにするサービスを提供しています。

30年以上にわたり大きく生まれ変わっていくITの時代の変化に対応しつつ、人と人、人と情報をつなぐ役割を担ってきたニフティでは「自分たちのサービスを、自分たちの手で創り、自分たちで育てていく」という社風の元、高い目標に向かって周囲を巻き込みながら、自ら貪欲に手を出し吸収し続ける人が数多く活躍しています。

本記事では、中でもニフティのサービスを支え、深く関わっている「SRE」について取り上げ、SREの活動内容からSREの重要性について紹介していきます。

ニフティの採用情報はこちら

SREとは?

SREとはGoogleによって提唱された言葉で「Site Reliability Engineering=サイト信頼性エンジニアリング」という言葉の略称になります。

SREは、サイトの信頼性向上のために、自動化、障害対応、パフォーマンス管理、可用性担保などを通じて収益・ブランドを支える役割を指し、エンジニアが信頼性向上のために行う設計やアプローチ、またはこれらを行うチームを指します。

つまり、システムの安定稼働に専念するだけでなく、ビジネスへの寄与も求められています。

SREがGoogleによって提唱されたことにより、日本でもSREチームを設立する動きが広がってきており、ニフティでもSRE活動により自社サービスの発展を目指す動きが活発化しています。

 

ニフティでのSRE活動内容

ニフティではエンジニアが開発に集中できる世界を実現するために、SRE文化の浸透や、関係する技術や働き方について注力しています。

ここでは、ニフティにおけるSRE活動の詳細について見ていきます。

 

サービスのSLI/SLOの策定や見える化

SLIは「サービスレベル指標」、SLOは「サービスレベル目標」のことで、簡単にいうとサービスが使えるかどうか、速度は出ているかどうか、など「お客様がニフティのサービスを使えているのか」を表すものです。

(Web)サービスの裏側は様々なシステムから、ネットワークを通じてお客様に配信されます。

システムはサーバーやデータベースで構成されていて、サーバーの負荷が高いなどのモニタリングでは、お客様への影響がわからないという問題がありました。

SLI/SLOは、サーバーの負荷だけで判断するのではなく、サービスの状態を数値化しており、可視化することでサービスの状態が明確にわかるようになります。

これにより、サーバーで負荷が一時的に高いとしても、お客様への影響が無いことが分かり、逆にサーバーに問題がなくてもSLOが低下していれば、他のシステムやネットワークに問題があることが素早く分かります。

ニフティではこのように、お客様への影響がいち早く発見できるよう、SLI/SLOを設定することを進めています。

 

デプロイ自動化

デプロイというのは、サーバーやアプリケーションなどを更新したり新しく配置したりすることを意味します。

新しい機能追加や、デザイン変更といったサービスを更新する場合、プログラムの更新やシステム構成の変更などが行われています。

クラウド環境においては、これらの作業は全てAPIを活用して自動(もしくは半自動)で行われます。

従来は手動で行っていた作業を、自動化することで以下のようなメリットがあります。

・手動によるミスが無くなる
・サービスの更新を頻繁に、素早く行える

ミスが無くなるという点については、前述したSLOに関係してきます。デプロイする時が最も障害が発生しやすく、お客様への影響が出る可能性が高くなりますが、自動化することでその障害発生リスクを最小限に抑える事ができます。

また、サービスの更新頻度が早くなる点については、お客様へサービスの新しい機能、つまりは価値を多く、素早く届けるという点に直結します。

 

また、デプロイ自動化に関連して「自動復旧」という言葉もあります。

これは、システムが異常な状態に向かう傾向を検知して、システムを健全な状態に立て直す作業になります。これは本来、手動で行っていたものですが、自動化することで素早く・または未然に問題を防ぐことでお客様へのサービス影響を防ぎます

 

インフラのコード化

クラウドでのインフラは全てコードにすることができます。IaC(インスフラストラクチャアズコード)などと呼ばれます。

サーバーの性能や台数、データベースの種類や性能などがコードや定義ファイルで定義可能になります。

それらがGitなどのバージョン管理システムで管理され、前述したデプロイに使われます。つまり、デプロイ自動化は、IaCができている前提で自動化ができるのです。

さらに、インフラをコード化することのメリットも多数あります。

Git管理された定義ファイルやコードが、クラウドのインフラのあるべき状態として管理されることで、デプロイ自動化はもちろん、問題が起きたときに切り戻しができるのです。

 

障害復旧フローの整備や効率化

デプロイ自動化・自動復旧などで人的ミスや予想される問題への対処はできますが、「物は壊れる」という言葉があるように、障害というのは起きてしまします。

そういった場合には、エンジニアやSREが動くことになりますが、突然対応するのは難しいです。

そこで、障害が起きた場合、いかに素早く復旧できるか(お客様がサービスを使える状態に戻すか)ということがポイントになります。

そのためには、普段から障害発生時のワークフローを決めておく、そして練習しておくことが重要となります。

 

ニフティでは、ロールプレイングといった役割ベースの障害対応の練習を継続的に実施していまして、もし障害が起こった場合でも素早く復旧ができるよう訓練をしています。

ロールプレイングでは、主に過去の障害対応を模したものや、想定される障害をシミュレートしてみるといったことを実施します。

エンジニアや企画のメンバー間での連携がスムーズに行えるようにコミュニケーションの訓練にもなります。

 

エンジニアで成り立っているニフティ

ニフティはエンジニアの力により、30年以上にわたり@nifty光など安定した回線やWebサービスを提供し続けてきました。

引き続き大きく生まれ変わっていくITの時代の変化の中で安定したサービスを提供し、組織を拡大していくためには、さらにエンジニアの力を大きくしていく必要があります。

ニフティでは、インターネット回線という高い信頼性が求められる分野において、一緒に働く仲間を募集しています。興味のある方は以下の採用情報ページから募集情報をご確認ください。

>>ニフティの採用情報はこちら

ニフティでのSRE活動の取り組みについての詳細は以下より確認いただけます。(エンジニア:浅見則彦さん)
社員インタビュー(ニフティ株式会社)
【SRE】N1!メンバーを紹介します。(Wantedly掲載)

 

※2021年12月時点の情報です。

@niftyのおすすめインターネット接続サービス

  • @nifty光
  • ドコモ光
  • auひかり