클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
1. 1 SoftwareGroup WebSphere
2015.
IBM SoftwareGroup WebSphere Technical Sales
이정운 과장 (JungWoon Lee, juwlee@kr.ibm.com)
클라우드와 마이크로 서비스를 위한
새로운 시대의 경량화 WAS
IBM WAS Liberty 서버
7. 7 SoftwareGroup WebSphere
업무 담당자
• 빠르게 시장에
출시
• 변화에 필요한
시간 최소화
IT 운영자
• 변화시에 위험
최소화
• 동적 인프라
준비
개발자
• 혁신에 집중
• 보다 높은
자유도와 선택
다양한 업무 시스템(System of Engagement) 과 다양한 IT 시스템(Systems of Record) 을 손쉽
게 연결 가능한 새로운 형태의 비즈니스 지원 방안 필요
구성 가능한 비즈니스(Composable Business)를 위한 WAS 인프라 제공 필요
8. 8 SoftwareGroup WebSphere
구성 가능한 서비스로서 비즈니스 가치 사슬의 확장을 통하여 기업들은 새로운 웹 경제로 적응
가능
구성 가능한 서비스가 그 핵심 Key
…시장 변화에 신속하고 지속적으로 응답하려면…
시간과 공간과 장치의 제약 없이 새로운
제품과 서비스를 빠르게 전달하기 위한 산업
표준, 오픈 기술, 프로그래밍 언어
선택의 자유
전통적인&현대의 애플리케이션과 서비스
모두를 아우르는 클라우드 애플리케이션 개발/
전달의 빠른 반복과 지속적인 테스트를 통한
애플리케이션 전달 가속
마켓변화와 고객 요구사항을 반영하기 위한
신속성과 가시성, 통찰력을 가진
동적 확장
9. 9 SoftwareGroup WebSphere
개별 서비스들을 위하여 동적으로 수 천, 수 만개의 서버로 수평 확장(scale-out)
자동화된 관리, 문제 진단/모니터링
각 서비스에 대하여 신속하고 자동화된 배치
애플리케이션/서비스를 위한 지속적인 런타임 환경을 제공면서도 최적의 워크로드
배치를 위한 서비스 품질의 차별화가 가능한 배치 유연성
애플리케이션의 다양한 스펙트럼을 지원 – Monolithic, SOA and Micro-services
마이크로 서비스 적용 방안이 인프라에 대한 새로운 요구사항으로 대두
Monolithic App SOA Micro-services
구성 가능한 서비스 전달을 위한 요구사항
10. 10 SoftwareGroup WebSphere
마이크로 서비스
참고: Microservices by James Lewis and Martin Fowler
http://martinfowler.com/articles/microservices.html
11. 11 SoftwareGroup WebSphere
Monolithic Microservice
아키텍처 하나의 논리적인 실행 단위로 구축 (전형
적으로 3 티어 형태의 client-server-
databse 아키텍처에서 서버 사이드 부분)
작은 서비스의 세트로 구축 – 각 서비스는 분리
되어서 구동되며 경량화 형태로 커뮤니케이션
수행
모듈성 지원 프로그래밍 언어 기능 기반 비즈니스 능력 기반
민첩성 전체 애플리케이션의 새로운 버전에 대한
구성과 배치를 포함한 시스템의 변화 필요
각각의 서비스 별로 독립적인 변화 가능
확장성 로드 밸런서를 통해서 전체 애플리케이션
이 수평적으로 확장
필요시 각 서비스 별로 독립적 확장 가능
구현 전형적으로 하나의 프로그래밍 언어로 작
성
각 서비스별로 필요에 적합한 최적의 언어를
선택해서 작성 가능
유지보수성 대규모 코드로 인하여 새로운 개발자의 접
근이 어려움
관리하기 쉬운 보다 적은 코드 기반
트랜잭션 ACID BASE
단일 구조(Monolithic) vs 마이크로 서비스(Microservices)
12. 12 SoftwareGroup WebSphere
경량화
구성 가능한
보안
유연성
동적
확장성
클라우드-레디
입증된 안정성
자동화된 관리
완벽한 제어
기업 보안
유연한 배치 – 모든 곳에서 구동 가능
결국, WAS 인프라는 새로운 워크로드의 다양한 스펙트럼을 커버해야 함
지속적인 Java 런타임, 그러나 애플리케이션의 적합한 아키텍처 선택의 자유
제공해야 하는 숙제
13. 13 SoftwareGroup WebSphere
클라우드와 마이크로 서비스에 대한 WAS 인프라의 고민
서비스 분리를 위한 WAS 경량화
가능 여부
서비스별 변화를 위한 동적이며
유연한 구성의 이슈
동적 환경 변화에 대한 대응 방안
대단위로 증설되는 동적 환경
변화에 따른 시스템 환경 동기화
이슈
대단위 환경을 관리할 수 있는
관리방안 이슈
구성 및 확장/관리 방식에 따른
다양한 라이센스 모델 적용 가능
여부
WAS 인프라 담당자
새로운 환경을 위한
새로운 WAS 의 필요
각각의 서비스를 필요한 작은 서비스의 세트로 분리할 정도로 WAS
인프라를 경량화 할 수 있는가?
서비스 별로 독립적인 변화를 주기 위해서 동적이며 유연한 구성이
가능한가 ?
클라우드와 같은 동적인 환경 변화, 확장에 바로 대응할 수 있도록 단
순하게 동적 확장/동기화가 가능한가?
대규모 환경을 손쉽게 관리할 수 있도록 단순함이나 별도의 관리방
안을 제공하는가?
구성 및 확장/관리 방식에 따른 다양한 라이센스 모델을 적용 가능한
가?
15. 15 SoftwareGroup WebSphere
클라우드와 마이크로 서비스와 같은 새로운 시대를 위한
경량화되고 유연하며 확장 가능한 새로운 WAS 인프라 필요
새로운 WAS 인프라
경량화(Lightweight)
구성 가능한(Composable)
단순함(Simple)
유연함(Flexible)
동적(Dynamic)
오픈&확장성(Open & Extensible)
클라우드 레디(Cloud-ready)
….그러면서도 원래부터 운영환경에 이미 준비되어 있는…..
….높은 관리적 확장성을 가진!
WebSphere Application Server
Liberty Profile
17. 17 SoftwareGroup WebSphere
경량화된 다운로드와 설치
Java EE 6 Web Profile 인증된 App Server 다운로드도 60MB 면 충분
java -jar wlp-developers-runtime-8.5.5.5.jar
Archive 설치 :
Installation Manager
를 통한 설치방식도
같이 제공
Archives fully
supported with fix
packs and iFixes
별도 로그인 필요하지 않음!
20. 20 SoftwareGroup WebSphere
경량화된 런타임을 통한 가벼움
3초 만에 서버 시작이 가능…
…60MB 에 불과한 메모리 풋프린터…
…그럼에도 불구하고 경쟁사 대비 빠른 성능 제공…
Intel IvyBridge 2-cores enabled, Linux 64-bit
Oracle JDK 7 u67 is used for all products
21. 21 SoftwareGroup WebSphere
경량화된 런타임을 통한 가벼움
3초 만에 서버 시작이 가능…
…60MB 에 불과한 메모리 풋프린터…
…그럼에도 불구하고 경쟁사 대비 빠른 성능 제공…
SUT: Intel IvyBridge 4-cores enabled, Linux 64-bit
23. 23 SoftwareGroup WebSphere
Full profile
runtime services
config model
Java EE Implementation
WAS Extensions
Liberty profile
kernel
servlet
http app mgr
securityjspjsf
기존 WAS full profile 이 제공 가능한 컴포넌트를 재사용
애플리케이션에 대하여 공통적인 행동
공통 성능 프로파일(처리량)
구성 가능한 아키텍처
선택 가능한 기능을 통하여 경량화한 커널(kernel)
24. 24 SoftwareGroup WebSphere
구성 가능한 서버 인스턴스
각 서버 인스턴스에서 어떤 기능이 로드 될지 제어 가능
<feature>servlet-3.0</feature>
<feature>jsf-2.0</feature>
<feature>appSecurity-2.0</feature>
Liberty profile
kernel
servlet
http app mgr
securityjspjsf
Liberty profile
kernel
servlet
http app mgr
내부 기능의 의존도를 직접 관리 가능, 예를 들어:
jsf 기능은 jsp 를 포함
jsp 기능은 servlet 을 포함
jdbc 기능은 transactions 을 포함
25. 25 SoftwareGroup WebSphere
구성 가능한 기능 집합
제품 에디션 별로 기능 집합을 중첩 포함
z/OS Edition z/OS 이용 기능 추가
Network Deployment
Edition
중앙 집중화된 관리와 클러스터 기능
추가
“Base”, Express and
Developers’ Editions
Java EE 6 (full) 프로파일 기능 추가
Liberty Core Edition Java EE 6 Web Profile
+ some Java EE 7 Web Profile
다양한 코어 기능들
26. 26 SoftwareGroup WebSphere
구성 가능한 기능 집합 : 초기 설치 기능들 – 압축 or IM
webProfile-6.0
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zos
collectiveController-1.0 clusterMember-1.0
ndbase
wab-1.0
concurrent-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
blueprint-1.0
servlet-3.0
jsp-2.2
jsf-2.0
ejbLite-3.1 jdbc-4.0
jndi-1.0
appSecurity-2.0
managedBeans-1.0
core
ssl-1.0
beanValidation-1.0
cdi-1.0
jpa-2.0
serverStatus-1.0
에디션에 따라 다양한
초기 설치 기능
•Core : 기본 모델
•Base : JAX-WS, JMS,
mongoDB 등의 기능 추가
•ND : 클러스터 추가
•z/OS : z/OS 플랫폼 통합
기능 추가
27. 27 SoftwareGroup WebSphere
구성 가능한 기능 집합 : 확장 프로그래밍 모델 기능
webProfile-6.0
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zos
collectiveController-1.0 clusterMember-1.0
nd
mongodb-2.0wsSecurity-1.1
wmqJmsClient-1.1
wasJmsServer-1.0
jmsMdb-3.1
wasJmsClient-1.1jaxws-2.2
jaxb-2.2
wasJmsSecurity-1.0
base
wab-1.0
concurrent-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
blueprint-1.0
servlet-3.0
jsp-2.2
jsf-2.0
ejbLite-3.1 jdbc-4.0
jndi-1.0
appSecurity-2.0
managedBeans-1.0
core
ssl-1.0
beanValidation-1.0
cdi-1.0
jpa-2.0
serverStatus-1.0
확장 프로그래밍 모델은
Liberty Core 를
제외하고 모든 에디션에
선택적으로 설치가능
확장 프로그래밍 모델
31. 31 SoftwareGroup WebSphere
단순함 : 로컬 환경에서 쉽게 시작 가능
1. liberty 압축파일 다운로드
2. java –jar <archive>
3. bin/server create myServer
4. cp myapp.war usr/servers/myServer/dropins
5. bin/server run myServer
6. http://localhost:9080/myapp
32. 32 SoftwareGroup WebSphere
단순화된 서버 설정 – 단 하나의 server.xml 파일로 모든 설정 관리 가능
<server>
<featureManager>
<feature>jsp-2.2</feature>
<feature>jdbc-4.0</feature>
</featureManager>
<logging traceSpecification=”webcontainer=all=enabled:*=info=enabled” />
<application name="tradelite" location="tradelite.war" />
<dataSource jndiName="jdbc/TradeDataSource">
<properties.derby.embedded databaseName="${server.config.dir}/tradedb"/>
</dataSource>
</server>
서버에 설치되어 있는 번들에 대한
기능 제어 가능
로깅과 같이 런타임 서비스를 위하여
'singleton' 설정 가능
애플리케이션이나
데이터소스 정의와 같은
여러 자원에 대한
'instance' 설정 가능
이러한 어떤 설정이라도 ‘master’ 설정에
‘included’ 하여 분리된 별도의 xml 파일
형태로 관리 가능(팀 개발에 용이)
33. 33 SoftwareGroup WebSphere
단순화된 서버 설정 – 단 하나의 server.xml 파일로 모든 설정 관리 가능
가장 단순한 케이스 : 모든 서버
의 설정이 하나의 XML 파일로
가능
Eclipse 도구에 연동된 설정 위
자드를 통한 손쉬운 설정
관리 콘솔이나 wsadmin 등이
더 이상 필요 없음
추출 및 공유, 버전 관리가 가능
모든 설정이 하나의 server.xml 파일로 구성 가능하며 이를 통해서 공유/버전 관리가
용이(Eclipse 도구에 연동된 위자드 제공)
34. 34 SoftwareGroup WebSphere
3rd 파티 라이브러리 사용의 단순함
Application
API
Internal classes (hidden)
libx v2.2
libx v1.6
Liberty classloading
Application
API
Internal classes (visible)
libx v2.2
libx v1.6
Traditional classloading
<classloader
xmi:id="Classloader_1347543866613"
mode="PARENT_LAST"/>
X
35. 35 SoftwareGroup WebSphere
업데이트의 단순함
아키텍처 목표 : 애플리케이션 변화 없는 제로 마이그레이션
Bring your config
8.5.5.2
8.next
설정,
애플리케이션,
자원
WLP_USER_DIR
java -jar wlp-developers-runtime-8.5.5.2.jar
java -jar wlp-developers-runtime-8.next.jar
38. 38 SoftwareGroup WebSphere
유연한 배치 : 서버 패키지
런타임과 설정, 애플리케이션을 압축형태로 패키지 가능
myapp.war
server.xml
runtime
minify 옵션을 사용하면
서버가 사용하는 런타임
기능만 패키지 가능
server package myServer –include=minify
해당 방식의 설치라도
fixpack 과 ifix 지원 가능
대상 서버로 ftp 전송 후에 unzip 만으로 수행 가능
39. 39 SoftwareGroup WebSphere
유연한 관리환경
ControllerCollective
컨트롤러
Liberty Profile
(Collective
Member)
Liberty Profile
(Collective
멤버)
Liberty Profile
(Collective
Member)
Liberty Profile
(Collective
멤버)
jython
jconsole
관리콘솔
• 오직 WAS ND와 z/OS 만
Collective 컨트롤러 가능
• 운영 레지스트리 제공
• 모든 멤버가 컨트롤러를
통해 접근 가능
• 고가용성
• 보안, 확장성
• Agentless
• 중앙 집중 설정이 없음.
• 모든 WAS 에디션은 Collective
멤버로 합류가능
• 클러스터에 대한 자가 인지
• 단순한 설정 업데이트
• 쉽게 reversed, reconfigured
Liberty클러스터ALiberty클러스터B
40. 40 SoftwareGroup WebSphere40
Script Client
WAS WAS WAS
WAS WAS WAS
IHS,
DP, or
generic
HTTP
Load balancing and session affinity/failover
Operations target individual
servers
• “로드 밸런싱”
• 각각의 서버의 plugins 를 통합하여 Web server
플러그인 작성
• DB 나 WXS 를 이용하여 세션 매니저 장애 대비
HTTP/S
유연한 통합 관리
42. 42 SoftwareGroup WebSphere
런타임 환경에 대한 동적인 업데이트
기능
애플리케이션
자원
server.xml
Liberty runtime
애플리케이션
애플리케이션
애플리케이션
설정 업데이트
기능 업데이트
애플리케이션
업데이트 jndi-1.0 jdbc-4.0
sessionDatabase-1.0
monitor-1.0transaction-1.1
ssl-1.0
servlet-
3.0
wab-1.0
jsp-2.2 jsf-2.0
dropins location
JDK 6.0/7.0/8.0
OSGi framework
설정, 기능, 애플리케이션 업데이트는
IBM WAS Liberty Server 의 재시작
없이 즉시 동적 반영
43. 43 SoftwareGroup WebSphere
동적 확장성
애플리케이션 엔드 포인트가 변경되면 동적으로 라우팅 정보 업데이트 가능
확장 정책에 따라 동적으로 서버/중지도 가능
ODRLIB
plugin
IHS Web Server
HTTP traffic
라우팅
정보
확장 클러스터 멤버들
확장 정책은 하단의 기준:
• 구동 서버의 min / max # 지정
• 모니터링 자원의 기준 지정
• cpu, memory, heap
확장
컨트롤러
자원 데이터
새로운
멤버
beta: 새로운 멤버나
클러스터 추가
45. 45 SoftwareGroup WebSphere
클라우드-레디
Build Your Own Cloud
Use virtualized WebSphere
App Server on your hardware
Amazon
BYOS&L - WebSphere App Server
Blue Mix
Composable services
Liberty Buildpack
PureApplication
System & Software
Build reusable &
redeployable patterns
using the WebSphere App
Server
Cloud Foundry
Liberty Buildpack
SoftLayer/Bluemix
BYOS&L - WebSphere App Server
Public Cloud Economies
Time to Market
Packaged Services
Rapid Development
Total Control
Maximum Flexibility
On-Premises IaaS PaaS
Microsoft Azure
BYOS&L - WebSphere App Server
Pay-as-you-Go WAS VMs
IBM WAS – 어느 곳에서나 구동 가능한 유연함
47. 47 SoftwareGroup WebSphere
클라우드와 마이크로 서비스에 대한 WAS 인프라의 고민 - IBM WAS Liberty 로 해결
서비스 분리를 위한 WAS 경량화
가능 여부
서비스별 변화를 위한 동적이며
유연한 구성의 이슈
동적 환경 변화에 대한 대응 방안
대단위로 증설되는 동적 환경 변화에
따른 시스템 환경 동기화 이슈
대단위 환경을 관리할 수 있는
관리방안 이슈
구성 및 확장/관리 방식에 따른
다양한 라이센스 모델 적용 가능 여부
WAS 인프라 담당자
새로운 환경을 위한
새로운 WAS 의 필요
각각의 서비스를 필요한 작은 서비스의 세트로 분리할 정도로 WAS 인프라를 경
량화 할 수 있는가?
> IBM WAS Liberty 서버는 기본이 60MB 에 불가한 jar 로 구성되어 경량화 되어
있으며 이마저도 필요한 기능만 보유한 채 더 경량화가 가능합니다.
서비스 별로 독립적인 변화를 주기 위해서 동적이며 유연한 구성이 가능한가 ?
> IBM WAS Liberty 서버는 설정, 애플리케이션, 자원에 대한 동적인 구성이 가능
하며 실제 엔진 구동 시에도 독립적인 서비스에 필요한 기능만 유연한 구성이 가
능합니다.
클라우드와 같은 동적인 환경 변화, 확장에 바로 대응할 수 있도록 단순하게 동
적 확장/동기화가 가능한가?
> IBM WAS Liberty 서버는 애플리케이션과 설정을 포함한 패키지 형태로 바로 배
포하여 압축해제만으로 구동이 가능하며 server.xml 의 단일 설정파일을 사용하므
로 변경/동기화 작업들을 손쉽게 한번에 바로 수행 가능합니다.
대규모 환경을 손쉽게 관리할 수 있도록 단순함이나 별도의 관리방안을 제공하
는가?
> IBM WAS Liberty 서버는 경량화 WAS 이면서도 관리콘솔을 잘 제공하고 있으며
Collective 컨트롤러를 통한 대규모 환경에 대한 통합 관리 방안기능도 보유하고
있습니다.
구성 및 확장/관리 방식에 따른 다양한 라이센스 모델을 적용 가능한가?
> IBM WAS Liberty 서버는 구성 및 확장/관리 방식에 따라 Core, Base, ND 까지
다앙한 에디션을 통한 유연한 라이센스 모델을 가지고 있습니다.
새로운 경량화 WAS 인
IBM WAS Liberty 서버 제공
-> 빠르고, 유연하고, 단순화된
애플리케이션 구동 환경을 제공하여
클라우드와 마이크로 서비스에 최적
48. 48 SoftwareGroup WebSphere
IBM WAS Liberty Base Freemium
Announcement: 별도 지원을 받지 않는 대신에 비용이 없는 옵션으로
개발부터 운영까지 무료로 사용 가능. 모든 서버 인스턴스의 JVM heap
사이즈 합계가 최대 2GB 까지 허용
비용 발생 없음 : 간단한 배치나 all
deployment and grow as needed
실제 운영환경 경험 : 개발
목적에서는 현재도 이미 무상
WAS Liberty Base 의 모든 기능
제공 : 고성능과 기능 장점 제공
On-prem 와 public clouds 배치
옵션을 유연하게 선택 가능
어떻게 경험해 보나요?왜 WAS Liberty Base Freemium 인가요 ?
Wasdev.net 에서 다운로드
별도의 비용 추가 없이 WAS 포럼과
문서들을 통해 질문에 대한 답을 구하는
것도 가능