なぜ SRE?
中規模・大規模なシステムを スケーラブル に、 信頼性 高く、設計・構築するソリューションを開拓します。 ビジネス側やプロダクト開発側は速度を求めた結果、 コードの管理ができない、コードの変更による出戻りが多い、 安全なデプロイができない という課題が多くあります。 これらを解決するためにSREがあります。
対応している具体的な内容
以下のようなことをサポートいたします。
- アプリケショーンをDocker化
- Kubernetesクラスタの導入・構築
- Cloud Native Foundation の OSS 導入
- 負荷の高いサービスのインフラ設計・構築
- 秒間 100,000 request のサービス
- gRPCの常時接続台数300
- データベースのパーティション設計
- ロードバランサーによる負荷分散
- etc
- 開発速度を向上するための自動テストの導入
- CI
- REST API
- Web UI
- 安定したデプロイを実現するための自動デプロイの導入
- CD
- デプロイフローのドキュメント化
- メトリクスドリブンなシステムへ移行
- パブリッククラウドのメトリクス・モニタリングの設定
- Prometheus/Grafana の導入
- 既存アプリケーションのメトリクス収集実装
- その他、手動作業の自動化対応
外資SRE出身のエンジニア もおり、上記のようなことをサポートさせていただきます。
なぜ Docker?
アプリケーションの実行が高速
DockerはゲストOSが不要でホストOS上で直接動作します。「ホスト型」や「ハイパーバイザー型」の仮想技術はゲストOSが必要でした。 ホストOSとゲストOS間でやりとりが発生しないため、アプリケーションの動作が高速です。
共有が簡単
Dockerはアプリケーションをコンテナと呼ばれる軽量な仮想環境にパッケージングしています。これにより、アプリケーションを実行するために必要なすべての環境をまとめて管理できます。 パッケージングしたコンテナは「Dockerイメージ」と呼ばれる形で保存し開発チームに配布可能です。配布先のPCでも同じように動作させることができます。 DockerイメージはDocker レジストリという中央リポジトリにて共有することも可能です。
OSS
数多くのOSSがあり、ライセンスに基づいて導入が簡易的で、試験も簡易的にできます。
なぜ Kubernetes?
ゲームやECサイト運営といった一般消費者をターゲットとする業界や、会計・労務など法改正や制度変更の影響を受けるビジネス領域は、変化のスピードが速いです。
そうした環境でビジネスの目的を達成するためには、手段となるアプリケーションにも素早い変化が求められます。アプリケーションを素早く変更し公開していくためには、コードの頻繁な変更に加え、実行環境となるインフラストラクチャの整備も必要です。 そのため、インフラストラクチャを抽象化し、アプリケーションとインフラストラクチャの依存度を下げていく必要があります。 クラウドベンダーが提供するサービスを利用することは良い選択肢ですが、 OSS も含めて利用可能です。
Kubernetesであれば、インフラストラクチャを抽象化し、アプリケーションとインフラストラクチャの依存度を下げることでスピード感のあるシステム変更が可能になります。
なぜ メトリクスが必要?
大規模になればなるほどメトリクスは重要です。
GrafanaやPrometheusを用いて、アプリケーションレベルのメトリクスやインフラレベルのメトリクスを収集し、可視化することができます。
システムの安全性のための可視化・カスタマー単位で利用頻度を可視化等可能であり、システムの方向性の指標となり、大量のデータのメトリクスを処理できることからビジネスの指標にもなり得ます。