© Copyright 2019 Pivotal Software, Inc. All rights Reserved.
Cloud Native と
アジャイルアプローチ
2019 - Dec - 19
Pivotal Japan
Shinya Yanagihara (柳原 伸弥)
(仮)
自己紹介
Pivotal
Platform Architect
柳原 伸弥
@yanashin18618
- Career
- Role & Responsibility
- Platform Team Lead
- Proposal and Enablement
- Pivotal Platform
- PAS
- PKS
- Spring Framework
Pivotal ?
Transforming
How the world Builds Software
メソドロジー
先進的なソフトウェア開発の為の
ベスト・プラクティスの導入
ツール
開発者の生産性を重視した
ツールを用いた開発
プラットフォーム
あらゆるアプリケーションを、
あらゆるクラウドで、統合的な基盤で運用
Pivotal Labs and
Services
Pivotal Platform
Spring and
Pivotal OSS
Pivotal Way
カルチャー
継続的な向上を通じてお客様の
成功を実現する
テクノロジー
プラクティス
リーンやアジャイル開発などの
ベスト・プラクティスを活用して、
人材育成や組織の立ち上げを行い
社内プロセスの改革と併せて
企業のカルチャーを変えていく
クラウドネイティブプラットフォームや先進的
なツール群を活用して、
アプリケーション開発やシステム運用の在
り方を変え、デジタル変革を促進する
What’s Pivotal ?
Pivotal という企業
コマンドライン1つで実現するアプリケーション実行環境
CF PUSH “Experience”
$ cf push
開発者
App
Pivotal
Application Service
(Cloud Foundry)
アプリケーション
アップロード
ランタイム判定
コンテナイメージ
作成
レジストリ
管理
アプリケーション
ルーティング設定
ロードバランサー
エントリー
SSL解除
バックエンド連携
ロギング /
ヘルスチェック
アプリケーション
スタート
アプリケーション
セルフヒーリング
以下の処理を自動化
Spring Cloud Service によるマイクロサービス
Pivotal Platform と Spring Cloud のインテグレーションによるマイクロサービス開発
Config
Server
Service
Registry
Spring
Cloud
Gateway
メッセージブローカ
データサービス
分散トレーシング
ID管理
Webサービス
(SOA)
API モノリス
Spring Cloud Gateway
利用用途
● ルーティング
● レジリエンシー
● モノリス分離
● シングルサインオン
● セキュリティ
● モニタリング
● カナリアリリース
“Why So ?”
Cloud Native への期待
デジタルトランスフォーメーションの名の下の事業戦略
Cloud Native
Microservices
CI/CDContainer
“Why So ?”
“Cloud Native ?”
Cloud Native
Microservices
CI/CDContainer
Cloud Native
Cloud Native Definition
CNCF Cloud Native Definition v1.0 より引用
クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、
ハイブリッドクラウドなどの近代的でダイナミックな環境において、
スケーラブルなアプリケーションを構築・実行するための能力を組織にもたらします。
このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、
イミュータブルインフラストラクチャ、および宣言型APIがあります。
これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。
これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の
労力で頻繁かつ予測どおりに行うことができます。
https://github.com/cncf/toc/blob/master/DEFINITION.md
“So What ?”
Cloud Native: A B C D E
いろいろな目線からの Cloud Native
A
Cloud Native: A B C D E
いろいろな目線からの Cloud Native
B
Cloud Native: A B C D E
いろいろな目線からの Cloud Native
C
Cloud Native: A B C D E
いろいろな目線からの Cloud Native
D
Cloud Native: A B C D E
いろいろな目線からの Cloud Native
E
Cloud Native: A B C D E
いろいろな目線からの Cloud Native
Cloud Native
● Application
● Business
● Culture
● Development
● Environment
Cloud Native: A B C D E
いろいろな目線からの Cloud Native
Cloud Native
● Application
● Business
● Culture
● Development
● Environment
● App開発者
● Infra技術者
● 運用/保守
● ユーザ部門
● 企業
Cloud Native Trail Map
Cloud Native へ至る道程
Cloud Native Trail Map
Cloud Native へ至る道程
お金 人 企業
Cloud Native Trail Map
Cloud Native へ至る道程
お金 人 企業
● より収益を上げる
or
● より支出を下げる
● アプリケーションチーム
● プラットフォームチーム
● 認知
● 理解
● 醸成
A・D・EB C
Cloud Nativeを選択する動機(ビジネス)
どのようにマネタイゼーションしていくのか
お金
B
● 早さ
● 顧客ニーズ
● ユニークさ
● 変更の柔軟性
● etc...
● クラウドネイティブ・アプリケーション
● クラウドネイティブ・プラットフォーム
アジャイル
● より収益を上げる
or
● より支出を下げる
成功のための
ベスト
プラクティス Product Development
新規ビジネス創出
XP / Lean による開発
Pivotal Labs
お客様とペアになりアジャイル手法を用いたチームを育成
App Modernization
既存資産の活用 / 移行
Microservices 化支援
Platform Ops
Platform as a Product を
実践するチーム育成
Education
ワークショップ型での実施
実践型のスキル育成
Data Science
データの利活用を促進
データ解析と人材育成を支援
Pivotalが提供するプロセスのアプローチ
プロダクト
マネジメント
デザイナー
エンジニア
Product
リーン
アジャイル
クラウドネイティブ
プラットフォームユーザ
中心
設計
新規アプリケーション開発
既存システム
マイグレーション
プラットフォーム運用
Product Development
App Modernization
Platform Ops (Dojo)
Enable clients to deliver value fast, forever
一緒に実践しながら
手法を教える
ビジネス価値
ユーザ価値を創出する
素早く実施し
頻度を上げる
持続可能な
ペースで続ける
Agile
Agile Manifesto
アジャイルソフトウェア開発宣言
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
価値とする。
すなわち、左記のことがらに価値があることを認めながらも、
私たちは右記のことがらにより価値をおく。
https://agilemanifesto.org/iso/ja/manifesto.html
Lean
7 Principles of Lean Software Development
リーンソフトウェア開発の7つの原則
原則1:ムダをなくす
原則2:品質を作り込む
原則3:知識を作り出す
原則4:決定を遅らせる
原則5:早く提供する
原則6:人を尊重する
原則7:全体を最適化する
Lean
PRODUCT MANAGEMENT
OPINIONATED ABOUT
Reducing the risk of building the wrong thing
while comfortably changing direction.
PRACTICES
Assume change
Minimum Viable Product (MVP)
Small product experiments
Identify & Test assumptions
Understand customers
Release real product often
Adjust direction based on data
Build/measure/learn loop
Focus on validated learning
Assess when to pivot
Startup-mentality, constraining resources &
time
リーンは、継続的な実証と学習を通してリスクを低減させ、ムダを省くためにデザイン
されたプロダクト開発手法
顧客を中心としたアプローチを実施
  ・顧客がいるか?顧客が課題を認識しているか?
  ・顧客がソリューションとして認識しているか?
