Enterprise Development Conference 2016...

41
ププププププ PaaS プププププ ププププププププププププ プププププププププププ Junichi Yoshise Helion Professional Services Hewlett-Packard Enterprise

Transcript of Enterprise Development Conference 2016...

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

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

Junichi YoshiseHelion Professional ServicesHewlett-Packard Enterprise

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

自己紹介

• 吉瀬 淳一

• Twitter: @jyoshise

• 日本ヒューレット・パッカード株式会社

• Architect, Helion Professional Services APJ• IaaS(OpenStack)• PaaS(Stackato/CloudFoundry)• アジャイル / クラウドネイティブ開発

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

Agenda

Agile 開発 /DevOps と PaaS1

次世代型開発のための PaaS 導入の実例2

乗り越えるべき課題と Best Practice3

3

変革を支えるツール4

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

Agile 開発 /DevOps と PaaS

4

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

安定 ワークロード最適化

パッケージアプリケーション

動的ワークロードとワークフローに最適化モバイル、クラウドネイティブアプリケーション

継続的デリバリ / 統合アプリケーションを年 1 、 2 回アップデート

バイモーダル IT という考え方

5

Mode 1 Mode 2

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

次世代型 (Mode 2) アプリケーションのキーポイント

1 迅速性( Agility )

2

3

柔軟性( Flexibility )

拡張性( Scalability )

アイデアエコノミーの実現

変化するビジネスに追従

小さく始めて大きく育てる

• 最新のテクノロジーをビジネスロジックに反映

• 競合に先駆けてリリースすることで市場をリード

• 市場 / ビジネス状況の変化に合わせて常にアプリケーションを作り変えていく

• 利用するサービスはその時々で最適なものに乗り換える

• 予測が難しいビジネスモデルを低コストで立ち上げる

• リアーキテクト / リファクタを伴わずにサービスをスケールさせる

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

Agile

DevOps

Mode2 に適した方法論 : Agile 開発と DevOps

7

XP

反復 共通用語 作業空間 回顧

テスト駆動開発

ペアプログラミング

リファクタリング

YANGI

責任見直し援護 ミラー ペース

受け入れリリース計画ストーリー

Scrum

集中勇気確約 公開 尊敬

スプリントレビュー

デイリースクラム

スプリントプランニング

スプリントレトロスペクティブ

プロダクトバックログ

スプリントバックログ インクリメント

Agile/DevOps とは「よりよい価値を生むための人間の働き方」。それを支える(楽にする)ためのテクノロジーとツールが成熟してきている。

短期リリース

コードの共同所有CI CD自動化

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

そのクラウドはビジネスに新しい価値をもたらしますか?

8

例えばこんなメリットを謳っている PaaS

• コスト• 性能• 互換性• 信頼性• 業界標準• セキュリティ

何も変わりません。

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

開発側の視点から・・・

1 迅速性( Agility ) 2 3柔軟性( Flexibility ) 拡張性( Scalability )

好きな言語 / フレームワークでコーディングしたい

使い慣れた CI ツールとインテグレーションして柔軟にパイプライン管理したい

既存のバックエンドサービスと連携したい

プライベート PaaS という選択肢

Page 10: Enterprise Development Conference 2016 プライベート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 コンテナとして、

可用性・スケーラビリティが確保された形で実行管理される

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

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 としても使え

ます。

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

事例

12

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

13

Helion Openstack/Helion Stackato の採用事例

2自動車メーカー

• コネクテッドカー、自動運転といった最新技術を支えるアプリケーションの開発と運用をグローバル規模で実現するためのマルチクラウド PaaS

3テレコム

• パブリッククラウドサービス、プライベートクラウド、モバイルアプリ開発基盤をオープンテクノロジーで統合

1銀行

• 新興インターネット系サービスに対する競争力を高めるため、クラウドネイティブ技術を応用したアプリケーション開発体制へと変革

いずれも Helion Professional Services のコンサルティング / 導入サービスがプロジェクトを推進

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

1414

共通のポイント

•欲しいのは Agility, Flexibility, Scalability• フロントのアプリケーションはどこでも動くこ

と• 外部サービスをアプリケーションから容易に利

用できること• 機械学習、 IoT バックエンド、地図情報など、パブリック

クラウド上のサービス• 顧客情報 DB など、オンプレミスの既存サービス

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

乗り越えるべき課題と Best Practice

15

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

16

「日本では難しい」と思っていませんか

「欧米は内製のエンジニアがたくさんいるからできるのであって、日本じゃそうはいかないんじゃないの」

そうでもないです。どの国も事情は大して違いません。チャレンジして乗り越えています。

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

