2015 oce specification

58
2015 OCE Specification Draft Open Cloud Engine Initiative www.opence.org

Upload: uenginesolutions

Post on 17-Jul-2015

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 2015 oce specification

2015 OCE Specification DraftOpen Cloud Engine Initiative

www.opence.org

Page 2: 2015 oce specification

• Use Cases

Page 3: 2015 oce specification
Page 4: 2015 oce specification

기능설계겸 아키텍처안

• Outline:– OSGi 와는 2015년에는 결별한다. (2016 이후 고려)– Docker(현재의 OSGi 역할로) + Tomcat (JBoss 등) 로 간다. – 애플리케이션 구조는 OSGi에서 일반적 Spring 기반 war를

deploy하는 maven archetype– Full 시나리오: Migrator (Minute) -> Vaadin & JPA 생성

-> [클래스 수정 (UML) -> 자바반영] -> 디자인 수정 -> 앱 완료 -> 프로세스 연계

– Bahamas (레스토랑?) 과의 관계: CF에서의 BOSH의 역할부여. ServiceBroker 의 기능이 없기 때문에 이 부분은garuda 혹은 bahamas 에서 구현되어야 할 부분으로 보임.

– 오히려 cloud migration과 BSS 관점을 부각

Page 5: 2015 oce specification

Developer Portal Zone

Bahama

Application Instance Zone

Service Instance Zone

Chef Server

Any IaaS

Recipes

The big picture

Page 6: 2015 oce specification

Developer Portal Zone Application Instance Zone

Developer Portal Server (Tomcat)

Codi(SNS/

Cloud IDE /Migrator /

Marketplace/ SelfSVC/

Metering/Billing)

CI

(Jenkins)

SSO

(CAS)

SVN/GitServer

Nexus (App Repo)

*.war

Cloud Controller

App Instance

1

2

3

4

5App InstanceApp Instance

Build Time Support

BPM

Server

DB Brows

er(올챙이)

Page 7: 2015 oce specification

Application Instance Zone