Lean Product Management Practices
リーン
© Copyright 2019 Pivotal Software, Inc. All rights Reserved.
User-Centered
DESIGN
OPINIONATED ABOUT
Ensuring the software solves a real problem for
real users in a desirable and usable product.
PRACTICES
User Interviews
Concept Validation
Persona definition
Ethnography
Usability testing
Leverage current behavior
Focus on empathy
Implicit & explicit user needs
調査 検証 ユーザビリティ
問題は何か? ソリューションに
価値はあるか?
ソリューションは
受入れられるか?
User-Centered Design (UCD) Practices
ユーザ中心設計
Pivotal のアジャイル・アプローチ
Discovery & Framing アプローチ
Cloud Nativeを選択する動機(エンジニア)
どのように具現化していくのか
A・D・EB C
継続的な
新しいスキルの醸成と
従来の規範やプラクティスへの変革
(再掲)Cloud Native Definition
CNCF Cloud Native Definition v1.0 より引用
クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、
ハイブリッドクラウドなどの近代的でダイナミックな環境において、
スケーラブルなアプリケーションを構築・実行するための能力を組織にもたらします。
このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、
イミュータブルインフラストラクチャ、および宣言型APIがあります。
これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。
これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の
労力で頻繁かつ予測どおりに行うことができます。
https://github.com/cncf/toc/blob/master/DEFINITION.md
Cloud Native Architecture from CNCF Definition
CNCF 定義による Cloud Native リファレンス
vSphere AWS Google Azure
etcd
API
Server
Master
Pod Pod Pod
Worker
・・・ Pod Pod Pod
Worker
・・・
・・・
Kubelet Kubelet
マルチクラウド
ハイブリッドクラウド
イミュータブル
インフラストラクチャ
コンテナ 宣言型API
マイクロサービス
サービスメッシュ
マイクロサービス・アプローチ
ビジネス・ニーズを満たす事ができるデザインが可能なアーキテクチャ
vSphere AWS Google Azure
etcd
API
Server
Master
Pod Pod Pod
Worker
・・・ Pod Pod Pod
Worker
・・・
・・・
Kubelet Kubelet
マルチクラウド
ハイブリッドクラウド
イミュータブル
インフラストラクチャ
コンテナ 宣言型API
マイクロサービス
サービスメッシュ
疎結合
スケーリング
デプロイ頻度
対障害性
など
マイクロサービス・デザイン
Cloud Native 実現のためのラスト 1 マイル
vSphere AWS Google Azure
etcd
API
Server
Master
Pod Pod Pod
Worker
・・・ Pod Pod Pod
Worker
・・・
・・・
Kubelet Kubelet
マルチクラウド
ハイブリッドクラウド
イミュータブル
インフラストラクチャ
コンテナ 宣言型API
マイクロサービス
サービスメッシュ
アプリケーション
デザインを
どのようにするか?
Domain Driven Design
例えば1つのアプローチ
Bounded Context
ユビキタス言語
コンテキストマッピング
サブドメイン
Aggregate
Domain Event
Value Object
Entity
Domain Driven Design
例えば1つのアプローチ
Bounded Context
ユビキタス言語
コンテキストマッピング
サブドメイン
Aggregate
Domain Event
Value Object
Entity
“For what ?”
Domain Driven Design の目的
何のためのドメイン設計か?
Application
Service
Domain
Service
Domain
Entity
Domain
Repository
Repository
Impl
Application
Layer
Domain
Layer
Persistence
Layer
レイヤリングのための
アプローチ?
Bounded
Context
Aggregate
Domain
Event
Command
Aggregate
Domain
Event
Command
Domain
Event
Domain
Event
ドメイン分析のための
アプローチ?
<
Domain Driven Design の参加メンバー
開発者だけでは成り立たないアプリケーション設計
Bounded
Context
Aggregate
Domain
Event
Command
Aggregate
Domain
Event
Command
Domain
Event
Domain
Event
Developer
Domain Expert
User
Designer
Product Manager
ロール、視点、関心事の異なるメンバーで
特定の業務領域を分析
Biz
Tech
ドメイン・モデリング
ビジネスサイドと技術サイドの協調型モデリング
CommandEvent Aggregate
External
System
Policy User
ドメイン・モデリング
ビジネスサイドと技術サイドの協調型モデリング CommandEvent Aggregate
External
System
Policy User
ドメイン・モデリング
ビジネスサイドと技術サイドの協調型モデリング CommandEvent Aggregate
External
System
Policy User
ドメイン・モデリング
ビジネスサイドと技術サイドの協調型モデリング CommandEvent Aggregate
External
System
Policy User
ドメイン・モデリング
ビジネスサイドと技術サイドの協調型モデリング CommandEvent Aggregate
External
System
Policy User
(参考)ユーザーストーリーマッピング
プロダクトバックログのためのアジャイル手法
プロジェクトチーム全体で
ユーザーにとっての価値を
抜け漏れなく洗い出し
理解・共有する手法
Cloud Nativeを選択する動機(組織・企業)
どのように醸成・拡大していくのか
A・D・EB Cマイクロサービスの文脈でも
言及される組織・体制論
Cloud Nativeを選択する動機(組織・企業)
どのように醸成・拡大していくか
C
Traditional Modern
文化
組織
プロセス
人
クローズド・グループ
ビジネスとITの
隔離
固定したスコープと
コストによる計画駆動
受動型
指揮者と演奏者
イノベーティブ
コミュニカティブ
自律的
自己組織化
継続的な改善
自律分散
優しさ
信頼・公正さ
サーバントリーダー
リーンアプローチの意思決定法:OODA
自律駆動なOODAと計画駆動なPDCA
Action
うごく
Decide
きめる
Orient
わかる
Observe
みる
OODA
ループ
Action
改善
Check
評価
Do
実行
Plan
計画
PDCA
サイクル
KPI で評価 OKR で評価
リーンアプローチの意思決定法:OODA
自律駆動なOODAと計画駆動なPDCA
Action
うごく
Decide
きめる
Orient
わかる
Observe
みる
OODA
ループ
Action
改善
Check
評価
Do
実行
Plan
計画
PDCA
サイクル
KPI で評価 OKR で評価
計画から始める
想定外の事が発生しない 前提
見る・確認から始める
想定外の事が発生するかもしれない 前提
ウォーターフォール型 アジャイル型
(参考)OKR
明確に掲げた目標に対して近づいていくための戦略
OKR
● 達成率を上げる事を目指す
● 一定期間毎に達成率を評価する
Objective 達成すべき目標
Key Results 達成のための主要な成果
KPI 達成可能と判断できる分析を前提に、
必要な目標設定と達成するためのアクション
Pivotal の文化とコア・バリュー
継続的な改善と成功
Do the right thing
正しいことを実施
Do what works
効果的に行動
Always be kind
思いやりを忘れない
共感
コミュニケーション
振り返り 改善
ワークライフバランス
心理的安全性
Cloud Native
Retrospective
Cloud Native: A B C D E
Cloud Native とアジャイル
Cloud Native
● Application
● Business
● Culture
● Development
● Environment
Cloud Native: A B C D E
Cloud Native とアジャイル
A・D・EB C
アジャイル・アプローチの有効性・親和性
Transforming How The World Builds Software
© Copyright 2019 Pivotal Software, Inc. All rights Reserved.
今日のOKR
このセッションで定めていたOKR
Objective Key Result
1. Cloud Native と Agile の関係性を知ってもらう 1.1. ABCDE を伝える
1.2. Pivotal の取り組みを伝える
2. Agile を知ってもらう 2.1. Lean を伝える
2.2. XP を伝える
2.3. Scrum との違いを伝える
今日のセッションタイトル
アジャイル的なアプローチ:MVPプレゼンテーション
© Copyright 2019 Pivotal Software, Inc. All rights Reserved.
Cloud Native と
アジャイルアプローチ
2019 - Dec - 19
Pivotal Japan
Shinya Yanagihara (柳原 伸弥)
今日のOKR
このセッションで定めていたOKR
Objective Key Result
1. Cloud Native と Agile の関係性を知ってもらう 1.1. ABCDE を伝える
1.2. Pivotal の取り組みを伝える
2. Agile を知ってもらう 2.1. Lean を伝える
2.2. XP を伝える
2.3. Scrum との違いを伝える
3. 僕のことを覚えてもらう 3.1. 自己紹介でつかむ
3.2. 眠らせない
3.3. 他の人がやらなさそうな発表をする
自己紹介
Pivotal
Platform Architect
柳原 伸弥
@yanashin18618
- Career
- Role & Responsibility
- Platform Team Lead
- Proposal and Enablement
- Pivotal Platform
- PAS
- PKS
- Spring Framework
Pivotal ?
Transforming How The World Builds Software
© Copyright 2019 Pivotal Software, Inc. All rights Reserved.

Cloud Native and Agile Approach