source : http://www.opennaru.com/cloud/msa/
마이크로서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식입니다. 마이크로서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 방식입니다. 각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있습니다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동(또는 장애가 발생)할 수 있음을 의미합니다.
8. Monolith vs. Microservices
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Monolithdevelopmentlifecycle Microservicedevelopmentlifecycle
developers app Deliverypipeline developers services Deliverypipeline
하나의 기능을 구현 하는데, 여러 개의 서비스를 조합하여 기능을 제공
예) 주문 하기 : 사용자 정보 조회, 상품 정보 조회, 신규 주문 생성
27. • 변화의 경계선을 찾는다
• 모듈화는 변화의 경계선에 의해 일어난다
• 변화의 요인 (외부 / 내적)는 품질 특성에서 이해하기
• 기능뿐만 아니라 비 기능도 중시해야 한다
• 변화의 경계에 선을 긋는다
• 변화의 경계는 불분명하지만 선을 그릴 수 밖에 없다
• 도메인 경계를 유지한다
• 패키지 문제 또는 재 구축 문제
도메인 = 변화의 경계선
42. OOO사 OpenShift 환경의 MSA 애플리케이션 전환 사례
Red Hat Linux 6 Red Hat Linux 7.7
OpenShift 3.11
JDK 1.4 JDK 1.8
Legacy Framework Spring Boot/Cloud
JEUS 7 Tomcat 9
AS-IS TO-BE
주요 개선점
• 부하에 따라 서비스를 부분적으로 자동 Scale-
out할 수 있음(Auto Scaling)
• 컨테이너 환경으로 DevOps(CI/CD) 서비스 무중단
배포 환경 구성 업무별 빠른 자동 배포 환경
• Spring Boot / Spring Cloud(Netflix OSS) 등 최신
Framework 도입하여 MSA 환경 구축
• 운영환경과 동일한 개발/테스트 환경 구성
OpenShift 프로젝트로 구분하여 특정 노드에 구성
• APM 도입으로 API간의 연계 추적이 가능
43. OOO사 OpenShift 환경의 MSA 애플리케이션 전환 사례
frontend
Oracle
Database
Redis
Cluster
Openshift
Container Platform
프로젝트:
Infra-prod
(infra-dev, infra-test)
Rabbit
MQ
(config)
aggregator
front
-admin
gateway
(제휴사 API 호출)
business service (오토스케일링)
config
-server
#1 ~ #6
auth
backend
bill
member
manager
mobile
report
support
워커 노드
#1
워커 노드
#2
워커 노드
#3
워커 노드
#4
워커 노드
#5
마스터 노드
#1
마스터 노드
#2
마스터 노드
#3
Bastion
#1
aaa.war
컨테이너
(PROD)
bbb.war
컨테이너
(PROD)
ccc.war
컨테이너
(PROD)
ddd.war
컨테이너
(PROD)
eee.war
컨테이너
(TEST)
Persistent
Volumes
(NFS)
물리 구성
Spring CloudSpring Cloud
Spring Cloud
47. 건국대학교병원 – MSA 전환사례
SPARC/PA-RISC/Power X86
물리서버 RHEV 4.0
HP-UX(11.23) Red Hat Linux(7.3)
JDK 1.4 JDK 1.8
JEUS 4.2 JBoss EAP 7
적
용
방
안
기
대
효
과
인프라 (서버/OS/미들웨어) 를 단일 벤
더 지원
각 부분별로 개방형 표준 환경으로 전환
오픈 소스 프레임워크를 통한 개발
라이선스 비용 없기 때문에 초기 도입
비용 절감
특정 서버 벤더와 기술에 얽매이지 않는
환경
Cost Performance 가 좋은 인프라를 선
택
서비스 품질이 높은 개발/운영 업체 선
택
운영 효율성 향상
저비용 고효율 시스템 구축
J2EE 1.3 Java EE 1.8
AS-IS TO-BE
55. 제품 / 서비스에 관한 문의
• 콜 센터 :02-469-5426 ( 휴대폰 : 010-2243-3394 )
• 전자 메일:sales@opennaru.com
Notas del editor
There are many studies that shows that collaboration becomes a bottleneck in teams that are bigger than 8-10 persons. By dividing a large monolith into microservices, teams can be kept small and focused.