Upload
junichi-yoshise
View
343
Download
1
Embed Size (px)
Citation preview
プライベート PaaS が実現するアジャイル開発と次世代型アプリケーションの実例
Junichi YoshiseHelion Professional ServicesHewlett-Packard Enterprise
自己紹介
• 吉瀬 淳一
• Twitter: @jyoshise
• 日本ヒューレット・パッカード株式会社
• Architect, Helion Professional Services APJ• IaaS(OpenStack)• PaaS(Stackato/CloudFoundry)• アジャイル / クラウドネイティブ開発
Agenda
Agile 開発 /DevOps と PaaS1
次世代型開発のための PaaS 導入の実例2
乗り越えるべき課題と Best Practice3
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 PlatformHelion 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
ContainerPush 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 CaaSHelion Stackato は PaaS としても CaaS としても使え
ます。
事例
12
13
Helion Openstack/Helion Stackato の採用事例
2自動車メーカー
• コネクテッドカー、自動運転といった最新技術を支えるアプリケーションの開発と運用をグローバル規模で実現するためのマルチクラウド PaaS
3テレコム
• パブリッククラウドサービス、プライベートクラウド、モバイルアプリ開発基盤をオープンテクノロジーで統合
1銀行
• 新興インターネット系サービスに対する競争力を高めるため、クラウドネイティブ技術を応用したアプリケーション開発体制へと変革
いずれも Helion Professional Services のコンサルティング / 導入サービスがプロジェクトを推進
1414
共通のポイント
•欲しいのは Agility, Flexibility, Scalability• フロントのアプリケーションはどこでも動くこ
と• 外部サービスをアプリケーションから容易に利
用できること• 機械学習、 IoT バックエンド、地図情報など、パブリック
クラウド上のサービス• 顧客情報 DB など、オンプレミスの既存サービス
乗り越えるべき課題と Best Practice
15
16
「日本では難しい」と思っていませんか
「欧米は内製のエンジニアがたくさんいるからできるのであって、日本じゃそうはいかないんじゃないの」
そうでもないです。どの国も事情は大して違いません。チャレンジして乗り越えています。
17
Mode2 を進めるのは誰か
CEO
IT 部門事業部門
インフラ系 SI開発系 SI事業部門 IT
開発ベンダー
トップダウン
ボトムアップ
IT主導ビジネス主導
CIO
18
トップダウン・ IT主導(全社的な取り組み)の課題(1)
「社長はアジャイルやれって言ってるし、やるべきなのはわかるけど、予算のつき方が従来通りだから上申が通らない・・・」
コンサル入れましょう。
必要性マーケット分析M2 ThreatM2 Opportunityビジネスメリット収益化予測コスト削減OPEXCAPEX顧客におけるMode1/2定義プロセス購買請負、委任、派遣?受入予算化所管承認フロープロジェクト管理 /開発 /運用手法スクラム、 XP、 DevOpsプラクティスの適用範囲と組織へのマッピング調達スケジュール例必要なツール
もしくは・・・まずは与えられた予算 / コンプライアンスの範囲内でゲリラ的に始めてしまい、小さな結果を出してから本格的に予算を取りに行くというやりかたも有効。
19
トップダウン・ IT主導(全社的な取り組み)の課題(2)「内製化への道は遠いし、開発ベンダーに請負発注するしかないけど、 Agile で請負って難しくない?」
Water – Scrum – Fall というやりかたがひとつの現実解。
WaterDefined project planning
ScrumIterative development
FallControlled production release
Product backlog
Sprintbacklog
Daily scrum meeting
Potentiallyshippable product
2-3 weeks
20
トップダウン・ IT主導(全社的な取り組み)の課題(3)
「現行のアプリケーション / サービス群をどうすればいいの」
②一部パイロット的に Re-architect できるものを選ぶ。残りはその結果を見てから考える。
③全面的に棚卸し。①そのままキープ。新規アプリケーション / サービスのみ対象とする。
アンチパターン:アーキテクチャや開発手法を見直さずに Re-host だけして「やったことにする」
2121
A12 – Application Assessment and Migration to PaaS
HPE’s Transformation ApproachProven methodology, experienced consultants and robust tools
Migration Strategy
RetainAs 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
Container
VirtualP
hysical
Private Cloud
ManagedCloud
Public Cloud(AWS/Azure..)
Traditional
Decision TreeTransformation Strategies
4 Migration Strategies10 Treatments
(参考)既存のシステム群 / アプリケーション群をどうするか(棚卸しとアセスメント)
22
プラットフォームの考え方:プライベートクラウドと従来型インフラの統合を本気で考えると
22
Application / Run to KillTraditional Applications
Traditional IT
Virtual HostingLegacy 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 DevelopmentDevelop 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
Serv
ice
Serv
ice
Man
agem
ent /
Ope
ratin
g M
odel
Man
agem
ent
APIs
Gov
erna
nce
Ris
k &
Com
plia
nce
重要なのは• レイヤー間のインター
フェイスは 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
ContainerPush Application
• Language BuildPack
• Service Broker• Managed Services
• インフラのリソースは IaaS レイヤーから提供• アプリケーションのビルドに必要な部品、外部サービスとの
ブローカーは PaaS 内で用意• 開発者はソースコードと必要な部品の情報を Push するだけ• ビルドされたアプリケーションは Docker コンテナとして、
可用性・スケーラビリティが確保された形で実行管理される
31
Cloud Foundry : オープン PaaS のエコシステム
31
32
凡例
Public IaaSもしくは VMware 等Hypervisor
構成例: Small Start (Microcloud)
Helion StackatoStackato VM
App App App
Scale
PaaS
物理仮想
コンテナ
33
Mgmt RP RP Controller
凡例
Object Storage RPCompute RP
Helion OpenStack
構成例: Hybrid Cloud
Controllernode1
Controllernode2
Controllernode3
Computenode1
Computenode2
Computenode3
Computenode4
Computenode5
Computenode6
Scaleout Swift1
Scaleout Swift2
Scaleout Swift3
Management(ESXi)
Management(ESXi)
Helion StackatoCore
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
Hel
lion
Life
cycl
e M
anag
er
Sys
tem
Insi
ght M
anag
er
GitH
ub E
nter
pris
e
vCen
ter
3PA
R M
anag
emen
t Ser
ver
HP
E C
SA
/OO
Mis
sion
Crit
ical
Pla
tform
34
凡例
Private IaaS (OpenStack 等 )
構成例: 本番環境と開発・ステージング環境の分離
Helion StackatoCore
Router
DEA DEA
Router
DEA
App App App
Scale
本番環境
IaaS Tenant A
開発環境物理仮想
コンテナ
App Service(DBなど)
Public IaaS
IaaS Tenant B Admin Tenant
CIツール
Helion StackatoCore
Router
DEA DEA DEA
App App App
ScaleApp Service(DBなど)
開発プロジェクトから Helion Stackatoへのインプット
35Confidential – For Training Purposes Only
DEAs DEAs
Docker apps Cloud controller
Cloud controller
Docker hub UI
Manifest and buildpackSource code
Helion Stackato はアプリケーションの開発スタイルに合わせ、複数のインプットに対応しています。• ソースコード + Manifest / Buildpack (→Heroku スタイルの開発)• Docker Image (→ Docker を前提とした開発)• IDE (→Visual Studio などの統合開発環境との連携)
Visual Studio
GitHub Enterprise Helion Stackato
JenkinsCI/CD の構成例
開発者
コードリポジトリ( VCS )
構成管理ツール
CI ツール
パッケージリポジトリ
ステージング環境
本番環境
Push hook
feedback
ビルドパッケージ作成パッケージ登録ユニットテストコードカバレッジ静的解析
結合テストデプロイテスト
テストツール
Control Plane (Container Hosting)
Code Engine(CI)
Application Hosting
Runtimes
Cloud Foundry
Uni
vers
al
Ser
vice
Bro
ker
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• アジャイル・クラウドネイティブ型開発支援 / 運用支援
39
VirtualBox
まずは試すところから手乗り PaaS (Stackato評価版MicroCloud)
Helion Stackato3.6.2Stackato 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
40
Mode2 の開発を支援するプロフェッショナルサービス
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