プライベートPaaSが実現する
アジャイル開発と次世代型
アプリケーションの実例
Junichi Yoshise
Helion Professional Services
Hewlett-Packard Enterprise
自己紹介
• 吉瀬 淳一
• Twitter: @jyoshise
• 日本ヒューレット・パッカード株式会社
• Architect, Helion Professional Services APJ
• IaaS(OpenStack)
• PaaS(Stackato/CloudFoundry)
• アジャイル/クラウドネイティブ開発
Agenda
Agile開発/DevOpsとPaaS
1
次世代型開発のためのPaaS導入の実例
2
乗り越えるべき課題とBest Practice
3
3
変革を支えるツール
4
Agile開発/DevOpsとPaaS
4
安定
ワークロード最適化
パッケージアプリケーション
動的
ワークロードとワークフローに最適化
モバイル、クラウドネイティブアプリ
ケーション
継続的デリバリ/統合アプリケーションを年1、2回アップデート
バイモーダルITという考え方
5
Mode 1 Mode 2
次世代型(Mode 2)アプリケーションのキーポイント
1
迅速性
(Agility)
2
3
柔軟性
(Flexibility)
拡張性
(Scalability)
アイデアエコノミー
の実現
変化するビジネスに
追従
小さく始めて大きく
育てる
• 最新のテクノロジーをビジネスロ
ジックに反映
• 競合に先駆けてリリースすること
で市場をリード
• 市場/ビジネス状況の変化に合わ
せて常にアプリケーションを作り
変えていく
• 利用するサービスはその時々で最
適なものに乗り換える
• 予測が難しいビジネスモデルを低
コストで立ち上げる
• リアーキテクト/リファクタを伴
わずにサービスをスケールさせる
Agile
DevOps
Mode2に適した方法論: Agile開発とDevOps
7
XP
反復 共通用語 作業空間 回顧
テスト駆動
開発
ペアプログラミ
ング リファクタリング YANGI
責任見直し援護 ミラー ペース
受け入れリリース計画ストーリー
Scrum
集中勇気確約 公開 尊敬
スプリントレビュー
デイリースクラム
スプリントプランニング
スプリントレトロスペクティ
ブ
プロダクトバックログ スプリントバックログ インクリメント
Agile/DevOpsとは
「よりよい価値を生むための人間の働き方」。
それを支える(楽にする)ためのテクノロジーと
ツールが成熟してきている。
短期リリース
コードの共同
所有CI CD自動化
そのクラウドはビジネスに新しい価値をもたらしますか?
8
例えばこんなメリットを謳っているPaaS
• コスト
• 性能
• 互換性
• 信頼性
• 業界標準
• セキュリティ
何も変わりません。
開発側の視点から・・・
1 迅速性(Agility) 2 3柔軟性(Flexibility) 拡張性(Scalability)
好きな言語/フレーム
ワークでコーディン
グしたい
使い慣れたCIツール
とインテグレーショ
ンして柔軟にパイプ
ライン管理したい
既存のバックエンド
サービスと連携した
い
プライベートPaaSという選択肢
10
Cloud Native Application Platform
Helion Stackato によるアプリケーションデプロイ
IaaS: OpenStack, Azure, AWS, VMware
Developer Code
User
Compute Storage Networking App Services (DB,MQ,etc)
Public Cloud Services
PaaS: Helion Stackato
Scalability / Automation
Container
Push Application
• Language
BuildPack
• Service Broker
• Managed Services
• インフラのリソースはIaaSレイヤーから提供
• アプリケーションのビルドに必要な部品、外部サービスとのブ
ローカーはPaaS内で用意
• 開発者はソースコードと必要な部品の情報をPushするだけ
• ビルドされたアプリケーションはDockerコンテナとして、可
用性・スケーラビリティが確保された形で実行管理される
11
PaaS(Platform as a Service)と
CaaS(Container as a Service)
DevとOpsの融合 DevとOpsの分離
CIパイプラインの各ステージの実行環境の
延長線上に本番環境がある。
Devの仕事はテスト済みのコンテナイメージ
を作るところまで。
業務主導でアプリケーションのリリースタイミン
グのコントロール、実行管理まで行う。
(Continuous Delivery)
コンテナの実行はOps側の責任範囲。
PaaS CaaS
Helion StackatoはPaaSとしてもCaaSとしても使えます。
事例
12
13
Helion Openstack/Helion Stackatoの採用事例
2
自動車メーカー
• コネクテッドカー、自動運転といった最新技術を支えるアプリケーション
の開発と運用をグローバル規模で実現するためのマルチクラウドPaaS
3
テレコム
• パブリッククラウドサービス、プライベートクラウド、モバイルアプリ開
発基盤をオープンテクノロジーで統合
1
銀行
• 新興インターネット系サービスに対する競争力を高めるため、クラウドネ
イティブ技術を応用したアプリケーション開発体制へと変革
いずれもHelion Professional Servicesのコンサルティング/導入サービスがプロジェクトを推進
14
共通のポイント
14
• 欲しいのはAgility, Flexibility, Scalability
• フロントのアプリケーションはどこでも動くこと
• 外部サービスをアプリケーションから容易に利用できること
• 機械学習、IoTバックエンド、地図情報など、パブリッククラウド上の
サービス
• 顧客情報DBなど、オンプレミスの既存サービス
乗り越えるべき課題とBest Practice
15
16
「日本では難しい」と思っていませんか
「欧米は内製のエンジニアがたくさんいるか
らできるのであって、日本じゃそうはいかな
いんじゃないの」
そうでもないです。
どの国も事情は大して違いません。
チャレンジして乗り越えています。
17
Mode2を進めるのは誰か
CEO
IT部門事業部門
インフラ系SI開発系SI事業部門IT
開発ベンダー
トップダウン
ボトムアップ
IT主導ビジネス主導
CIO
18
トップダウン・IT主導(全社的な取り組み)の課題(1)
「社長はアジャイルやれって言ってるし、や
るべきなのはわかるけど、予算のつき方が
従来通りだから上申が通らない・・・」
コンサル入れましょう。
必要性
マーケット分析
M2 Threat
M2 Opportunity
ビジネスメリット
収益化予測
コスト削減
OPEX
CAPEX
顧客におけるMode1/2定義
プロセス
購買
請負、委任、派遣?
受入
予算化
所管
承認フロー
プロジェクト管理/開発/運用手法
スクラム、XP、DevOps
プラクティスの適用範囲と組織へのマッピング
調達スケジュール例
必要なツール
もしくは・・・
まずは与えられた予算/コンプライアンスの範囲内でゲリラ
的に始めてしまい、小さな結果を出してから本格的に予
算を取りに行くというやりかたも有効。
19
トップダウン・IT主導(全社的な取り組み)の課題(2)
「内製化への道は遠いし、開発ベンダーに請負発注するしかないけど、Agileで請負って難
しくない?」
Water – Scrum – Fallというやりかたがひとつの現実解。
Water
Defined project planning
Scrum
Iterative development
Fall
Controlled production release
Product
backlog
Sprint
backlog
Daily scrum
meeting
Potentially
shippable
product
2-3
weeks
20
トップダウン・IT主導(全社的な取り組み)の課題(3)
「現行のアプリケーション/サービス群をどうすればいいの」
②一部パイロット的にRe-
architectできるものを選ぶ。
残りはその結果を見てから考え
る。
③全面的に棚卸し。①そのままキープ。
新規アプリケーション/サービ
スのみ対象とする。
アンチパターン:
アーキテクチャや開発手法を見直さずにRe-hostだけして「やったことにする」
2121
A12 – Application Assessment and Migration to PaaS
HPE’s Transformation Approach
Proven methodology, experienced consultants and robust tools
Migration Strategy
Retain
As is
Replace Retire Replace/Retire
Re-host
Re-factor
Re-architect
Replace
(SaaS, COTS, Custom)
Assess Suitability to Cloud
On-line assessments
Align Business Needs
Questionnaires/Interviews
Rationalize Portfolio
Analysis Tools
Target Platform
Hybrid IT
ContainerVirtualPhysical
Private Cloud
Managed
Cloud
Public Cloud
(AWS/Azure..)
Traditional
Decision TreeTransformation Strategies
4 Migration Strategies
10 Treatments
(参考)既存のシステム群/アプリケーション群をどうするか(棚卸しとアセスメント)
22
プラットフォームの考え方:
プライベートクラウドと従来型インフラの統合を本気で考えると
22
Application / Run to Kill
Traditional Applications
Traditional IT
Virtual
Hosting
Legacy
System
SOA
SaaS
Cloud Native
PaaS
Multi-Tenant Cloud Service Portal
Automation & Orchestration
Process Tool Chain Integration Tools
Service Catalogue
PaaS (Middleware)
IaaS
Common Order Dispatching
Agile Development
Develop Test Publish Deploy Promote Operate
Compute Network
Marketplace
Portal
Billing & Reporting Hybrid Cloud
Storage
Dev Environment
Re-host Re-Architect Re-factorRetire Re-interface Integrate
Data Center / Hardware
CaaS
Micro
Services
Containerization
Service
ServiceManagement/OperatingModel
Management
A
P
I
s
GovernanceRisk&Compliance
重要なのは
• レイヤー間のインターフェイスは
REST API
• サービス管理/オペレーションモ
デルの標準化
• ガバナンスとコンプライアンスの
標準化
23
ビジネス主導/個別アプリケーションの課題
「全社ITの方針が固まっていないのに勝手にプラットフォームを用意したらシャドウITに
なってしまうのでは・・・」
気にせずSmall Startで始めましょう。プライベートPaaSもCI/CDツールも、インフラから
見るとLOBです。その上でアプリケーション開発とDevOpsの実績を作れば全社展開も
スムーズになります。
24
その他もろもろ
「スキルを持ったエンジニア(パートナー)
がいない」
Hackathon(社内、社外)をやりま
しょう。出張Hackathonサービスやっ
てます。
「XPにしろスクラムにしろ、プラクティスが多す
ぎて全部は無理」
少なくとも「バックログの管理」「コードの共
有」「テストの自動化」は必須。あとはどれだ
け効率化するかという話。
CIツールとPaaSを使うことでそれが格段に
現実的になります。
変革を支えるツール
25
26
あまたあるツール群
Issue
Tracking
SCM Build CI Test Configure Deploy Monitor
• 一度に全部選ぶのは大変。
• 流行り廃りもはげしい。
• 既に使っているものがあるなら、それをこの先も
使えるか(定期的に)検討
• 最低限のツールで始めて、必要に応じて足して
いく、あるいは入れ替える
大原則:使いにくいツールは使われなくなっていく。
27
Best Practice : おすすめツール
カテゴリ 製品名 商用/OSS 特色
Issue Tracking Redmine OSS OSSの定番。Git/GitHubとの連携など
豊富な機能とカスタマイズ性
Issue Tracking +
Collaboration
JIRA + Confluence 商用 課題管理とナレッジマネジメントの統合
ソースコード管理 GitHub Enterprise 商用 Gitホスティングサービスのデファクトスタン
ダードであるGitHubのオンプレミス版。
CI Jenkins OSS OSS CIツールのデファクトスタンダード。豊
富なプラグインで各種ツール・環境と統合
Unit test JUnit, nose, mochaなど
(言語による)
Functional Test Selenium OSS
Load Test Storm Runner 商用
28
ここから始めてみませんか
Issue
Tracking
SCM Build CI Test Configure Deploy Monitor
Stackato
Appendix:
Helion Stackatoとプロフェッショナルサービス
29
30
Helion Stackato :
Cloud FoundryベースのプライベートPaaSディストリビューション
IaaS: OpenStack, Azure, AWS, VMware
Developer Code
User
Compute Storage Networking App Services (DB,MQ,etc)
Public Cloud Services
PaaS: Helion Stackato
Scalability / Automation
Container
Push Application
• Language
BuildPack
• Service Broker
• Managed Services
• インフラのリソースはIaaSレイヤーから提供
• アプリケーションのビルドに必要な部品、外部サービスとのブ
ローカーはPaaS内で用意
• 開発者はソースコードと必要な部品の情報をPushするだけ
• ビルドされたアプリケーションはDockerコンテナとして、可
用性・スケーラビリティが確保された形で実行管理される
31
Cloud Foundry : オープンPaaSのエコシステム
31
凡例
Public IaaS
もしくはVMware等Hypervisor
構成例: Small Start (Microcloud)
32
Helion Stackato
Stackato VM
App App App
Scale
PaaS
物理
仮想
コンテナ
Mgmt RP RP Controller
凡例
Object Storage RPCompute RP
Helion OpenStack
構成例: Hybrid Cloud
33
Controller
node1
Controller
node2
Controller
node3
Compute
node1
Compute
node2
Compute
node3
Compute
node4
Compute
node5
Compute
node6
Scaleout Swift1
Scaleout Swift2
Scaleout Swift3
Management
(ESXi)
Management
(ESXi)
Helion Stackato
Core
SANストレージアレイ
Tenant用 Block Storage 領域管理ノード用
領域
Router
DEA DEA
Router
DEA
App App App
Scale
PaaS
IaaS Tenant A
IaaS
物理
仮想
コンテナ
App Service
(DBなど)
Public IaaS
IaaS Tenant B Public Tenant
HellionLifecycleManager
SystemInsightManager
GitHubEnterprise
vCenter
3PARManagementServer
HPECSA/OO
MissionCriticalPlatform
凡例
Private IaaS (OpenStack等)
構成例: 本番環境と開発・ステージング環境の分離
34
Helion Stackato
Core
Router
DEA DEA
Router
DEA
App App App
Scale
本番環境
IaaS Tenant A
開発環境
物理
仮想
コンテナ
App Service
(DBなど)
Public IaaS
IaaS Tenant B Admin Tenant
CIツール
Helion Stackato
Core
Router
DEA DEA DEA
App App App
Scale
App Service
(DBなど)
開発プロジェクトからHelion Stackatoへのインプット
35Confidential – For Training Purposes Only
Docker apps
Cloud
controller
Cloud
controller
Docker hub
UI
Manifest and
buildpack
Source code
Helion Stackatoはアプリケーションの開発スタイルに合わせ、複数のインプットに対応しています。
• ソースコード + Manifest / Buildpack (→Herokuスタイルの開発)
• Docker Image (→Dockerを前提とした開発)
• IDE (→Visual Studioなどの統合開発環境との連携)
Visual Studio
GitHub Enterprise Helion Stackato
Jenkins
CI/CDの構成例
開発者
コードリポジトリ
(VCS)
構成管理ツール
CIツール
パッケージリポジトリ
ステージング環境
本番環境
Push hook
feedback
ビルド
パッケージ作成
パッケージ登録
ユニットテスト
コードカバレッジ
静的解析
結合テスト
デプロイテスト
テストツール
Control Plane (Container Hosting)
Code Engine
(CI)
Application
Hosting
Runtimes
Cloud
Foundry
Universal
ServiceBroker
HPE
Software
Products
Web Console, CLIs, Developer tools
近日リリースの新バージョン:Stackato4
• DiegoベースのCloudFoundry準拠
+
• CIツール(Helion Code Engine)
• CFの各機能もコンテナとして実行される
• Dockerに対応。将来的にはk8sやMesosにも対応。
コンテナ実行レイヤー
PaaSサービス提供レイヤー
UIレイヤー
Cloud Native Application Development
関連支援サービスメニュー
1
コンサルティング
• バイモーダルIT / アプリケーション変革 / DevOps
2
3
導入
• IaaS基盤 / PaaS基盤 / ハイブリッドクラウド基盤
開発/DevOps
• アジャイル・クラウドネイティブ型開発支援 / 運用支援
VirtualBox
まずは試すところから
手乗りPaaS (Stackato評価版MicroCloud)
39
Helion Stackato3.6.2
Stackato VM
App App App
Scale
PC
Git
Editor
Stackato CLI
• VirtualBox用仮想マシンイメージ
• ローカルでの実行に限定
• Host system requirements:
• x86_64 processor with VT-x enabled (x86
virtualization).
• 3GB+ free memory
• 20GB+ disk space
Web Browser
Jenkins
Mode2の開発を支援するプロフェッショナルサービス
40
LeveragePilotTry
初期環境構築
• PaaS(Stackato)セットアップ
• CIツール(Jenkins)セットアップ
• コードレポジトリ(GitHub Enterprise)
セットアップ
• 管理者向け技術移管
KickStart Workshop/Hackathon
• 開発者向けワークショップ(半日)
• 出張ハッカソン(1日x2回)
• QA対応(2週間)
パイロットアプリケーション導入支援
• アプリケーションアーキテクチャデザイン支
援
• PaaS/CIツール/レポジトリの設定
• 開発環境(IDE/Buildpack等)のイ
ンテグレーション支援
• その他周辺ツール(テストツール、プロ
ジェクトマネジメントツール、コミュニケー
ションツール等)とのインテグレーション支
援
• CI/CDパイプライン設計支援
• Agile開発手法/DevOpsコーチング
PaaS維持/運用支援
• アプリケーション開発要件に応じてPaaSの機
能を充足させるためのカスタマイズ、メンテナン
ス、運用
アプリケーション開発
• PaaSを利用したMode2アプリケーションの開
発プロジェクトチームに参画、又は開発の請負
Thank you

Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例

