This document summarizes a microservices meetup hosted by @mosa_siru. Key points include:
1. @mosa_siru is an engineer at DeNA and CTO of Gunosy.
2. The meetup covered Gunosy's architecture with over 45 GitHub repositories, 30 stacks, 10 Go APIs, and 10 Python batch processes using AWS services like Kinesis, Lambda, SQS and API Gateway.
3. Challenges discussed were managing 30 microservices, ensuring API latency below 50ms across availability zones, and handling 10 requests per second with nginx load balancing across 20 servers.
11. Copyrights?3-shake Inc. All Rights Reserved. 11
SRE とは ~ SRE 本の序章より ~
Googleで定義されるようになった Site Reliability Engineeringとは一体何なのか?
私の説明は簡単です。
SRE とは、ソフトウェアエンジニアに運用チームの設計を依頼したときにできあがるものです 。
What exactly is Site Reliability Engineering, as it has come to be defined at Google?
My explanation is simple:
SRE is what happens when you ask a software engineer to design an operations team.
By Betsy Beyer
https://sre.google/sre-book/introduction/
12. Copyrights?3-shake Inc. All Rights Reserved. 12
SRE とは ~ SRE 本の序章より ~
Googleで定義されるようになった Site Reliability Engineeringとは一体何なのか?
私の説明は簡単です。
SRE とは、ソフトウェアエンジニアに運用チームの設計を依頼したときにできあがるものです 。
What exactly is Site Reliability Engineering, as it has come to be defined at Google?
My explanation is simple:
SRE is what happens when you ask a software engineer to design an operations team.
By Betsy Beyer
https://sre.google/sre-book/introduction/
たとえ説明が簡単でも理解が難しすぎる...笑
13. Copyrights?3-shake Inc. All Rights Reserved. 13
システム運用において起きている問題
Ops の現場で抱えている問題
煩雑で繰り返し
の多い運用作業
日々追われる障害対応
とメンバーへの過負荷
守りを重視するが故に
リリーススピードが遅い
14. Copyrights?3-shake Inc. All Rights Reserved. 14
システム運用において起きているあるあるな問題
Ops の現場で抱えている問題
煩雑で繰り返し
の多い運用作業
日々追われる障害対応
とメンバーへの過負荷
守りを重視するが故に
リリーススピードが遅い
3K 的な要素が非常に強い...
15. Copyrights?3-shake Inc. All Rights Reserved. 15
SRE の原則について
? リスクの受容
? SLO の定義
? 分散システムのモニタリング
? Toil の削減
? 自動化の推進
? 適切なリリースエンジニアリング
Principles of SRE
参照: https://sre.google/sre-book/part-II-principles/
16. Copyrights?3-shake Inc. All Rights Reserved. 16
SRE の原則について
? リスクの受容
? SLO の定義
? 分散システムのモニタリング
? Toil の削減
? 自動化の推進
? 適切なリリースエンジニアリング
Principles of SRE
参照: https://sre.google/sre-book/part-II-principles/
100% の可用性を目指さず、SLO
を元に適切なリスクマネジメントと
業務ハンドリングを行う。
そのためにリスクの評価、管理、お
よびエラーバジェットの使用などを
実施していく。
17. Copyrights?3-shake Inc. All Rights Reserved. 17
SRE の原則について
? リスクの受容
? SLO の定義
? 分散システムのモニタリング
? Toil の削減
? 自動化の推進
? 適切なリリースエンジニアリング
Principles of SRE
参照: https://sre.google/sre-book/part-II-principles/
長期的なトレンドの把握や適切な
アラートによる問題解決の修復等
を行うために、
各種のモニタリングやアラート設定
を行っていく。
18. Copyrights?3-shake Inc. All Rights Reserved. 18
SRE の原則について
? リスクの受容
? SLO の定義
? 分散システムのモニタリング
? Toil の削減
? 自動化の推進
? 適切なリリースエンジニアリング
Principles of SRE
参照: https://sre.google/sre-book/part-II-principles/
サービスの成長に比例して拡大す
る永続的な価値を提供しない、あり
ふれた反復的な運用作業を自動
化して削減していく。
19. Copyrights?3-shake Inc. All Rights Reserved. 19
SRE の原則について
? リスクの受容
? SLO の定義
? 分散システムのモニタリング
? Toil の削減
? 自動化の推進
? 適切なリリースエンジニアリング
Principles of SRE
参照: https://sre.google/sre-book/part-II-principles/
多くの障害は人の手が加わること
によって発生する。
その為、適切な構成管理やリリー
スエンジニアリングの仕組みを構
築する必要がある。
20. Copyrights?3-shake Inc. All Rights Reserved. 20
SRE の原則について
? リスクの受容
? SLO の定義
? Toil の削減
? 分散システムのモニタリング
? 自動化の推進
? 適切なリリースエンジニアリング
? シンプルさの追求
Principles of SRE
参照: https://sre.google/sre-book/part-II-principles/
これらの原則を Software Engineering を通じて実現させる運用を行う職務こそが SRE
※ 独自解釈
23. Copyrights?3-shake Inc. All Rights Reserved. 23
組織組成するとき/組織改革するときに失敗するパターン
SRE チームに限らずあらゆる組織を立ち上げる時は様々な苦労や困難な壁
にぶつかります。
重要なのは組織組成や改革は当事者や周りが冷めてしまったら終わり
だということです。
その為に生まれたての組織は尚更慎重に活動していく必要があります。
組織の役割が曖昧でメンバーに目的が浸透
していない
活動が他のチームや上層部から理解が得ら
れない
現実と折り合いを付けずに
到達困難な高すぎる目標を立ててしまう
新しい活動に割けるリソースがなく、
コミット量が少ない
24. Copyrights?3-shake Inc. All Rights Reserved. 24
class SRE implements DevOps
DevOps SRE
Reduce organization silos
組織のサイロ化を無くす
Share ownership with developers by using the same tools and techniques across the stack
同じツールやテクニックを使用して、開発者とオーナーシップを共有する
Accept failure as normal
失敗を当たり前のように受け入れる
Have a formula for balancing accidents and failures against new releases
事故や失敗と新製品とのバランスをとるための公式を持つ
Implement gradual change
徐々に変化させる
Encourage moving quickly by reducing costs of failure
失敗したときのコストを減らすことで、迅速な行動を促します。
Leverage tooling & automation
ツールと自動化の活用
Encourages "automating this year's job away" and minimizing manual systems work to focus on
efforts that bring long-term value to the system
システムに長期的な価値をもたらす取り組みに集中するために、「今年の仕事を自動化する」ことを奨励
し、手作業によるシステム作業を最小限に抑える
Measure everything
すべてを測定する
Believes that operations is a software problem, and defines prescriptive ways for measuring
availability, uptime, outages, toil, etc.
オペレーションはソフトウェアの問題であると考え、アベイラビリティー、アップタイム、アウテージ、トイルな
どの測定方法を規定しています。
参照: https://cloud.google.com/blog/products/gcp/sre-vs-devops-competing-standards-or-close-friends
class SRE は DevOps を実装するとありますが ...
※ SRE には、必ずしもDevOps インターフェースの一部ではない、追加のプラクティスや推奨事項が含まれている場合があります。
25. Copyrights?3-shake Inc. All Rights Reserved. 25
class SRE implements DevOps
DevOps SRE
Reduce organization silos
組織のサイロ化を無くす
Share ownership with developers by using the same tools and techniques across the stack
同じツールやテクニックを使用して、開発者とオーナーシップを共有する
Accept failure as normal
失敗を当たり前のように受け入れる
Have a formula for balancing accidents and failures against new releases
事故や失敗と新製品とのバランスをとるための公式を持つ
Implement gradual change
徐々に変化させる
Encourage moving quickly by reducing costs of failure
失敗したときのコストを減らすことで、迅速な行動を促します。
Leverage tooling & automation
ツールと自動化の活用
Encourages "automating this year's job away" and minimizing manual systems work to focus on
efforts that bring long-term value to the system
システムに長期的な価値をもたらす取り組みに集中するために、「今年の仕事を自動化する」ことを奨励
し、手作業によるシステム作業を最小限に抑える
Measure everything
すべてを測定する
Believes that operations is a software problem, and defines prescriptive ways for measuring
availability, uptime, outages, toil, etc.
オペレーションはソフトウェアの問題であると考え、アベイラビリティー、アップタイム、アウテージ、トイルな
どの測定方法を規定しています。
参照: https://cloud.google.com/blog/products/gcp/sre-vs-devops-competing-standards-or-close-friends
class SRE は DevOps を実装するとありますが ...
※ SRE には、必ずしもDevOps インターフェースの一部ではない、追加のプラクティスや推奨事項が含まれている場合があります。
こういった手法を受け入れるだけの組織的土壌がありますか?
なければ作れますか?
他チームから理解を得て協働が可能ですか?
26. Copyrights?3-shake Inc. All Rights Reserved. 26
SRE はあらゆるレイヤーに密接に関わります
Biz Ops
Dev
SRE
DevOps の 「実装者」 としての役割をもつ SRE は当然
開発 や これまでの運用といったものと密接に関わります。
また、SLO の定義や SLA の定義を行うためには当然 SRE の
みで終止するものでは無いため、ビジネスサイドとも密接に関
わります。
SRE は単一組織として自分たちのタスクに終始すれば良いも
のではなく、様々な組織や役割と密接に連携し合いながら実
践していく必要があると考えています。