SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
15分でわかる NoOps
~ テクノロジの進化と価値観の変化を知る ~
NoOps Meetup Tokyo #1 2018.09.12
1. NoOps の目指すもの
2. なぜ今 NoOps なのか
3. NoOps のつくりかた
 ミドルウェア / アプリケーション / 組織
[付録] NoOpsを支える技術
Agenda
システム運用の “嬉しくない” ことをなくそう
NoOps の目指すもの
1. ユーザーの体験を妨げないシステム運用保守の実現
• 障害時のダウン、計画停止、負荷集中時の性能低下、etc..
2. 運用保守の現場で発生する「トイル」の最小化
• リリース手続き、パッチの適用、リソース監視、待機、etc..
3. システム運用保守のリソースとコストの最適化
• 余剰資源を持たない、適正品質、時間外勤務、人材活用、etc..
システム運用保守に関する「嬉しくないもの」を取り除く活動
そこに立ちはだかる
Ops改善のジレンマ
コスト増(人・設備)現場の負担増
and/or
サービス低下
and/or
コスト増
(設備・アウトソース)
サービス低下
現場の負担激増
and/or
NoOps の目指すもの
1. ユーザーの体験を妨げないシステム運用保守の実現
• 障害時のダウン、計画停止、負荷集中時の性能低下、etc..
2. 運用保守の現場で発生する「トイル」の最小化
• リリース手続き、パッチの適用、リソース監視、待機、etc..
3. システム運用保守のリソースとコストの最適化
• 余剰資源を持たない、適正品質、時間外勤務、人材活用、etc..
システム運用保守に関する「嬉しくないもの」を取り除く活動
いまから10年前、「堅牢さ=信頼性」だった
商用 UNIX Server
進化
「高い復元力」
実現の鍵は
回復性 = 障害から回復して動作を続行するシステムの能力
障害の回避が目的ではなく、ダウンタイムやデータ損失を回避すべく障害に対応することを目指す。
回復性設計の目的は、障害発生時にもアプリケーションが完全に機能している状態を維持することである。
“取り回しの軽さ”
Robustness から Resiliency への
価値観の転換
「壊れない」 「いつでも回復できる」
「復元力」
壊れても、動き続けるための能力
高
低
なし
(秒単位で回復)
(数十分~数時間で回復)
(回復不能)
復元力
(Resiliencability)
復元力
(Resiliencability)
サーバレス
コンテナ
仮想マシン(VM)
非冗長物理構成
物理機器
秒単位
数分~
数時間
~数日
復旧不能
高
低
なし
しかも、それだけじゃない。
- Self Healing
- In-Flight Renewing
– Adaptive Scale
「高い回復性」を持つことによる可能性の広がり
NoOps システムが備えるべき 3つの能力
NoOps
Failure
NoOps へ向かう最もシンプルなソリューション
仕様には書かれていない。
目利きが必要
でも、NoOps ってクラウドが前提なんでしょ?
https://www.slideshare.net/yokawasa/kubernetes-x-paas-noops
しかしミドルウェアだけでは不十分
アプリケーションにも回復力を持たせる必要がある
データベース
アプリサーバ
アプリアプリ アプリ
メッセージングサービ
ス
アプリケーション
プラットフォーム
Monitor
Monitor
Automation
Automation
Monitor
Automation
Monitor
Automation
システム全体のNoOpsを実現するには、プラットフォームだけでなく
アプリケーションの回復性も必要
システム利用者
アプリケーションの
「復元力(Resiliencability)」は
設計指針によって実装される
アプリケーション向けの
カスタム回復メカニズム
復元力
Monitor
Automation
プラットフォーム向けのカスタム
回復メカニズム
プラットフォームの
「復元力」は、主にHA機構として既に
有していることが多い。
復元力
プラットフォームの備える
回復メカニズム
回復性のためのアプリケーション設計原則
1回の大きな処理よりも複数の小さな処理を選ぶ
処理はステートレスで設計する
非同期処理を前提に設計する
処理の冪等(べきとう)性を担保する
全ての処理結果を記録する
① 処理データの
リクエスト
③注文ステータス更新処理
10万回ループ
Database
仮想マシン
④ 処理結果の書き込み
② 10万件のデータ取得
① 処理データの
リクエスト
Database
Serverless
② 10万件のデータ
④ Jobを1件ずつ
キューに投入
⑤(可能であれば)
Jobの並列実行
Serverless ファーム
Monitor
Automation
カスタム回復メカニズム
Jobとキューの監視と回復処理
③ 10万件の個別処理に分離
⑥ 処理結果の書き込み
https://github.com/NoOps-jp/functions-batch-handson
https://github.com/zenarchitects/functions-batchapps
ハンズオンマテリアル
サンプルコード
Share on
NoOps を実現するチーム
DevOps
伝統的運用保守
(ITIL型)
Design for Robustness
(堅牢さを前提とした設計)
Design for Failure
(故障を前提とした設計)
NoOps
Design for Resiliency
(回復性設計)
SRE
(信頼性エンジニアリング)
アジャイルによる
価値観の転換
クラウドによる
価値観の転換
しっかりと計画され、厳密に
管理された運用保守業務。
正常稼働していることが通常状態。
故障や不具合は例外処理として設計。
故障や不具合も通常状態として扱い、
発生時を想定して設計する。
開発と運用保守を一体として扱い、
状況の変化に柔軟に対応できる組織。
1990年代~ 2008年
運用保守アプローチ
運用保守もエンジニアリング業務として扱う。
ヒューマンエラーを最小化し、システムの信頼性
を維持するための継続的改善活動。
復旧作業時のヒューマンエラーを最小化する
ため、障害の発生から正常稼働状態への復旧
まで想定して設計する。
システム設計アプローチ
2014年 現在
Design for Resiliency
SRE
NoOps =
DevOps
NoOpsの活動ライフサイクル
回復性設計
アーキテクト
システム
エンジニアリング
基本設計
NoOps活動
自律運用
手動運用
システム
運用保守
エンジニアリング
自律運用
システム
SREチーム開発チーム
非機能要求
「人間による運用保守作業を最小化する」
アーキテクチャの変更
システムに回復性を後から備えさせることは困難
基本設計時点で回復性を持たせることが重要
システムは変化し続ける前提で
継続的に運用保守を改善する活動機能の追加・変更
自動化の促進
手動運用の
増加
システムの初期開発時
「OSやミドルウェアのメンテナンスは
サービス無停止で行う」
「ハードウェアの交換も、もちろんサービス無停止」
「OSやミドルウェアのメンテナンスは
サービス無停止で行う」
「ハードウェアの交換も、もちろんサービス無停止」
「回復性」のレベルは、後から変更できない
技術の進化とともに、
「要求」も「設計」も進化しなければならない
システム運用の “嬉しくない” ことをなくそう
システムに関わる全ての人が
ハッピーになるために。
http://tech.nikkeibp.co.jp/atcl/nxt/column/18/00263/041900001/
https://www.slideshare.net/hiromasaoka/noops-88082246
https://noops.connpass.com
https://www.slideshare.net/hiromasaoka/noops-98595318
Thank You!
NoOps システムが備えるべき 3つの能力
NoOps
Failure
Resiliencability
ConfigurabilityObservability
NoOps Landscape
NoOps Ready Solutions
Application Platform
Database
Messaging
Container Serverless
Runbook
CI/CD
Image Build/Repository
Coordination
Monitor
Log
Azure
Web Apps
Azure
Functions
Azure Monitor
Log Analytics
Azure
Automation
Cosmos DB
Azure DB for
MySQL/PostgreSQL
Service
Fabric
AKS
Data Analysis
AWS
Lambda
GKE
Google
Cloud Functions
AWS
Cloudwatch
Google
AppEngine
Container Based Solution with
- Self Healing
- In-Flight Renewing
- Adaptive Scale
and API Based
Configration/Provisioning ability.
Platform with High Resiliency.
Azure
Event Grid
NoOps Landscape
絶賛定義中
でも、自分たちの視野ではぜんぜん足りない
こんな感じに
できるといいなあ
一緒に考えてもいいよ、という方は @okahiromasa までお声がけください

