마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

마이크로 서비스 아키텍쳐(Micro Service Architecture)는 줄여서 MSA라고 부르며 서비스를 기능별로 작게 쪼개는 서버 아키텍쳐의 디자인 패턴으로, 기본 컨셉은 하나의 서비스는 한가지 일에 초점을 맞춘다는 것입니다. 또 다른 서비스와의 연계는 API로 구현합니다.

마이크로 서비스 아키텍쳐 구현 프로세스는 크게 4단계로 나눌 수 있는데, 구체적인 처리 절차는 다음과 같습니다.

STEP 1. 기능별로 서비스 어플리케이션 구분

마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

STEP 2. 서비스 이미지 개발

- 이때 각각의 서비스 어플리케이션은 수샙, 수백여개의 서비스들로 구성되며, 각 서비스는 적절한 CPI, Memory, I/O리소스를 제공받아야 하고, 배포는 빠르고 효율적이어야 함. 참고로 배포 방법은 서버마다 전체 서비스를 적용하는 방법, 서비스를 VM위에 적용하는 방법, 서비스를 도커 콘테이너 위에 적용하는 방법 등이 있습니다.

- 서버별로 서비스를 적용하면 배포 및 서비스의 시작속도가 빠르다는 장점이 있습니다. 그러나 한 서비스 인스턴스가 CPU와 메모리를 모두 사용하는 문제점이 있습니다.

마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

- 서비스를 VM에 적용하면 서비스별로 고정된 자원을 사용할 수 있고 클라우드 인프라 기능을 활용할 수 있다는 장점이 있습니다. 반면에 의도 해던 기능 외의 다른 VM의 기능은 낭비된다는 단점이 있고, 또 VM 자체를 관리해주어야 하는 오버해드를 가지고 있습니다.

마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

- 마지막으로 서비스를 도커 콘테이너에 적용하는 방법이 있는데, 이는 VM의 장점을 거의 포함하면서 VM 보다는 가볍다는 잇점이 있습니다. 반면에 VM보다는 다소 기능이 떨어 질 수 있습니다.

마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

STEP 3. 클라이언트에서 필요한 서비스 선택

- 실제 서비스 설계시 클라이언트에서 어떤 기능을 필요로 하는지 모델링을 할텐데, 이때 기능에 중복성을 없애면서 통신을 최소 하는 방향으로의 설계가 바람직합니다.

- 최적화 된 클라이언트의 구현 방법으로 API Gateway와 IPC(Inter-process Communiation)의 두가지 방법이 있습니다.

- API Gateway는 내부 시스템 아키텍쳐를 캡슐화 해서 클라이언트에 적합한 API를 제공하는 방식인데, 이는 주로 Netty, Vert.x, Node.js, Nginx와 같은 비동기, 논블로킹 I/O를 지원하는 플랫폼으로 개발됩니다. 또 통신 규격의 다양화로 이중 가장 효율적인 것을 선택할 수 있다는 장점이 있으며, Auto Scaling 및 IP 주소 변경에 유연하게 대응할 수 있다는 장점이 있습니다. 마지막으로 서비스 오류 핸들링을 용이하게 할 수 있다는 장점이 있는데, 넷플릭스의 Hystrix가 바로 그 예입니다.

마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

- IPC(Inter-process Communication)은 서비스-클라이언트, 서비스-서비스간 통신 구현 방식인데, 구현 방법에 따라 동기적(request)/비동기적(message-based) 방식으로 나뉩니다. 주로 HTTP Rest나 Thrift 프로토콜을 많이 사용하며, 서비스 오류 핸들링이 용이하다는 장점이 있습니다.

마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

STEP 4. 인스턴스 선택/관리

- 서비스가 가상화되먄 여러 인스턴스로 실행 시킬 수 있습니다. 이때 Auto Scaling 혹은 장애 등으로 IP 주소가 변화될 수 있습는데, 장애를 막기 위해 서비스 레지스트리에 자신의 상태를 전달합니다. 이때 상태 전달을 hearbeat이라고 호칭합니다.