17

Mode2 を進めるのは誰か

CEO

IT 部門事業部門

インフラ系 SI開発系 SI事業部門 IT

開発ベンダー

トップダウン

ボトムアップ

IT主導ビジネス主導

CIO

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

18

トップダウン・ IT主導(全社的な取り組み)の課題(1)

「社長はアジャイルやれって言ってるし、やるべきなのはわかるけど、予算のつき方が従来通りだから上申が通らない・・・」

コンサル入れましょう。

必要性マーケット分析M2 ThreatM2 Opportunityビジネスメリット収益化予測コスト削減OPEXCAPEX顧客におけるMode1/2定義プロセス購買請負、委任、派遣?受入予算化所管承認フロープロジェクト管理 /開発 /運用手法スクラム、 XP、 DevOpsプラクティスの適用範囲と組織へのマッピング調達スケジュール例必要なツール

もしくは・・・まずは与えられた予算 / コンプライアンスの範囲内でゲリラ的に始めてしまい、小さな結果を出してから本格的に予算を取りに行くというやりかたも有効。

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

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

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

20

トップダウン・ IT主導(全社的な取り組み)の課題(3)

「現行のアプリケーション / サービス群をどうすればいいの」

②一部パイロット的に Re-architect できるものを選ぶ。残りはその結果を見てから考える。

③全面的に棚卸し。①そのままキープ。新規アプリケーション / サービスのみ対象とする。

アンチパターン:アーキテクチャや開発手法を見直さずに Re-host だけして「やったことにする」

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

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

(参考)既存のシステム群 / アプリケーション群をどうするか(棚卸しとアセスメント)

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

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• サービス管理 /オペレー

ションモデルの標準化• ガバナンスとコンプライ

アンスの標準化

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

23

ビジネス主導 /個別アプリケーションの課題

「全社 IT の方針が固まっていないのに勝手にプラットフォームを用意したらシャドウ IT になってしまうのでは・・・」

気にせず Small Start で始めましょう。プライベート PaaS も CI/CD ツールも、インフラから見ると LOB です。その上でアプリケーション開発とDevOps の実績を作れば全社展開もスムーズになります。

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

24

その他もろもろ

「スキルを持ったエンジニア(パートナー)がいない」

Hackathon (社内、社外)をやりましょう。出張 Hackathonサービスやってます。

「 XP にしろスクラムにしろ、プラクティスが多すぎて全部は無理」

少なくとも「バックログの管理」「コードの共有」「テストの自動化」は必須。あとはどれだけ効率化するかという話。CI ツールと PaaS を使うことでそれが格段に現実的になります。

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

変革を支えるツール

25

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

26

あまたあるツール群Issue

Tracking SCM Build CI Test Configure Deploy Monitor

• 一度に全部選ぶのは大変。• 流行り廃りもはげしい。

• 既に使っているものがあるなら、それをこの先も使えるか(定期的に)検討

• 最低限のツールで始めて、必要に応じて足していく、あるいは入れ替える

大原則:使いにくいツールは使われなくなっていく。

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

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 商用

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

28

ここから始めてみませんか

Issue Tracking SCM Build CI Test Configure Deploy Monitor

Stackato

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

Appendix: Helion Stackato とプロフェッショナルサービス

29

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

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 コンテナとして、

可用性・スケーラビリティが確保された形で実行管理される

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

31

          Cloud Foundry : オープン PaaS のエコシステム

31

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

32

凡例

Public IaaSもしくは VMware 等Hypervisor

構成例: Small Start (Microcloud)

Helion StackatoStackato VM

App App App

Scale

PaaS

物理仮想

コンテナ

Page 33: Enterprise Development Conference 2016 プライベート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

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

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など)

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

開発プロジェクトから 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

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

GitHub Enterprise Helion Stackato

JenkinsCI/CD の構成例

開発者

コードリポジトリ( VCS )

構成管理ツール

CI ツール

パッケージリポジトリ

ステージング環境

本番環境

Push hook

feedback

ビルドパッケージ作成パッケージ登録ユニットテストコードカバレッジ静的解析

結合テストデプロイテスト

テストツール

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

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 レイヤー

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

Cloud Native Application Development関連支援サービスメニュー

1コンサルティング

• バイモーダル IT / アプリケーション変革 / DevOps

2

3

導入

• IaaS基盤 / PaaS基盤 / ハイブリッドクラウド基盤

開発 /DevOps• アジャイル・クラウドネイティブ型開発支援 / 運用支援

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

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

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

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 アプリケー

ションの開発プロジェクトチームに参画、又は開発の請負

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

Thank you