ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MSA에 대한 이해와 컨테이댁 기술의 활용 의도
    카테고리 없음 2020. 3. 8. 04:57

    [MSA에 대한 이해와 공태희 기술 활용 방안] I. 서론 서비스 아키텍처의 관점에서 시계를 뒤로 돌려서 하나 0년 전부터면 IT업계에서 가장 많이 들렸다 이야기는 SOA(Service Oriented Architecture서비스 지향 아키텍처)이었다. 애플리케이션을 서비스 단위로 분할해 미들웨어(ex.ESB 등)를 사용해 연결하자는 뜻이었다. 그 당시 , 모놀리틱 아키텍쳐의 형태로 사용되고 있던 대부분의 아키텍쳐는, 수정이나 유지보수의 문제로 IT환경의 변화에 대처하기 어려웠던 때때로이다. 물론, SOA를 도입해, 비즈니스 대처의 유연성과 민첩성이 현격히 높아진 것은 사실이었다. 하지만 간간이 지나면서 연결된 미들웨어가 SPOF(Single Point of Failure)로 떠오르면서 사람들이 기대했던 만큼의 효율성이 부각되지 않아 SOA가 시들해진 것은 분명하다. 그러나 SOA가 추구하던 서비스 지향이라는 관점은 우강시의 날에도 유효한 개념으로 남아 있다.IT 기술 발전의 시대적 관점에서, 현 시대는 모바하나의 시대로 불리고 있다. 시대별 기술변화를 살펴보면 안전성을 중시하는 엔터프라이즈 시대에서 인터넷과 SNS로 대변되는 오픈소스 시대로 현재는 API, 클라우드, NoSQL 등 경량화되고 빠른 개발이 가능한 다양한 기술을 활용하고 있다. 이러한 기술의 활용은 시대의 변화를 대변하고 있다. 기존과 같이 대용량의 서버를 기반으로 무거운 시스템을 유지하는 것은 기업의 ERP(Enterprise Resource Planning)와 같은 메인 시스템 정도였다. 급속한 기술 변화, 고객의 Needs 변화, 기업의 비즈니스 환경의 변화 등 빠른 트렌드의 변화로 인해 이제는 빠른 배포, 릴리즈, 업데이트가 빈번하게 반복되고 있다. 이를 위해 기업은 서비스를 실현하면서 오전에는 비용의 클라우드와 배포가 간단한 스크립트 언어, 운영 효율화와 자동화 등을 고려하고 있다. 시대 흐름에 맞춰 스크럼(Scrum)과 같은 짧은 주기의 유연한 개발비결론과 프로젝트 중앙에 일시적으로 구성되는 CFT(Cross Functional Team)를 기업의 민첩성을 높이기 위해 사용하고 있다. 이러한 시대 변화의 트랜드에 의해, 서비스를 제공하는 데 있어서, MSA(Micro Service Architecture)의 도입이 활발하게 행해지고 있다. 작금의 기업별 MSA도입의 동향을 보면, 아마존의 경우"Amazon Go" 같은 서지 않고도 제품을 구입할 식료품점 등을 통한 디지털 전환(Digital Transformation)을 가속시키고 있지만 신속히 개별 서비스를 혁신하고 새로 기술 기반의 서비스를 개발·통합하기 위해서 마이크로 서비스 아키텍처를 적용했다. ​ Netflix는 하나 옥 하나, 800만명의 가입자에 일일이 하나 옥 이상의 비디오 스트리밍을 제공하고 있지만 높은 재생 품질을 다운 시간으로 서비스를 목표로 마이크로 서비스 아키텍처를 적용했다. 마이크로서비스에 적합한 조직구성, 클라우드 기반의 서비스 라이프사이클 관리 등을 고려하고 있으며 이를 위해 Service Discovery, Circuit Breaker, API Gateway 등의 기술을 도입했다. 또, Netflix OSS를 발표하고, 기술의 확장 및 외부 커뮤니티와의 지속적 커뮤니케이션을 진행시키고 있다. 국내 소셜커머스 기업의 쿠팡은 부분적인 장애가 서비스 모두 장애로 이루어져 서비스가 부분적으로 스케일아웃하기 어려운 구조로 되어 있으며, 조직이 성장할수록 배포를 기다릴 때마다 비약적으로 증가하는 단점을 개선하기 위해 MSA로 전환하고, 이를 통해 작은 서비스 단위로 개발/테스트/배포할 수 있어 비즈니스 성장을 가속화할 수 있어 서비스의 확장성과 안전성을 적은 비용으로 신속히 확보할 수 있었다. 본 논문은 이러한 흐름에 맞추어 MSA를 구축하기 위한 설계 및 주여 기술을 알아보고, MSA 구현 시 잘 어울리는 컨테이너 기술 중 본인인 도커(Docker)를 활용하는 비결을 알아보겠습니다.II.MSA구축에 대한 이해와 설계/구축/고려 사항 1개. 마이크로서비스 아키텍처의 개념 마이크로서비스 아키텍처는 매우 작은 단위로 작동하는 서비스가 구동되도록 시스템 및 소프트웨어의 구성과 구성 요소와의 관계를 정의한 아키텍처였다. 하봉잉의 아이플 케이션을 구성하는 데는 분할된 다수의 서버 또는 콤테이노히을 통해서 아이플 케이션 기능뿐만 아니라 데이터까지 분리하고 격리된 독립된 환경에서 구성되는 점이 특징이었던 ​ 2.MSA전환 시 사전 준비 및 설계 ​이. 마이크로서비스 아키텍처 설계 밑 준비(1)마이크로서비스 아키텍처 전환의 자기점검-적절하게 구조화된 모놀리틱 애플리케이션을 구축했는가? 마이크로서비스에서 충족해야 할 요구사항을 결정했나? 마이크로서비스를 활용할 수 있도록 팀을 재정비했나?DevOps 및 CI/CD에 대한 모범 케이스를 도입했습니까? - 애플리케이션 내에서 비즈니스 범위를 식별하였는가? 마이크로서비스 오케스트라 및 관리도구와 프로세스를 실현했나? ​(2)규모 확장성(scalability)에 대한 고려 시스템을 MSA의 형태로 구성합니다란 많은 장점과 단점을 동시에 가지고 매장 된다. 규모의 확장성을 결정하기 때문에 스케일 택시 모델을 다양하게 되며 각 방향의 뜻은[그림 1]과 같은이다.


    >


    X축 - Horizontal duplication : 동일한 이미지를 다수 복사하여 많은 업무를 처리 Y축 - Functional decomposition : 기능을 분해하여 여러 개의 머신으로 돌아 상회 설계하여 많은 업무를 처리 Z축 - Data Partitioning : 데이터베이스를 여러 서버로 분할. 불편한 큰 데이터베이스에서 데이터를 찾는 것보다 작은 데이터베이스에서 찾는 것이 효율적. DB사나 딘(Sharding)자가 실험을 완료하고, 기존 시스템에서 어느 부분을 분할할지 판정하면 모노리티크시스템를 마이크로 서비스 아키텍처로 전환하기 위한 사전 준비 단계가 완료되어 기존의 서비스를 마이크로 서비스로 분할하는 단계를 수행하게 되는 것 ​(3)마이크로 서비스 설계 마이크로 서비스 설계가 완료되면 분할된 서비스를 효율적으로 구축/운영하기 위한 설계를 진행할 수 있다.


    >


    본인. 마이크로서비스 아키텍처 설계(일) 마이크로서비스 아키텍처 구성


    >


    환경설정, 서비스 등록, 감지 서비스는 마이크로 서비스의 정보를 동적으로 관리할 수 있도록 지원한다. 서비스 게이트웨이는 클라이언트 요청을 해석하고 가용성을 유지할 수 있도록 부하 분산과 적절한 서비스에 연결하는 라우팅 기능을 지원한다. 또한 마이크로 서비스의 요청 상태와 서킷 브레이커 기능의 실시간 모니터링을 할 수 있도록 지원한다. - 환경설정: 시스템에서 참조해야 하는 환경변수 등을 별도의 저장소로 관리하여 유아플리케이션이 배포된 환경에 관계없이 해당 환경에 적절한 환경정보를 참조할 수 있는 기능을 공급하는 서비스 - 서비스 등록 및 검지 : 마이크로서비스가 시스템 등록됨을 자동으로 감지하여 서비스 게이트웨이가 자동으로 인지할 수 있도록 지원하는 기능 - 서비스 게이트웨이 : 요청에 따라 해당 요청에 필요한 서비스에 연결한다. 클라이언트 관점에서는 서버에 접속하기 위한 관문이며, 서버 측면에서는 클라이언트 리퀘스트의 부하 분산과 대응하는 적절한 마이크로 서비스를 찾아내는 역할을 완수하는 것-서킷 브레이커:특정 서비스가 정상적으로 동작하지 않는 경우, 다른 기능으로 대체 수행시켜 장유아를 회피하는 기능.엔드유저면에서는장유아의형세를인지할수없는sound


    >


    - 큐잉시스템: 마이크로서비스 간의 데이터 전달이 필요하고 느슨한 결합을 위해 MQ 사용. 업무 메시지의 전달은 물론, 로그 데이터도 메시지 시스템에 흘려 처리할 수 있는 sound. 서비스에 직접적인 부하를 주지 않고 필요한 서비스만 구독하여 사용하면 되는 것이 강점-폴리그랫 프로그래밍과 폴리그랫 퍼시스턴스: 서비스별로 목적과 특성에 맞는 언어와 기술을 사용. 회원관리는 RDB, 문서형태의 콘텐츠는 key-value DB를 이용. 각 서비스의 특성은 최대한 보장하고 이에 맞는 기술의 형태로 구성 ​(2)API설계 마이크로 서비스는 각각 독립성을 가지고 작동하므로, 각각 독립된 버전을 갖고 서비스를 체계적으로 관리하려면 마이크로 서비스 API을 정의하고 발발하는 서비스 바루 바루 자카리아와 서비스를 사용하는 소비자 간에 잘 정의된 마이크로 서비스 API체계가 필요하다.​


    >


    (3)검사 시스템 API의 명세를 토대로 수행해야 하며, 서버/클라이언트의 규격이 정상 여부, 시스템적으로 자동화 및 모니터링이 필수였다


    >


    (4)지속적 통합 및 배포 시스템 설계, 소스 코드는 저장소에서 별도의 브랜치의 형태로 관리하고 파이프 라인 전략과 자동화되어 시각화할 수 있는 시스템이 필요하다.


    >


    (5)모니터링 시스템 설계 ​-서비스 모니터링 각 개별 서비스의 상태 정보가 모니터링되어야 한다. 클라이언트의 요청을 때때로 모니터링하여 때때로화하고, 개별 서비스의 응답 지연이 일어날 때에는 즉시 해당 접근 경로를 차단하여 다른 경로로 우회하도록 하는 서킷 브레이크 기능과 상태 정보 등을 확인할 수 있도록 구성-디브오브스 모니터링: 마이크로 서비스 환경에서는 서비스 개발과 배포 주기가 짧아지고 모니터링 해야 하는 대상도 많아지므로 운영 측면에서 장점


    >


    다. 마이크로서비스 아키텍처의 구현과 배포-애기플리케이션 배포의 관점에서의 고려사항 마이크로서비스는 독립된 서비스이며, 이를 실행하기 위한 환경은 VM과 컨테이 당신 기술을 생각할 수 있다. 분할된 서비스가 많지 않으면 VM에 WAS Instance를 교차점에 배치하여 효율성과 가용성을 확보하는 방법도 가능하지만 수백 개 이상의 마이크로서비스의 운용에 있어서는 VM보다 도커와 같은 컨테이너의 당신의 기술을 고려하는 편이 서비스 관리, 고가용성 면에서 유리한 면을 가지고 있다. 도커 기위치, 도커 레지스트리, 도커 네트워크 등의 에코 시스템에 의해 마이크로 서비스의 발발과 배포, 실행이 가능하다.​


    >


    III. Immutable Infrastructure, Docker 기업의 비즈니스 변천에 기민하게 응답하기 위해 마이크로서비스로 구성된 마이크로서비스 아키텍처는 수평적 확장이 가능한 탄력적 아키텍처(Resilience architecture)로 설계되어야 합니다. 급속하고 급격한 변천에 대한 때때로 경제적 비용을 모니터링하기 위해 프로그램의 효율적인 설계, 구축, 배포, 운영이 필요하다. 이를 통해 잘 구분된 기능을 모듈별로 분할하여 추상화 하여 소프트웨어의 성능을 향상시키고 유지보수를 효과적으로 하기 위한 SW설계 및 구현기법이 진행되어야 합니다. 모듈의 독립성을 스스로 맞는 개념으로 모듈 내부 구성원간의 관련도인 응집도는 높아야 하며 모듈 내부가 아닌 외부 모듈과의 관련도를 의미하는 결합도는 moning 해야 합니다.


    >


    응집도는 높을수록 1의 기능을 수행하는 모듈에 되고, 결합도 아침을 수록 모듈 간의 관계는 자료 수준의 간단한 변수 파라미터로 교환하는 형태가 필요하고 이 때문에 MSA에서는 API게이트 웨이가 REST기반의 메시지 교환, 그 때문에 비동기 방식의 메시지 큐를 사용합니다. 마이크로 서비스 아키텍처에서는 응집도를 높이기 위해서 기능 설계, 구현, 배포 면에서 응집도를 위한 기능 간의 독립성을 확보할 가상화 기술이 필요하다. ​ 1. 하드웨어 가상화 기술 ​ 가상화(Virtualization)기술은 가상 머신 기반으로 리눅스 콩테 이당싱 기반의 가상화 기술로 나누어진다. 가상 머신 베이스의 가상화는 호스트 방식과 베어메가면 방식을 사용하며, 가상화 방식 전체 게스트 운영 체제(OS)의 설치가 필요하다. 이 부분이 리눅스 컨테이너 기반의 가상화 기술과 큰 차이를 보여준다. 콩테 이당싱 기술은 2000년부터 'FreeBSD Jail','Unix FreeBSD','리눅스 LXC'의 하위 시스템 분할의 아이디어에서 시작됐고, 예 전체 부지 사용된 기술이었다 리낫크스콤테이당 신고 1의 호스트 운영 체제 위에 여러개의 격리된 시스템 환경을 구성할 수 있는 운영 체제 수준의 가상화 기술이었다 리눅스 콘테이던 신성한 컨트롤 그룹(cgroup)과 네 개 입니다 스페이스(namespace) 기능을 사용하여 운영환경을 고립시키고 관리합니다. 컨트롤 그룹은 물리적인 하드웨어의 자원을 프로세스 그룹 단위로 제어하는 기능이었다. 컨트롤 그룹을 통해 사용자는 CPU 시간, 시스템 메모리, 네트워크 대역폭과 같은 자원이나 요란 자원의 조합을 실행 중인 프로세스 사이에서 할당하는 것이 가능하다. 이를 사용하여 시스템 관리자는 시스템 자원 할당, 우선순위 지정, 거부, 관리, 모니터링 등의 제어가 가능하다. 네임니다스페이스는 컨테이너마다 격리된 공간을 가질 수 있도록 도와주는 기술이었다."PID", "NET", "MNT", "UID", "UTS", "IPC"에 해당하는 시스템 구성요소의 네임입니다.공간을 제공하여 각 공간별 할당 및 관리가 가능하다.


    >


    게스트 운영 체제의 유무 차이에 따라 성능, 배포, 운영 측면에서의 영향이 다르다. 게스트 오퍼레이션 체제가 설치되어 있지 않으며 프로세스 레벨의 분리가 가능한 컨테이너를 사용하는 가상화 방식은 성능 면에서 게스트 오퍼레이션 체제에 의한 성능 저하가 발생하지 않기 때문에 경량화 가상화로 분류된다. 컨테이너를 발생시키는 것은 단순히 프로세스를 개시하기 때문에 일방반적인 프로세스의 실행과 관계없이 빨리 수행할 수 있다. init를 가장 먼저 시작하는 과일의 각종 데몬을 수행할 필요 없이 필요한 프로세스만 존재하는 환경을 만들 수 있다. 그리고 이 콘테이저의 기술 기반의 도커 가상화는 게스트 운영체제 없이 배포를 하기 때문에 설치되어 있는 선구 자체의 용량에 의한 네트워크 부하나 배포 때때로 큰 이점을 나타내고 있다. 컨테이너 기반의 인프라를 사용하기 때문에 다양한 환경에 대한 종속성을 상념하지 않고 운용이 가능하다. 한편, 반대로 Product/QA/Dev 환경의 차이로 인해 운용 전환 시에 복잡한 의문이 생기며, 이를 해결하기 위해 같은 작업을 몇 번을 실행해도 같은 결과에 수렴되는 동등성을 갖춘 Immutable infrastructure가 필요하다. 이를 실현하는 대표적인 기술이 컨테 이 잘께 기반의 어디 가상화였다 ​ 2. 어디의 개념과 구성 요소 ​ 어디는 리눅스 콩테 이 잘께(LXC)을 기반으로 시작하고 LXC작업과 개선된 개발자 도구를 결합하고 콤테이 자네의 사용자 친화성을 높이고, 이를 통해서 대중이 쉽게 이용할 수 있도록 한 오픈 소스 플랫폼이다. 0.9버전에서 직접 자율적으로 만든 libcontainer기술을 사용했습니다. 도커는 도커 클라이언트, 도커 선점, 도커 데몬, 도커 레지스트리, 도커 네트워크와 오케스트레이션 및 모니터링이 가능한 에코 시스템으로 구성된다.


    >


    -어디 클라이언트:도코콤테이노히을 관리하고 실행하는데, 데몬과 상호 작용하는 Binary파 1로 CLI기반이나 Remote API에서 관리합니다. ​-어디 다시 테이:유니온 파 1시스템의 형태로 필요한 프로그램과 라이브러리 소스를 설치한 뒤 파 1로 만든 것으로 상태를 가지지 않고 다르지 않다. 이미 종이는 베이스 이미지(Base image)와 도커 이마지로 구분될 수 있다. 베이스 모우코는 리눅스 배포판의 커널을 제외한 영역을 볼 소지하고 기동할 때 최소한의 부하로 실행될 수 있고 어디 다른 것은 베이스 이제부터 위에 필요한 라이브러리와 실행 파 1위를 추가하거나 불필요한 파 1을 삭제하고 만든 볼소지이었다 운영 체제에 보니까 벌써 일은 1종의 실행 파 1과 비슷하다. ​-도코콤테이노히:이제 일이 독립한 공간에 할당하고 실행한 런타임 객체로서 운영 체제의 라이브러리와 아이·케이션을 마련하고 1의 객체에서 실행합니다. 운영체제 면에서는 프로세스와 유사하다. - 도커 데몬: 호스트에 설치되어 클라이언트와 상호작용하여 도커 컨테이너 희를 관리하는 프로세스였다 - 도커 레지스트리: 도커 화상을 관리할 수 있도록 제공된 저장 공간이었다. 이 공간을 통해 도커 이미지를 공유하고 실행 환경을 구축할 수 있다. 개발자가 도커 이미지를 도커 레지스트리에 올리면 그것을 필요로 하는 시스템 담당자는 다운로드를 하여 필요한 환경을 구성할 수 있다. 만든 이미지를 많은 사람들과 공유할 수 있도록 길트허브와 대등한 방식의 도커허브(Dockerhub)를 사용한 이미지 버전 관리 및 이미지 공유가 가능하다. 도커 네트워크: 네트워크 터널링을 통해 서로 다른 호스트 간의 컨테이너 희귀 데이터 전송을 위해 네트워크 오버레이 기술을 활용한 가상 네트워크 환경이었다. 외부의 물리 네트워크에서 도우루오오은 연결은 물리 NIC에 연결되어 어디 내부 네트워크 브리지의 역할을 하는 어디 0에 연결된다. 어디 0는 어디 내부 콤테이노히도우루의 virtual NIC와 연결되어 접속이 가능하다. NAPT기능은 1의 IP에서 가상의 다양한 IP및 포트와 변환하는 기능으로, 이를 이용하여 특정 IP로 특정의 포토 서비스를 요청하면 사설 IP에 포트까지 다른 콤테이노히에 연결이 가능하다. -오케스트레이션:돗카ー콤포ー즈를 웜, 바 네티스을 통해서 멀티 컨테이너 공주를 조직화하고 연결하는 기능에서 MSA아이 프리케ー)의 가용성 로드 밸런싱 기능을 실현합니다. ​ 3. 어디 기반 마이크로 서비스 배포 어디의 특징인 확장성, 표준성을 활용하고 마이크로 서비스의 유연하고 탄력적인 서비스 배포가 가능하다. 어디는 다시 것을 그대로 콤테이노히에서 유연하게 실행이 가능하며 컨테이너 희라는 표준성을 확보한 상태로 배포가 진행되므로 묘크도우은성을 보장할 수 있도록 동 1 하게 다양한 환경에서 배포가 가능하다.


    >


    >


    변경된 도커 이미지 배포 시 서비스를 내려야 하기 때문에 서비스 중단의 단점이 발생한다. nginx와 haproxy를 이용한 로드 밸런싱 기반의 카과인리 배포와 블루 그린 배포 유형에 따라 서비스의 잦은 변경 및 배부에 유연하게 대응할 수 있도록 자동화된 배포 전략을 잘 활용한 안정적인 서비스 운영이 필요하다.IV. 결론 본고에서는 실무적인 관점에서의 MSA 기술과 도커를 활용한 MSA에 대해 고찰했다. MSA는 짐이 큰 서비스를 독립적인 역할을 하는 작은 단위의 서비스로 분리할 수 있어, 이기플리케이션 변경이 쉽고 효율적인 자원 사용이 가능하다는 이점이 있다. 이들 과인 시스템의 아키텍처나 프로세스가 조직문화에 영향을 미쳐 도커와 같은 인프라가 뒷받침되어야 구현이 가능하기 때문에 MSA의 도입에는 조직문화, 인프라 등 다양한 방면에서 점검이 필요하다.첫째, MSA인프라로 활용되는 도커의 경우 사용목적에 따라 데이터 저장방식을 선택해야 합니다. 어디의 저장 방식은 volume, bind mount, tmpfs의 3가지 방식이 존재하는 것입니다. volume 방식은 도커가 관리하는 호스트 파일 시스템의 일부에 데이터가 저장되어 Non-Docker 프로세스가 파일 시스템의 해당 부분을 수정할 수 없게 하고 데이터를 도커 내에 존속시킨다. bind mount 방식의 경우 데이터를 호스트 파일 시스템 어디에나 저장할 수 있다. tmpfs mount 방식은 호스트 시스템의 메모리에만 데이터가 저장되고 호스트 파일 시스템에는 저장되지 않는다. bind mount 방식의 경우 Contatiner에서 실행 중인 프로세스가 호스트 파일 시스템의 중요한 시스템 파일에 접근 가능하고 디렉토리의 발생, 수정, 삭제 명령을 통해 변경이 가능하기 때문에 호스트 시스템의 Non-Docker 프로세스에 충돌이 발생하여 과도한 보안에 영향을 줄 수 있으므로 bind mount 방식보다는 volume 기법을 권장합니다. 둘째, MSA 모델에 대한 디자인 수행 시 현업 종사자와 개발팀 간의 Context 공유를 위해 DDD(Domain Driven Design)를 적용해야 합니다. 구축 대상 시스템의 비즈니스 업무와 실제 비즈니스가 어떻게 돌아가는지 파악하기 위해 UML 등의 모델을 이용합니다. 현업 종사자, 개발팀, 디자인팀 간에 명확한 의사소통을 통해 용어가 정의될 때마다 용어사전을 각종 산출물이 과도한 회의 시 활용함으로써 혼란이 발생하지 않도록 해야 합니다.셋째, 개발과 운영 조직을 하한으로 묶어서 빠른 의사소통이 가능한 데이브 오브 스(Dev Ops)를 적용해야 합니다. 기존의 모노리틱 아키텍처는 어기플리케이션의 일정 부분을 고쳐도 전부를 다시 빌드하여 배포하는 변경 주기를 가지고 있으며, 때때로 시간이 지남에 따라 모듈화가 어려워지는 반면 마이크로서비스 아키텍처는 복잡한 대규모 시스템을 간단하고 독립된 단위로 결합 해제하기 때문에 어기플리케이션에 대한 이해와 개발 및 테스트가 용이하다. 이러한 마이크로서비스 아키텍처를 실현하기 위해 조직문화에 DevOps를 적용하면 협업, 보통화, 자동화를 통해 개발조직과 운영조직 간의 협업과 의사소통이 가능해진다. 본 논문은 마이크로서비스에 대한 실무적 적용방법에 대해 점검하고 이를 통해 마이크로서비스에 대한 특성을 파악하였다.마이크로서비스는 서비스 크기가 작아지고 중앙에서 통합, 조정하는 기능이 없어 서비스 연계 시 복잡도가 증가하고 마이크로서비스 간 통신이 빈번해져 네트워크 자원을 많이 소모하며 같은 프로세스를 마이크로서비스별로 구현할 경우 중복된 노력을 할 기회가 있습니다. 이 때문에 복잡도에 따른 관리 노력을 줄이기 허브로 만들기 위한 자동화 툴을 최대한 활용하여 서비스 간 중복을 최소화하고 자원 소모를 줄이고 서비스 간 경계를 잘 정의하기 허브로 만들기 위한 도메인 주도의 설계 인재 확보가 필요하다. 또, 시장 환경의 변천에 따라 중소기업이 기민하게 대응할 수 있도록, 서로 조직적인 구조인지, 방해가 존재하는지를 점검해, 시장 환경에 유연에 대응할 필요가 있다.[참고문헌]자바 기반의 마이크로 서비스의 이해와 아키텍처 구축하는 것, 20하나 8. 하나 0. 하나 9.pp. 하나 5-20.[2]Apache Software Foundation, 카프카 클러스터 구조, 20하나 7.[3]초보를 위한 어디 안내서-어디란 무슨?20하나 7. 하나. [4]Hystrix-Circuit Breaker실전, 히스 투 릭스의 계기반 사례, 20하나 7.3.[5]Digital Labs Tech,[Docker기본(5/8)]Volume을 활용한 Data관리, 20하나 8.9.[6][커버 스토리] 뚱뚱한 오푸스와 마이크로 서비스, 컴퓨터 월드, 20하나 7.4.[7]Circuit Breaker유형의 구성, MSA서비스 개발 팀 이야기, 20하나 8.3.[8]API게이트 웨이를 이용한 설계, MSA아키텍처를 위한 API게이트 웨이의 이해, 20하나 5.3.[9], 크리스 리처드슨, Scale Cube모델을 통한 서비스의 분할, 스케일 큐브, 20개 4. 4.[하나 0]소프트웨어 공학 포털 프로젝트의 수행과 재사용편, 20하나 6.2.28.[하나하나]이재홍 가장 빨리 망그와잉눙 Docker, 동행자 20개 4. 하나하나 pp. 하나 5하나 6.[하나 2]Docker docs, Docker Overview part, Docker architecture, 20하나 9.[하나 3]이츄은소프, 초보를 위한 어디 안내서-이미지하고 배포하는 것, 20하나 7.2.[하나 4]IT월드, 어디와 어디 컨테이너의 이해, 20하나 8.9.[하나 5]swagger UI을 통한 API테스트,[Swagger]RESTful API문서 만들기, 20하나 7.4.[하나 6]아마종우에프소비스, 지속적 통합 및 배포 프로세스, 20하나 8.4.[하나 7]가상화(Virtualization)의 내부 기술, 가상화의 이해:가상화 기술 ABC, 2008.6.[하나 8]Euraka의 등록, 탐색, 연결 구조, 스프링 쿠르 클라우드 config-server이야기, 20하나 6.7. ​ 출처:https://www.itfind.or.kr/WZIN/jugidong/하나 887/file2645276227345330267하나 88702.pdf


    댓글

Designed by Tistory.