1. Introduction to Microservices - 01 :: 2016/08/23 17:35

MSA(Micro Service Architecture) 대한 관심이 날로 높아지고 있는 가운데, Chris Richardson 2015 5 19일에 오픈소스 웹서버인 nginx blog 올린 MSA관련 Article 정리해 보고자 합니다. 전체 7가지 에피소드로 구성되어 있습니다. 그 첫번째 이야기입니다. (www.nginx.com/blog/introduction-to-microservices)


<Introduction to Microservices>

Nginx Plus(오픈소스 웹서버 nginx 이용하여 Enterprise Version으로 개발한 버전) 사용하여 microservice 구현하는 article information으로 이루어진 E-Book Microservices: From Design to Deployment 다운로드 받을 있다.


Microservices article, blog, 소셜 미디어에서의 토론, 컨퍼런스 설명회 등을 통해서 오늘날 많은 주목을 받고 있다. Microservices 가트너의 하이퍼 사이클 상에서 inflated expectation peak 지점을 향해 빠르게 진입하고 있다. 동시에 소프트웨어 커뮤니티 상에서는 Microservices 전혀 새로운 것이 아니라는 시큰둥한 반응도 있다. Microservices 반대론자들은 단지 SOA 다른 이름에 불과하다고 불평하기도 한다. 그러나, 옹호론자이건 회의론자이건 간에 Microservice Architecture Pattern 특히 agile 개발 방법론과 복잡한 enterprise application delivery하는 경우에 굉장한 이점을 가지고 있다.


블로그에서 먼저 microservices design하고 building, deploying하는 7가지 article 통해, microservices 대한 접근법과 전통적인 Monolithic Architecture Pattern Microservices Architecture Pattern 어떻게 다른지 배울 것이다.


7가지 시리즈에서는 microservices architecture 다양한 요소들을 설명할 것이다. Microservices Architecture Pattern 여러분의 프로젝트에 적합한지 아닌지와 상관없이 MSA 장단점에 대해서, MSA 어떻게 적용할 있는지를 배울 것이다.


먼저 첫번째로 Microservice 사용해야 하는지를 살펴보자.


Building Monolithic Applications (통짜 Application 개발)


Uber Hailo 같은 새로운 택시 호출 서비스 브랜드를 구축하고자 하는 경우를 생각해 보자. 사전 미팅을 통해 요구사항들을 수집한 후에, 수동으로 신규 프로젝트를 생성하거나 Rails Spring Boot, Play, Maven 통해서 자동으로 신규 프로젝트를 생성할 것이다. Application 다음 그림에서 보는 것처럼 6각형의 모듈 아키텍처를 가지고 있다.


사용자 삽입 이미지

Application Core에는 서비스, 도메인 오브젝트, 이벤트를 정의하고 있는 모듈로 구현된 비즈니스 로직이 있다. Core 주변에는 외부 세상과 연동할 있는 adapter들이 있다. 예를 들어 adapter 중에는 database 연결할 있는 adapter, 메시지를 처리할 있는 message 컴포넌트 adapter, API 제공하거나 UI 구현한 Web 컴포넌트들과 연동하는 adapter들이 있다.


논리적으로는 모듈화된 아키텍처이지만, Application 하나(monolith) 패키지되어 배포된다. 실제 포맷은 application 개발언어나 framework 달려 있다. 예를 들어 많은 Java Application들은 WAR 파일로 패키지되고, Tomcat이나 Jetty 같은 Application Server 배포된다. 다른 Java Application들은 독립적으로 실행가능한 JAR파일로 패키지된다. 유사하게 Rails Node.js Application들은 디렉토리 계층 구조(directory hierarchy) 패키지된다.


이런 형태로 개발된 Application 거의 대부분이다. 왜냐하면 하나의 Application 개발하는데 특화된 IDE 다른 Tool 이용하여 간단하게 개발할 있기 때문이다. 이러한 Application들은 또한 테스트하는 것도 간단하다. 간단히 Application 실행하여 End-to-End 테스트를 있다. 그리고 Selenium 이용하여 UI 테스트도 있다. Monolithic Application(하나로 만들어진 Application) 또한 간단하게 배포할 있다. 단순히 Application 복사하여 Server 옮기기만 하면 된다. 또한 로드밸런서 뒤에 Application 복사하여 여러 개를 실행함으로 Application 확장할 수도 있다. 프로젝트 초창기에는 동작할 것이다.

2016/08/23 17:35 2016/08/23 17:35
Trackback Address :: http://www.yongbi.net/trackback/745
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret
< PREV |  1  |  ...  62  |  63  |  64  |  65  |  66  |  67  |  68  |  69  |  70  |  ...  566  |  NEXT >