Mais conteúdo relacionado

Mais procurados

Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
 

Mais procurados (20)

各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
 
私にとってのテスト
私にとってのテスト私にとってのテスト
私にとってのテスト
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
NoOpsが目指す未来とコンテナ技術
NoOpsが目指す未来とコンテナ技術NoOpsが目指す未来とコンテナ技術
NoOpsが目指す未来とコンテナ技術
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 

Semelhante a 15分で分かる NoOps

オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
Open Source Software Association of Japan
 

Semelhante a 15分で分かる NoOps (20)

de:code 2019 SP07 実践NoOps
de:code 2019 SP07 実践NoOpsde:code 2019 SP07 実践NoOps
de:code 2019 SP07 実践NoOps
 
リーン原則とソフトウェア開発
リーン原則とソフトウェア開発リーン原則とソフトウェア開発
リーン原則とソフトウェア開発
 
NoOps で変わる 人とシステムの関わりかた
NoOps で変わる 人とシステムの関わりかたNoOps で変わる 人とシステムの関わりかた
NoOps で変わる 人とシステムの関わりかた
 
Osc tokyo20141019
Osc tokyo20141019Osc tokyo20141019
Osc tokyo20141019
 
Milano ops-meetup報告会
Milano ops-meetup報告会Milano ops-meetup報告会
Milano ops-meetup報告会
 