Editor's Notes

  • #6 IT組織の役割は、ビジネス運営の継続から、迅速なビジネス価値の実現へと進化する必要があります。 IT組織はこの重要性を認識していますが、こうした優先事項を実現するのは容易ではありません。従来のインフラストラクチャは、安定性、拡張性、パフォーマンスに最適化されており、スピードを重視してはいないからです。 アイデアエコノミーにおいては、インフラストラクチャは価値創出の原動力となる必要があり、ビジネスの成功を阻害してはなりません。 IT組織は2種類の運用環境をサポートする必要があるため、これまでと同じ方法では今後対応できなくなります。   「ビジネス活動に必要なアプリケーションを簡素化し、コストを削減」 従来型アプリケーション: 既存のビジネスプロセスを支援、自動化するように設計されています。コラボレーション、データ処理/分析、サプライチェーン、Webインフラストラクチャなどが該当します。 「新しいアプリケーションやサービスの作成と提供を迅速化」 新しい種類のアプリケーションとサービス: モビリティ、IoT、ビッグデータ、クラウドネイティブテクノロジーを活用して、収益を向上させ、新たなカスタマーエクスペリエンスを推進します。 IT組織は、従来型環境の運用コストを削減すると同時に、新しいアプリケーション環境の運用スピードを向上させなければならず、リソースが不足している状態です。   実際の例として、非常に大規模なエネルギー企業での状況について説明します。 この企業では、ビジネス活動に欠かせない、以前から使用されてきた一連のアプリケーションがあります。これらのアプリケーションは安定性が極めて重要なため、スタッフは継続的な動作やコストの抑制について真剣に考えています。アプリケーションのアップデートは年1、2回しか実施されず、安定性が非常に重視されています。 一方、ビジネスの拡大やITのさらなる活用を目的として、新しいアプリケーションが導入されました。バリューチェーンのすべてをデジタル化し、企業として収集したデータをさらに詳細に分析しようと取り組んでいます。また、従業員をモバイル化して、従業員の効率を高めようとしています。 これらのアプリケーションについては、新しいアプリケーションを月に2、3回提供しようと試みているため、スピードがはるかに重要です。 このような状況は、多くのお客様が常に経験しています。 次のスライドへ: 2つの方向性への対応に苦労している、このような事例は何度も耳にしています。IT組織は、コストの削減や安定性の向上を実現すると同時に、新しいアプリケーションを迅速に運用できる方法を探しています。
  • #8 IT組織の役割は、ビジネス運営の継続から、迅速なビジネス価値の実現へと進化する必要があります。 IT組織はこの重要性を認識していますが、こうした優先事項を実現するのは容易ではありません。従来のインフラストラクチャは、安定性、拡張性、パフォーマンスに最適化されており、スピードを重視してはいないからです。 アイデアエコノミーにおいては、インフラストラクチャは価値創出の原動力となる必要があり、ビジネスの成功を阻害してはなりません。 IT組織は2種類の運用環境をサポートする必要があるため、これまでと同じ方法では今後対応できなくなります。   「ビジネス活動に必要なアプリケーションを簡素化し、コストを削減」 従来型アプリケーション: 既存のビジネスプロセスを支援、自動化するように設計されています。コラボレーション、データ処理/分析、サプライチェーン、Webインフラストラクチャなどが該当します。 「新しいアプリケーションやサービスの作成と提供を迅速化」 新しい種類のアプリケーションとサービス: モビリティ、IoT、ビッグデータ、クラウドネイティブテクノロジーを活用して、収益を向上させ、新たなカスタマーエクスペリエンスを推進します。 IT組織は、従来型環境の運用コストを削減すると同時に、新しいアプリケーション環境の運用スピードを向上させなければならず、リソースが不足している状態です。   実際の例として、非常に大規模なエネルギー企業での状況について説明します。 この企業では、ビジネス活動に欠かせない、以前から使用されてきた一連のアプリケーションがあります。これらのアプリケーションは安定性が極めて重要なため、スタッフは継続的な動作やコストの抑制について真剣に考えています。アプリケーションのアップデートは年1、2回しか実施されず、安定性が非常に重視されています。 一方、ビジネスの拡大やITのさらなる活用を目的として、新しいアプリケーションが導入されました。バリューチェーンのすべてをデジタル化し、企業として収集したデータをさらに詳細に分析しようと取り組んでいます。また、従業員をモバイル化して、従業員の効率を高めようとしています。 これらのアプリケーションについては、新しいアプリケーションを月に2、3回提供しようと試みているため、スピードがはるかに重要です。 このような状況は、多くのお客様が常に経験しています。 次のスライドへ: 2つの方向性への対応に苦労している、このような事例は何度も耳にしています。IT組織は、コストの削減や安定性の向上を実現すると同時に、新しいアプリケーションを迅速に運用できる方法を探しています。
  • #9 IT組織の役割は、ビジネス運営の継続から、迅速なビジネス価値の実現へと進化する必要があります。 IT組織はこの重要性を認識していますが、こうした優先事項を実現するのは容易ではありません。従来のインフラストラクチャは、安定性、拡張性、パフォーマンスに最適化されており、スピードを重視してはいないからです。 アイデアエコノミーにおいては、インフラストラクチャは価値創出の原動力となる必要があり、ビジネスの成功を阻害してはなりません。 IT組織は2種類の運用環境をサポートする必要があるため、これまでと同じ方法では今後対応できなくなります。   「ビジネス活動に必要なアプリケーションを簡素化し、コストを削減」 従来型アプリケーション: 既存のビジネスプロセスを支援、自動化するように設計されています。コラボレーション、データ処理/分析、サプライチェーン、Webインフラストラクチャなどが該当します。 「新しいアプリケーションやサービスの作成と提供を迅速化」 新しい種類のアプリケーションとサービス: モビリティ、IoT、ビッグデータ、クラウドネイティブテクノロジーを活用して、収益を向上させ、新たなカスタマーエクスペリエンスを推進します。 IT組織は、従来型環境の運用コストを削減すると同時に、新しいアプリケーション環境の運用スピードを向上させなければならず、リソースが不足している状態です。   実際の例として、非常に大規模なエネルギー企業での状況について説明します。 この企業では、ビジネス活動に欠かせない、以前から使用されてきた一連のアプリケーションがあります。これらのアプリケーションは安定性が極めて重要なため、スタッフは継続的な動作やコストの抑制について真剣に考えています。アプリケーションのアップデートは年1、2回しか実施されず、安定性が非常に重視されています。 一方、ビジネスの拡大やITのさらなる活用を目的として、新しいアプリケーションが導入されました。バリューチェーンのすべてをデジタル化し、企業として収集したデータをさらに詳細に分析しようと取り組んでいます。また、従業員をモバイル化して、従業員の効率を高めようとしています。 これらのアプリケーションについては、新しいアプリケーションを月に2、3回提供しようと試みているため、スピードがはるかに重要です。 このような状況は、多くのお客様が常に経験しています。 次のスライドへ: 2つの方向性への対応に苦労している、このような事例は何度も耳にしています。IT組織は、コストの削減や安定性の向上を実現すると同時に、新しいアプリケーションを迅速に運用できる方法を探しています。
  • #36 35