Router (HA Proxy

Instance 1

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 2

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 3

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

MQ

Cloud Controller

ProvisioningAgent

1

2

3

Operation Time Support (Provisioning)

Page 8: 2015 oce specification

Application Instance Zone

Router (HA Proxy

Instance 1

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 2

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 3

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

MQ

Cloud Controller1

2

Docker 2

(Tomcat)AppB.war

createDocker 2

Load Full

Operation Time Support (App Scale out)

Page 9: 2015 oce specification

Application Instance Zone

Router (HA Proxy

Instance 1

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 2

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 3

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

MQ

Cloud Controller1

2

Docker 2

(Tomcat)AppB.war

createDocker 2

Dead

Operation Time Support (App Fail-over)

Page 10: 2015 oce specification

Application Instance Zone

Router (HA Proxy

Instance 1

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 2

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 3

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

MQ

Cloud Controller

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

New Instance

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Bahama / Chef Server

4

5

create

Anymore Room!

Min # of instance

Max # of instance

Instance Pool Scale out

Page 11: 2015 oce specification

Application Instance Zone

Router (HA Proxy

Instance 1

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 2

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Instance 3

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

MQ

Cloud Controller

New Instance

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Remove

Min # of instance

Not that much

Request

1

2

Operation Time Support (Instance Pool Scale in)

Page 12: 2015 oce specification

Application Instance Zone

Router (HA Proxy

Service Instance

Zone

Database

Memory Cache

FastCat

…….

Service Broker

Service Broker

Service Broker

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)

App-A.war

Docker 2

(Tomcat)AppB.war

MQ

Cloud Controller1

2

Operation Time Support (Service Brokerage)

Page 13: 2015 oce specification

Developer Portal Zone

BPM Server

Operation Time Support (Integration via MSA / CSB)

Application Instance Zone

Router (HA Proxy

Provisioning

Agent

Docker 1(Tomca

t)

App-A.war

Docker 2(Tomca

t)

AppB.war

Provisioning

Agent

Docker 1(Tomca

t)

App-A.war

Docker 2(Tomca

t)

AppB.war

Provisioning

Agent

Docker 1(Tomca

t)

App-A.war

Docker 2(Tomca

t)

AppB.war

Provisioning

Agent

Docker 1(Tomca

t)

App-A.war

Docker 2(Tomca

t)

AppB.war

MQ

Cloud Controller

External Cloud Services

REST Service of AppA

SOA ServiceOf AppB

REST/SOA ServiceOf External Apps

Cloud IDE’s BPMN

Modeler

Page 14: 2015 oce specification

Multi-tenancy Support

Developer Portal Zone

Metadata Server

Application Instance Zone

Router (HA Proxy

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

MQ

Cloud Controller

Brand for TID

Self Service Portal

Client

(Web Browser

TID.service.com

Logic for TID

Metadata per tenant

TID in ThreadLocal

Page 15: 2015 oce specification

Business Supporting Service: Metering / Billing

Developer Portal Zone

Billing / Metering Server

Application Instance Zone

Router (HA Proxy

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

Provisioning Agent

Docker 1

(Tomcat)App-A.war

Docker 2

(Tomcat)AppB.war

MQ

Cloud Controller

Application Log

Plan Menagment /

Self Service

Client

(Web Browser

TID.service.com

serviceAserviceAserviceB….

Billing data per tenant

Aggregate and filter out Billing Logs

Page 16: 2015 oce specification

API design and protocol

OCE BSSService

Application

Billing / Metering

Metadata Mgmt.

Self Service

Tenant Mgmt.

Get: app/{appId}/plan

Post: account/{accId}

Get: account/{accId}/invoices

Get: account/{accId}/metadata

IFrame: account/{accId}/selfservice

가입

테넌트특화화면

송장확인

테넌트설정변경

서비스 가격소개

Post: app/accountparameter: accountId={accId}

앱취득

Page 17: 2015 oce specification

• 화면설계안 (일부는 완성되었음)

Page 18: 2015 oce specification
Page 19: 2015 oce specification

User (Tenant, Provider, Operator) SNS

Page 20: 2015 oce specification

SSO Tray and App Launcher

Application 영역

Page 21: 2015 oce specification

프로젝트 생성

유일한 앱 아이디

1. 프로젝트 등록2. 개발자 공간 생성 (리눅

스 계정)3. SVN 공간 생성4. 기본 archetype 으로

maven project생성5. Jenkins Build Job생성

(비동기로 처리)

Page 22: 2015 oce specification

생성된 프로젝트 커뮤니티

My First App

프로젝트를 생성중에 있습니다

IDE

생성이 완료된 순으로정보가 들어옴

Page 23: 2015 oce specification

My First App

프로젝트를 생성중에 있습니다

IDE

클릭하면 상세한 진행상황이 나타남

1. 프로젝트를 생성중에 있습니다

Page 24: 2015 oce specification

개발팀의 추가와 협업 활동

• http://wiki.opencloudengine.org/pages/viewpage.action?pageId=2850835

• http://wiki.opencloudengine.org/pages/viewpage.action?pageId=2850930

Page 25: 2015 oce specification

My First App

프로젝트 기본 정보입니다

클라우드 IDE로 접속

IDE

Page 26: 2015 oce specification

기본 garuda app archetype에 의하여 생성됨

Getting Started Guide

1. From the scratch2. From your existing project (Maven Only)

3. From the lagacy system (Code Gen)

See videos

Page 27: 2015 oce specification

다른 IDE 접근 경로

Page 28: 2015 oce specification
Page 29: 2015 oce specification

shortcuts

Run DebugEdit Configuration

Build

1. Maven build2. Docker Run3. Browse url -> to new

browser tab

실행 테스트

Page 30: 2015 oce specification

Run

1. 여러 개의 인스턴스로 분산된 로그가 aggregated되어 표시됨

2. 테스트환경에서도 HA구성이 되며 인스턴스 개수의 설정은 Edit Configuration에서 함

실행로그출력

Page 31: 2015 oce specification

Maven Target 실행

Build

Page 32: 2015 oce specification

Tools

Code GeneratorDB BrowserShell

Shell Shell Build Log

1. 개발자 홈에 접속시켜줌 (사용자마다 코디 서버에 대하여 리눅스계정을 준다?)

2. 개발자는 직접 mvn, svn, git등의명령을 자신의 base dir에서 할수 있다.

3. Docker 실행 인스턴스에 붙는 건불필요??할듯하다.

쉘을 통하여 사용 자율성 제공

Page 33: 2015 oce specification

VCS

CommitUpdateDiff…..

Shell SVN Command Build Log

1. 특정 폴더 이하를 Commit, Update, Diff 하는 것은 IntelliJ의단순한 형태를 따른다.

2. Svn 자바 라이브러리 쓰는것이 복잡하면 그냥 jsch로 명령을 보내어 처리한다.

3. SVN command shell은 원하는 경우 하단에 표시한다.(우선은 shell기능 부터 주면 만약의 경우는 개발자가 직접 붙어서 할 수 있도록배려해준다)

버전 컨트롤

Page 34: 2015 oce specification

[여기서 걸림돌] 개발자 각자의 로컬 수정본을 클라이언트 피씨에 받아서 이클립스 등에

서 사용할 수 있는 방법은?

• 클라우드 IDE가 완전한 개발 동선을 커버하지 못하므로 중요하다.

• 혹시 git가??

• 원격 데탑에다 이클립스 올리…. X

Page 35: 2015 oce specification

클라우드 마이그래이션

Tools

Code GeneratorDB BrowserShell

Page 36: 2015 oce specification

기본 생성 애플리케이션에서 시작

Code generator는 DAO, Web Service, UI까지 생성가능하다(minuteProject 참고)

Page 37: 2015 oce specification

[생성된] UI 요소 편집

Page 38: 2015 oce specification

코드를 직접 편집

CustomerUI.

수준: 그냥 Editor 보다는 높은, CodeEnvy까지는 아닌.. Maven 에 주로 의존하는. 그러나 어느 정도 DB애플리케이션은 이걸로만 개발할 수 있는• Code Assist: Auto import for Classes and Annotations, “.”

assist, context assist(Ctrl+Space ), unimplemented interface

• Search: Ctrl+Shift+R (by resource) / T (by type), Ctrl+f, Search in Files, Find Usage (References…)

• Source: Setter/getter, implement interfaces

• 그밖에 꼭 있어야 할 것들만… 비용이 높아서.. Class구조정보는 memory cache에 공유하여 빠르게…

Page 39: 2015 oce specification

저장시 자동 maven 빌드 (증분빌드?)

CustomerUI.

Build

Page 40: 2015 oce specification

서비스 연결하기

CustomerUI.

Build

Services

Connect ServiceManage Connected Services

Connect a Service for Dev

FastCat Search

MySQL DB

keyword

……….……

……….……

import

Page 41: 2015 oce specification

연결한 서비스는applicationContext에

applicationContext.xml.

실제 연결정보는 테스트와운영시 동적으로 변경되므

로 의미 없음

Page 42: 2015 oce specification

Tools

Code GeneratorDB BrowserShell

1. 연결된 서비스로 데이터베이스가 존재하는 경우는 해당 커넥션이 선택되도록 가이드된다.

2. 앱에 연결된 DB서비스가없으면 연결하도록 기본연결한다

데이터베이스 클라이언트

올챙이 here

Page 43: 2015 oce specification

가격 플랜 설정

Plan.xml

Preview

Basic…..

100원/월

[가입]

Freemimum…..

200원/월

[가입]

Pricing Plan

Page 44: 2015 oce specification

Run DebugEdit Configuration

Debug

1. 디버그 모드로 띄우면 도커내의디버그 포트를 추가적으로 연다

2. 디버그 때는 인스턴스를 1개로 제한 (메시지로 알려줘야 함)

3. 라인 마커 부분을 클릭하면 디버그 포인트 토글

4. Watch/Evaluate 를 위하여 jdbclass를 직접호출하거나 system call 하여 사용 터미널로 열어줌(http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html)

5. Jdb의 소스코를 참고하여 개발할수도 있음:http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/jdb.html

6. http://www.cs.rit.edu/~rwd/Public/JavaDebugging/

디버그 걸기

Page 45: 2015 oce specification

도움 받기

CustomerUI.Start GuideAPI DocumentationBPMN ModelingCommunityKnowledge Base

Page 46: 2015 oce specification

마켓플레이스 올리기

App 등록우측상단영역의 'Apps'를선택후,

'앱스토어'를선택한다.

(http://wiki.opencloudengine.org/display/GD/App

+Store)

Page 47: 2015 oce specification

사용자: 앱 사용 (구매)

Page 48: 2015 oce specification

사용자: 셀프서비스 – 메타데이터관리

http://wiki.opencloudengine.org/pages/viewpage.action?pageId=1310994

Page 49: 2015 oce specification

사용자: 셀프서비스 – 프로세스 관리

업무 전문가를 위한실행가능 프로세스언어 – BPMN

GUI기반 비즈니스 룰정의

웹서비스 통합 (*CSB)

비즈니스 폼

데이터 매핑• DB 쿼리 자동화• SQL 툴

Page 50: 2015 oce specification

사용자: 사용량 및 인보이스(송장) 확인

Page 51: 2015 oce specification

운영자: 앱 모니터링

TO-DO• 타 플랫폼 사례 벤치마킹• 잘된 오픈소스가 있다면 그것을 참고• 앱을 올렸다 / 내렸다 / 인스턴스를 늘였다/줄였다 하는 기능 등은 CF의 UI

를 참고

Page 52: 2015 oce specification

운영자: 바하마를 기반으로 서비스인스턴스 및 서비스 레서피 관리

앱론처에서 ‘바하마’

선택

SSO가 처리되어 별도 로그인 필요없음

Page 53: 2015 oce specification

운영자: FastCat Service 관리• SSO가 처리되어 별도 로그인 필요없음

앱론처에서‘FastCat’ 선택

Page 54: 2015 oce specification

운영자: 테넌트/앱/앱-서비스별 사용량 및 인보이스(송장) 확인

Page 55: 2015 oce specification

운영자: 매출 예측 및 플랜개선 포인트 확인

Page 56: 2015 oce specification

차별화 포인트• 모델링 도구 기반의 PaaS for Business Expert 특성 강화• Cloud Foundry 기반 (Application PaaS) 과의 연계를 통한 강력한 기반 시장 진입

클라우드 파운드리 오픈 클라우드 엔진

빅데이터 개발플랫폼

• Hadoop 기반 도구와 클러스터 구성

• CF 지원 내용 포함• Web GUI (Flamingo)를 통한 데이

터 관리, 조작, 클러스터 실행

비즈니스 모델링• 외부 서비스 연동 • 비즈니스 프로세스 모델링

• 데이터베이스 모델링• UML 모델링/ 리버스엔지니어링

애플리케이션개발

• 이클립스 (스프링)

• 다종언어(빌드팩) 지원

• 이클립스• 클라우드 IDE 및 마이그래이터• Docker기반 다중 언어 지원

애플리케이션 유통/관리/론칭

/SSO

• 앱 마켓플레이스• 앱론처• SNS기반 SSO

마켓 프리센스• IBM Bluemix, 중국 바이두 • CF 기반 구성요소들과 융합:

• BOSH기반으로 전환 (현재 chef)• HM 활용, OSGi Buildpack 개발

Page 57: 2015 oce specification

시장 진입 전략

• 우리가 사용해야 한다.

• 우리의 SaaS서비스 DevOps환경으로 적용하여 일구어낸‘문화’를 팔아야 한다.

• 이것은 1년 정도 걸릴 것으로 보인다.

• 그 사이엔 비 기술적 요인: Cross-Browsing (IE비지원에따른 환경적 이슈) 과 비용절감 이슈로 고객에게 접근해야 먹힌다. 클라우드라는 이름은 어렵다.

• 기존 BPM 고객과 신규고객에 끼워서 제공해야 먹힌다.

• 이후 어플라이언스 형태의 기업용 앱 단말기 처럼 판매.

• 중소 SI 기업 (제공자)에게의 특화된 무기로 판매.

Page 58: 2015 oce specification

Thank you