運用効率化・運用自動化の実現方式とは?
運用効率化・運用自動化の実現方式とは?運用効率化・運用自動化の実現方式とは?
運用効率化・運用自動化の実現方式とは?
 
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2
 
運用効率化・運用自動化の実現方式とは?
運用効率化・運用自動化の実現方式とは?運用効率化・運用自動化の実現方式とは?
運用効率化・運用自動化の実現方式とは?
 
スクラムプロジェクト準備(公開用) No.31
スクラムプロジェクト準備(公開用) No.31スクラムプロジェクト準備(公開用) No.31
スクラムプロジェクト準備(公開用) No.31
 
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
 
リーン開発の本質 公開用
リーン開発の本質 公開用リーン開発の本質 公開用
リーン開発の本質 公開用
 
運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介
 
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
 
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJPMicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
 
ベンチマーク勉強会#01
ベンチマーク勉強会#01ベンチマーク勉強会#01
ベンチマーク勉強会#01
 
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
 
運用管理ツールに求められる、運用効率化・運用自動化の実現方式とは?
運用管理ツールに求められる、運用効率化・運用自動化の実現方式とは?運用管理ツールに求められる、運用効率化・運用自動化の実現方式とは?
運用管理ツールに求められる、運用効率化・運用自動化の実現方式とは?
 
運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介
 
NoOps Meetup Tokyo #3 Opening
NoOps Meetup Tokyo #3 OpeningNoOps Meetup Tokyo #3 Opening
NoOps Meetup Tokyo #3 Opening
 
運用効率化・運用自動化の実現方式とは?
運用効率化・運用自動化の実現方式とは?運用効率化・運用自動化の実現方式とは?
運用効率化・運用自動化の実現方式とは?
 

Mais de Hiromasa Oka

Mais de Hiromasa Oka (20)

ZOZOTOWNのアーキテクトという役割を紹介します
ZOZOTOWNのアーキテクトという役割を紹介しますZOZOTOWNのアーキテクトという役割を紹介します
ZOZOTOWNのアーキテクトという役割を紹介します
 
NoOps Meetup Tokyo #9 Opening
NoOps Meetup Tokyo #9 OpeningNoOps Meetup Tokyo #9 Opening
NoOps Meetup Tokyo #9 Opening
 
