메뉴 건너뛰기

Microservices

상대적으로 마이크로서비스는 많은 장점을 가져다 주는 반면 단점이 적은 편입니다. 마이크로서비스는 커다란 어플리케이션의 일부분이라고 할 수 있으며 독립적인 어플리케이션이라고 할 수 있겠습니다. 예를 들어 웹 상에 스토어를 운영하는 경우 재고 확인, 신용카드 비용 청구, 배송 추적은 모두 하나의 컨셉을 완성하기 위한 책임을 가진 개별적인 마이크로서비스일 수 있습니다. 자체적으로 데이터베이스를 갖고 다른 시스템과 API 통신하기 위한 API를 갖추어 체계를 잡습니다. 함께 동작하면 사용자에게 지속적인 경험을 제공할 수 있으면서도 막 뒤에서는 개별적으로 동작합니다.


장점

유지보수가 쉽고 이해가 빠릅니다.

각 어플리케이션에는 하나의 주된 목적이 있습니다. 하나의 목적이 분명하기 때문에 어플리케이션의 동작에 대한 추론이 매우 단순 명료합니다. 개발자가 쉽게 프로젝트 안팎을 살펴봄으로써 데이터 단절이 매우 작아집니다. 더 좋은 것은 개발이 신속해지고 테스트 스위트가 포괄적이면서도 신속해지며, 적절한 도구만 있으면 다운타임없이 다른 어플리케이션에 영향을 주지 않고 디플로이할 수 있다는 장점이 있다는 것입니다. 마이크로서비스는 코드의 향연이라고 할 수 있습니다.

분리를 통한 다운타임 최소화

한 어플리케이션이 다운되어도 다른 어플리케이션에 영향을 미치지 않습니다. 즉 주문 시스템이 다운된다고 하더라도 여러분의 고객은 기존의 주문 상태를 확인하거나 별도의 방법을 사용하지 않고서도 스토어의 상태를 확인할 수 있습니다. 또한 확장이 필요한 경우에도 사용하지 않을 부분은 제외하고 필요한 시스템에 대해서만 비용을 지불할 수 있게 됩니다.


단점

인프라 자동화를 필요로 합니다.

마이크로서비스는 운영상의 복잡성을 가지고 있습니다. 하나의 커다란 어플리케이션이 아니라 수 십개 때로는 수 백개의 어플리케이션을 실행하고 있는 형태입니다. 이것들은 하나의 서버에서 관리할 수 있는 형태가 아니므로 수동으로 배포할 수 있는 형태 또한 아닙니다. 이 복잡성을 커버하기 위한 매치 및 개발 프로세스가 필요합니다. 그렇지 않으면 엔지니어가 좌절하게 됩니다.

크로스커팅 문제

단일 방식의 합리적인 방법을 통한 데이터를 획득이 어려울 수 있습니다. 일반적으로 한 곳에서 다른 곳으로 많은 양을 메시징하는 경우 (가령 유저 객체를 모든 곳에 옮겨야 한다고 합시다) 이러한 메시지를 전달하는 새로운 마이크로서비스를 필요로 할 수 있습니다. 모든 데이터가 한 곳에 있는 모노리스에 대비해 어려움이 있을 수 있습니다.


Takeaway

몇몇 단점이 있음에도 불구하고 일반적으로 마이크로서비스는 구조적으로 모노리스보다 더 낫다고 평가되고 있습니다. 개선 과 관리가 쉽고 운영조직의 어려움을 DevOps팀에서 관리할 수 있게 됩니다. 그러나 이 두가지 방식의 중간지점 어딘가의 형태를 찾고 계시다면 아마도 self-contained service를 찾고 계신 것 같습니다.

Who's NeO

ALM, SW 모델링, SW 정적분석, Devops 특히 CI/CD, APM을 통한 Shiftleft에 관심이 많습니다. 

차세대 APM Cisco AppDynamics와 모바일 앱 모니터링 VMware Apteligent를 소개합니다.

http://www.solulink.co.kr