마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법

 

마이크로 서비스 아키텍쳐의 장점을 요약하면 다음과 같습니다.

  • 빠른 복구
  • Scaling
  • 서비스 확장 용이
  • 대규모 장애 확률 감소
  • 협업 용이

 

반면에 마이크로 서비스 아키텍쳐의 단점은 다음과 같습니다.

  • 복잡함
  • 트렌잭션 관리 어려움
  • 다중 테스트
  • 소규모 장애 확률 증가

 

 



facebook posting twit

  • AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)
  • 넷플릭스 서비스 오토스케일링 아키텍쳐
  • 플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 – InnoDB는 인메모리 캐싱을 하는 고성능 솔루션
  • 아틀라시안 뱀부(Atlassian Bamboo)를 활용한 CI(Continuous Integration) 환경 구축
  • 아키텍쳐 패턴이란 – 소프트웨어 디자인 패턴
  • AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

    인터넷 기반으로 서비스를 하는데 서버 없는 아키텍쳐가 있다고 하여 이를 올려 봅니다.

    제목에 서버가 없다고 했지만, 서버가 아예 없는건 아닙니다. 정확한 표현은 최소화했다고 보는 것이 맞을 것 같습니다.

     

    아래의 사례는 Amazon S3를 기반으로 하는 서비스 아키텍쳐 입니다.

    AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

    Amazon CloudFront를 통해 콘텐츠르 배포하고, Amazon API Gateway를 이용하여 필요한 기능은 AWS Lamda를 이용한 사례입니다. AWS Lamda는 하나의 함수를 코드조각으로 구성하여 실행하는 실시간 대응형 서비스입니다.

     

    아래의 사례는 모바일 앱의 사례인데, 기능이 좀더 복잡하여 Amazon API Gateway로 분기하여 AWS Lamda를 호출 한 사례입니다.

    AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

    아래의 사례는 최소한의 기능만 가지고 서비스를 하는 마이크로 서비스의 사례입니다.

    AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

    뭐, 서버가 없다고 했지만, 이 모든것을 Lamda로 대체 가능하다고 주장하고 있습니다. 이를 위해서는 소프트웨어 구현 방법이 기존과는 달라져야 합니다.



    facebook posting twit

  • 마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법
  • 넷플릭스 서비스 오토스케일링 아키텍쳐
  • 플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 – InnoDB는 인메모리 캐싱을 하는 고성능 솔루션
  • 아틀라시안 뱀부(Atlassian Bamboo)를 활용한 CI(Continuous Integration) 환경 구축
  • 아키텍쳐 패턴이란 – 소프트웨어 디자인 패턴
  • Interpreter pattern은 SQL 또는 통신프로토콜을 기술하는 언어 구현시 주로 이용되는 아키텍쳐
  • 넷플릭스 서비스 오토스케일링 아키텍쳐

    글로벌 비디오 서비스 강자인 넷플릭스는 아마존 AWS를 운영환경으로 사용합니다.

    그들이 온라인 비디오 시장에서 티격태격하면서 경쟁하고 있지만, 아이러니하게도 넷플릭스는 아마존과 끈끈한 관계를 유지하고 있습니다. 아마도 아마존은 넷플릭스덕분에 그들의 아마존 프라임 비디오 서비스를 위한 환경 구축을 북미 전역에 쉽게 얻었을 것이라는 생각을 하게 만듭니다. 

    서비스 트래픽에 따라 서버 인스턴스를 늘렸다 줄였다 하는 오토스케일링(AWS Auto Scaling)을 기본으로 쓰고 있는데, 이는 다른 서비스 아키텍쳐와 다를 바가 없습니다.

    다만, 트래픽이 증가한다고 무작정 오토스케일링을 하지 않고, 그들의 정책에 따라 EC2나 DynamoDB등의 키 컴포넌트를 스케일인, 스케일아웃을 한다는 것이 특징이라고 할 수 있습니다. 아래 그림에서는 Titus Control Plane이라 불리우는 넷플릭스 자체 시스템이 그러한 정책을 관리합니다.

    넷플릭스 서비스 오토스케일링 아키텍쳐

    또 하나 눈여겨 볼 것은 모바일/텔레비젼과의  통신은 Open API를 통해서 하지만, 자체구축하지 않고 Amazon API Gateway를 사용했습니다. 그럼으로 인해서 비용절감 및 보안(Security)을 해결하는 일타이피( ? ) 전략을 구사하고 있습니다.

    참고로 위의 스핀네이커(Spinnaker)는 node.js 기반으로 동작하는 넷플릭스의 CDS(Continuous Delivery System)입니다.



    facebook posting twit

  • 마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법
  • AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)
  • 플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 – InnoDB는 인메모리 캐싱을 하는 고성능 솔루션
  • 아틀라시안 뱀부(Atlassian Bamboo)를 활용한 CI(Continuous Integration) 환경 구축
  • 아키텍쳐 패턴이란 – 소프트웨어 디자인 패턴
  • Interpreter pattern은 SQL 또는 통신프로토콜을 기술하는 언어 구현시 주로 이용되는 아키텍쳐
  • Blackboard pattern은 오늘날 NLU(Natural Language Understanding)이나 차량인식 등에 응용되는 아키텍쳐
  • Windows 10 – 로컬디스크 E 용량부족 메시지 뜨는 문제

    윈도우 10 업데이트 후 갑자기 전에 안보이던 로컬디스크 E라는 것이 생기고 용량이 부족하다는 메시지가 자꾸 뜨는 분들 계실겁니다.


    이런 고통스러운 메시지가 뜨시는 분들은 다음과 같이 조치를 취해주시면 더 이상 이 메지시를 보지 않으셔도 됩니다.

    1. 좌측 하단의 시작버튼 클릭
    2. CMD라고 치면 명령프롬프트라고 뜨는데 이때
      • 마우스 오른쪽 버튼으로 클릭하고 “관리자모드로 실행”
    3. 명령 프롬프트가 뜨면 아래 명령어를 입력하고 엔터
      mountvol e: /D


    이러면 E 드라이브가 없어지고 더 이상 용량부족 메시지는 안뜹니다.



    facebook posting twit

  • 샤오미 YI 웹캠 덕분에 카메라에 녹화된 아버지의 모습을 복원하여 볼 수 있어 감사
  • 추억의 스타크래프트 사무실에서 한판 뜨기 – IPX가 안되어 방법을 찾아 보았습니다
  • 갑자기 컴퓨터가 너무 느려져 내가 한 일 – 백신프로그램 하나를 제외한 나머지를 다 지우니 해결
  • 중요한 문서, 사진 등 윈도우즈 파일 자동 백업 방법 – SyncToy 와 작업 스케줄러로 자동 백업 가능해
  • 엑셀(EXCEL) 사용시 한자(중국어)를 한글로 번역하는 방법
  • QL-700 라벨 프린터로 인쇄시 통신 오류가 뜰 경우
  • 무시게임

    아마도 누군가에게 무시 당하여 없는 사람 취급 당한다면, 상당히 기분 나쁠 것 같습니다.

    무시게임이라는 것이 존재한다면, 이건 집단 따돌림(일본어로 이지매)일텐데… 이건 참으로 나쁜 짓입니다.

    어떤 식의 무시게임을 한다는 것인지, 작품 내용도 보기 전에 후덜덜… 하는 것 같네요.

    무시게임

    시작은 두 여자로 했는데, 남자가 들어오네요.


    무시게임


    저 의미심장한 표정은 무슨 의미일까요?


    저러면 상당히 부담스러워지죠…


    무시게임


    드디어 무시게임이 시작 된 모양입니다.


    무시게임


    저 분노의 표정을 보세요.


    무시게임

    뭐 저딴것들이 다 있죠?

    무시게임

    이제는 친구들까지 무시를 하네요

    무시게임

    헐… 이쯤되면, 갑자기 분위기가 싸해지는데요…

    무시게임

    옴마야-

    무시게임

    무시게임


    이거 참으로 너무 황당한 결말이네요.



    facebook posting twit

  • 딸이 그리워 사진을 합성한 엄마
  • 부동산 업자가 말하는 최순실씨
  • 2040년의 메리크리스마스 – 간만에 본 감성을 자극한 아름다운 이야기
  • 밤에 죠깅하시는 분들이 경험하실 가능성이 있는 기묘한 이야기
  • 지하철 막차를 애용하시는 분들에게 생길 수 있는 기묘한 이야기
  • 플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 – InnoDB는 인메모리 캐싱을 하는 고성능 솔루션

    오라클 홈페이지에 가니 플러거블 스토리지 엔진 기반으로 동작하는 MySQL 아키텍쳐 그림을 볼 수 있었습니다. 플러거블(Pluggable)이라 함은 스토리지 방식을 선택할 수 있다는 것인데요. 이는 각각의 스토리지가 컴포넌트처럼 동작한다는 의미를 내포합니다.

    플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 - InnoDB는 인메모리 캐싱을 하는 고성능 솔루션

    MySQL 5.5.5 이전 버젼에서는 MyISAM이 기본 스토리지 엔진이었습니다, 그런데 5.5.5부터는 InnoDB가 기본적으로 붙도록 바뀌었습니다. 쓰는 입장에서는 별 차이를 느낄 수 없을 것이라 생각됩니다만, 고도화 된 연산을 하는 부분에서는 성능차이가 발생 할 수 있을 것으로 생각됩니다. 즉, 개발된지 오래 된 MyISAM은 성능적으로 좀 느린 피드백을 줄 가능성이 높습니다. 그렇지만 256TB의 대용량을 지원 및 검색 기능은 무시 할 수 없을것 같군요.

    MyISAM 스토리지의 기본피쳐는 아래와 같습니다.

    플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 - InnoDB는 인메모리 캐싱을 하는 고성능 솔루션

    이와 비교할만한 DB로 InnoDB를 살펴봅시다.  보시는 바와 같이 스토리지는 64TB로 제한적이지만 주 메모리에 데이터와 인덱스(Index)를 상시 캐싱(Caching)하는 구조로 인한 퍼포먼스상의 잇점을 무시할 수 없을 것 같습니다. 즉, 인덱싱이 잘 되어져 있는 DB를 쓰시고 계신다면 설계시 감안했던 모든 잇점을 다 살리실 수 있을 것입니다.

    플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 - InnoDB는 인메모리 캐싱을 하는 고성능 솔루션

    좀더 자세한 기술적 자료는 아래 링크를 참조하세요.

    https://docs.oracle.com/cd/E19957-01/mysql-refman-5.5/storage-engines.html



    facebook posting twit

  • 마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법
  • AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)
  • 넷플릭스 서비스 오토스케일링 아키텍쳐
  • 아틀라시안 뱀부(Atlassian Bamboo)를 활용한 CI(Continuous Integration) 환경 구축
  • 아키텍쳐 패턴이란 – 소프트웨어 디자인 패턴
  • Interpreter pattern은 SQL 또는 통신프로토콜을 기술하는 언어 구현시 주로 이용되는 아키텍쳐
  • Blackboard pattern은 오늘날 NLU(Natural Language Understanding)이나 차량인식 등에 응용되는 아키텍쳐
  • MVC(Model-view-controller) pattern은 Django, Rails와 같은 웹 어플리케이션 개발에 주로 응용되는 아키텍쳐
  • 2018년의 다이어트의 새로운 코드 – 위를 작게만들어 다이어트 한다

    서점가를 돌아다니다 "다이어트의 종말”이라는 책을 발견했습니다

    이 책에서는 위를 작게 만들면 살을 빼고 싶지 않아도 살이 작아진다고 주장하고 있는데요. 심지어 위가 작아지면 요요현상도 나오지 않게 되고, 식사량 자체가 줄어들기 때문에 으레 찾아오는 폭식과 체중증가가 나올 수 없다는데..

    2018년의 다이어트의 새로운 코드 - 위를 작게만들어 다이어트 한다

    그렇다고 해서 위절제수술을 하는 터무니없는 가이드를 하지는 않습니다만, 위절제수술이 다이어트테 도움이 된다는 보고는 여기저기서 본 것 같습니다.

    어떠한 방법으로 위를 작게 만들 수 있는지… 또, 이 책이 도움을 줄 수 있는지… 이것이 또 어떠한 바람을 일으킬지 궁금합니다.



    facebook posting twit

  • 다이어트를 한다면 절대 제한해야 할 음식들 – 떡라면, 빵, 흰쌀밥 등 탄수화물이 듬뿍 들어 있는 음식들
  • 근육과 체지방 – 같은 몸무게라도 다른 몸매를 가지게 하는 비결은 체지방을 줄이고 근육량 늘리는 것
  • 살이 찌는 체질은 유전적으로 우월한 DNA를 가져서 그런 것–영국의 한 연구기관에서 과학적으로 이를 검증해, 반대로 골룸같은 말라깽이들은 살찌려면 엄청난 노력이 필요해
  • 토크쇼에서 나온 티아라 지연의 웃긴 장면 – 아이돌이 뽑은 최고 미인은 지연, 2위는 수지 – 웃겨야 산다라는 간판이 있어 더 웃기네요
  • 어느 핸드폰 매장의 무리수 – 군대를 또 간다니?
  • 복면이 아닙니다 – 예뻐지는 중입니다

    길거리에서 예뻐지는 중이라며 홍보하는 한 젊은 친구의 사진…

    이거 매우 참신한 아이디어입니다

    언제 찍은 사진인지 모르겠으나, 아래 사진에 나오시는 분을 뽑으신 분은 훌륭한 마케팅 직원을 뽑으신 것 같습니다.

    복면이 아닙니다 - 예뻐지는 중입니다

    왠지 저도 저 마스크팩을 하나 구입하고 싶네요



    facebook posting twit

  • 유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다
  • 저주받은 바지
  • 소백산에 먹이가 없어 도심에 내려온 여우
  • 선수출신 신현준님 아랍인으로 오해 받은 사건
  • 속보에 등장한 유명인의 그녀 – 어이 없는 종편뉴스의 속보로 네티즌은 정다운 댓글로 대화 나눠
  • 유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    유리창에 눌린 외국 스타의 익살스러운 얼굴을 보고 정보의 바다를 좀 찾아 보았습니다.

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    엇!? 아래의 사진은 일본 영화의 한 장면인것 같습니다. 오른편에 앉은 남성분은 기무라 타쿠야.

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    아래의 사진도 눌린 사진 맞아보이긴 하는데요

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    에고… 아래는 귀여운 아기가 입술로 유리창을 닦고 있네요

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    아래는 오바마처럼 생기신 분

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    아래는 프랑스 대통령 마크롱을 닮으신 분의 엽기 사진

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    유리창은 아니지만 스타킹으로 한 웃음 주시는 유재석님

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    역시 스타킹 하면 이광수님을 빼놓을 수 없죠

    유리창에 눌린 얼굴의 외국 스타를 보고 좀 찾아 보았습니다

    뭐 어쩌라는건 아니고…



    facebook posting twit

  • 복면이 아닙니다 – 예뻐지는 중입니다
  • 저주받은 바지
  • 소백산에 먹이가 없어 도심에 내려온 여우
  • 선수출신 신현준님 아랍인으로 오해 받은 사건
  • 속보에 등장한 유명인의 그녀 – 어이 없는 종편뉴스의 속보로 네티즌은 정다운 댓글로 대화 나눠
  • 국가별 아이큐 순위 – 홍콩,한국,일본,대만,싱가폴 등 아시아 국가가 상위권 차지, 미국은 평균 아이큐 98