クラウドネイティブトランスフォーメーションのススメ
クラウドネイティブトランスフォーメーションのススメクラウドネイティブトランスフォーメーションのススメ
クラウドネイティブトランスフォーメーションのススメ
 
NoOps Meetup Tokyo #8 1st Anniversary - Opening
NoOps Meetup Tokyo #8 1st Anniversary -  Opening NoOps Meetup Tokyo #8 1st Anniversary -  Opening
NoOps Meetup Tokyo #8 1st Anniversary - Opening
 
NoOps Meetup Tokyo #7 Opening
NoOps Meetup Tokyo #7 Opening NoOps Meetup Tokyo #7 Opening
NoOps Meetup Tokyo #7 Opening
 
ZOZOTOWN の Cloud Native Journey
ZOZOTOWN の Cloud Native JourneyZOZOTOWN の Cloud Native Journey
ZOZOTOWN の Cloud Native Journey
 
もう「効率化」なんてゴミ箱に捨ててしまおう
もう「効率化」なんてゴミ箱に捨ててしまおうもう「効率化」なんてゴミ箱に捨ててしまおう
もう「効率化」なんてゴミ箱に捨ててしまおう
 
NoOps Meetup Tokyo #6 Opening
NoOps Meetup Tokyo #6 Opening NoOps Meetup Tokyo #6 Opening
NoOps Meetup Tokyo #6 Opening
 
NoOps Meetup Tokyo #5 Opening
NoOps Meetup Tokyo #5 Opening NoOps Meetup Tokyo #5 Opening
NoOps Meetup Tokyo #5 Opening
 
NoOps Meetup Tokyo #4 Opening
NoOps Meetup Tokyo #4 OpeningNoOps Meetup Tokyo #4 Opening
NoOps Meetup Tokyo #4 Opening
 
NoOps Meetup Tokyo #2 Opening
NoOps Meetup Tokyo #2 Opening NoOps Meetup Tokyo #2 Opening
NoOps Meetup Tokyo #2 Opening
 
勝てる「開発プロセス」のつくり方
勝てる「開発プロセス」のつくり方勝てる「開発プロセス」のつくり方
勝てる「開発プロセス」のつくり方
 
NoOps Meetup Tokyo #1 Opening
NoOps Meetup Tokyo #1 OpeningNoOps Meetup Tokyo #1 Opening
NoOps Meetup Tokyo #1 Opening
 
新世代の価値観へ越境せよ
新世代の価値観へ越境せよ新世代の価値観へ越境せよ
新世代の価値観へ越境せよ
 
ゼンアーキテクツ「ものづくり」五つの掟
ゼンアーキテクツ「ものづくり」五つの掟ゼンアーキテクツ「ものづくり」五つの掟
ゼンアーキテクツ「ものづくり」五つの掟
 
[旧版] ゼンアーキテクツ「ものづくり」五つの掟
[旧版] ゼンアーキテクツ「ものづくり」五つの掟[旧版] ゼンアーキテクツ「ものづくり」五つの掟
[旧版] ゼンアーキテクツ「ものづくり」五つの掟
 
NoOpsへ舵を切れ
NoOpsへ舵を切れNoOpsへ舵を切れ
NoOpsへ舵を切れ
 
クラウド時代のデータストア選択"秘伝の書"
クラウド時代のデータストア選択"秘伝の書"クラウド時代のデータストア選択"秘伝の書"
クラウド時代のデータストア選択"秘伝の書"
 
NoOpsへの挑戦
NoOpsへの挑戦 NoOpsへの挑戦
NoOpsへの挑戦
 
設計屋が考える、理想的なプロダクトオーナーの3つの習慣
設計屋が考える、理想的なプロダクトオーナーの3つの習慣設計屋が考える、理想的なプロダクトオーナーの3つの習慣
設計屋が考える、理想的なプロダクトオーナーの3つの習慣
 

15分で分かる NoOps