?

 


  1. 3. 앱 로드타임을 2초 내로 줄여 좋은 첫인상을 주자

    3. 앱 로드타임을 2초 내로 줄여 좋은 첫인상을 주자 크래시율과 더불어 app load time은 매우 중요한 지표입니다. App load time은 고객유치에 매우 밀접한 메트릭이자 모바일 앱에 접근하는 중요한 시간정보입니다. 연구에 따르면 app load time은 50%의 ...
    Date2018.02.19 ByNeO Reply0 Views553
    Read More
  2. 2. 주요 3 Userflow의 크래시율을 0.25%미만으로 유지하자

    2. 주요 3 Userflow의 크래시율을 0.25%미만으로 유지하자 앞서 Best Practice #1의 방법으로 top 10 크래시를 수정한다면, 0.25% 이하의 크래시율을 유지하는 데에 매우 큰 도움이 될 것입니다. 전체 크래시율을 낮추는 것 외에도 주요 Userflow의 크래시...
    Date2018.02.05 ByNeO Reply0 Views421
    Read More
  3. 1. 매 스프린트에서 Top 10 크래시를 잡자

    1. 매 스프린트에서 Top 10 크래시를 잡자 모바일 앱을 모니터링할 때 가장 중요한 지표 중 하나는 전체 크래시율입니다. 크래시율이란 전체 세션 대비 크래시가 발생한 비율을 의미합니다. 앱의 품질을 평가하는 데에 크래시율은 전체 릴리즈 프로세스에...
    Date2018.01.30 ByNeO Reply0 Views490
    Read More
  4. No Image

    모바일앱 최적화를 위한 7가지 (0)

    본 문서는 다음 문서를 번역한 글입니다. http://www.apteligent.com/white_paper/7-best-practices-optimizing-mobile-app-experience/ 이 문서를 게시하기 전에 모바일앱 모니터링 툴의 종류와 특성에 대한 개요를 작성하고자 하였으나, 많은  mAPM이나 ...
    Date2018.01.29 ByNeO Reply0 Views358
    Read More
  5. Is NoOps the End of DevOps? Think Again (2) 결론

    In conclusion, DevOps is forever DevOps의 완성형이라고 일컬어짐에도 불구하고 NoOps는 DevOps의 종착역은 아닙니다. 사실 NoOps는 DevOps를 통해 달성할 수 있는 혁신의 시작이라고 볼 수 있습니다. DevOps가 이름을 갖기 훨씬 전부터 시작된 NoOps...
    Date2018.01.02 ByNeO Reply0 Views332
    Read More
  6. Is NoOps the End of DevOps? Think Again (1) DevOps가 사라지지 않는 7가지 이유

     7 Reasons DevOps Is Not Dying 이제 DevOps의 시작에 대해 알았으니 본래의 질문으로 돌아가봅시다. NoOps가 DevOps의 종착역일까요? 그렇지 않습니다!  1. DevOps is a journey 어떤 Devopsdays에 참석하더라도 “DevOps is a jo...
    Date2018.01.02 ByNeO Reply0 Views385
    Read More
  7. Is NoOps the End of DevOps? Think Again (0) IT Operation, DevOps, NoOps 의 간략한 역사

    이 문서는 다음 링크의 글을 일부 번역했습니다. https://blog.appdynamics.com/engineering/is-noops-the-end-of-devops-think-again/ 제일 앞 부분의 DevOps와 NoOps 운동에 대한 논란은 관심있으신 분은 직접 링크를 따라가며 읽어보시면 좋을 것 같습...
    Date2018.01.02 ByNeO Reply0 Views456
    Read More
  8. Monoliths - Module, Allocation, Runtime Monolith

    이 문서는 다음 링크의 글을 번역했습니다. http://www.codingthearchitecture.com/2014/11/19/what_is_a_monolith.html 모노리스와 대비하여 마이크로서비스를 이야기하는 강한 트렌드가 있습니다. 그리고 모노리스를 마이크로서비스로 나누는 방법에 대...
    Date2017.12.13 ByNeO Reply0 Views563
    Read More
  9. No Image

    Microservices, Monoliths and Self-Contained Systems (3) Self-contained system과 결론

    Self-Contained System Self contained system은 모노리스와 마이크로서비스 중간쯤에 있는 블록형 아키텍처입니다. 여러 개의 마이크로서비스를 하나의 엔티티로 나타내면서도 모노리스보다는 작은 규모를 가지는 형태입니다. 만일 매우 연관성이 높아 ...
    Date2017.12.13 ByNeO Reply0 Views448
    Read More
  10. No Image

    Microservices, Monoliths and Self-Contained Systems (2) Microservices

    Microservices 상대적으로 마이크로서비스는 많은 장점을 가져다 주는 반면 단점이 적은 편입니다. 마이크로서비스는 커다란 어플리케이션의 일부분이라고 할 수 있으며 독립적인 어플리케이션이라고 할 수 있겠습니다. 예를 들어 웹 상에 스토어를 운영...
    Date2017.12.13 ByNeO Reply0 Views244
    Read More
Board Pagination Prev 1 2 3 Next
/ 3