본문 바로가기

MSA해설80

Cloud Native Application https://tanzu.vmware.com/kr/cloud-native 발췌 + 첨언 Cloud Native Application (CNA) - Cloud의 장점을 극대화하여 활용하는 Application을 개발하고 실행하기 위한 접근 방식 - DevOps, CI/CD, Microservice, Container 등의 개념/기술 필요 DevOps - SW전달과 Infrastructure 변경 프로세스 자동화를 목표로 개발자와 IT 운영자가 협업한 결과물 - 신뢰성 있는 소프트웨어 생성, 테스트, 릴리스를 신속하게 자주 진행할 수 있는 문화와 환경 -> MSA의 목표 중 하나인 Rapid/Frequent/Reliable Deploy CI/CD - 서비스별 독립적으로 배포할수 있다면 통합 배포를 기다릴 필.. 2022. 6. 25.
MSA 정의 https://martinfowler.com/articles/microservices.html Microservices Defining the microservices architectural style by describing their nine common characteristics martinfowler.com 위의 내용 중 발췌 + 첨언 The microservice architectural style MSA는 여러 아키텍처 스타일중 하나 is an approach to developing a single application as a suite of small services, 여러 (작은) 서비스들로 구성 each running in its own process 각 서비스들은 독립적으로 작동.. 2022. 6. 19.
VM, Container, Docker, Kubernetes 개념과 비교 https://samsungsds.com/kr/story/220222_kubernetes1.html 쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념 요즘 IT 생태계에 관심이 많으신 분들이라면 쿠버네티스라는 단어를 들어 보셨을 텐데요. 쿠버네티스에 대해 개발자들의 관심이 높아지고 있고, 여러 대기업에서 새로운 시스템을 쿠버네티스를 samsungsds.com 위의 사이트 중 발췌 쿠버네티스 2014년 구글에서 Go라는 언어로 개발 컨테이너화된 애플리케이션을 편리하게 배포 오토스케일링, 스케줄링, 서비스 디스커버리, 로드밸런싱, 리소스 관리 등을 지원하는 컨테이너 오케스트레이션 플랫폼 https://bcho.tistory.com/1256 쿠버네티스 #2 - 개념 이해 (1/2) 쿠버.. 2022. 6. 18.
MSA 등장, 용어정의 https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4 2022. 6. 15.
배달의민족 MSA 여행기(요약/재구성/첨언) 2022. 5. 21.
서비스 정의 워크샾 예 Pivotal(vmware tanzu) 예 https://www.slideshare.net/Pivotal/pivotals-secret-sauce 1. Event Storming 전 GOAL 목표수립 2. Event Storming 3. Event Storming 후 후보 서비스 식별 4. 식별된 후보 서비스를 아래 연관도를 통해 검증(통합/분리/유지 등) 5. 서비스 정의 위의 연관도를 통해 정의된 서비스별 API, Publisher, Subscriber, UI, Batch, Entity 등 정의 가능 이는 기본설계 상세설계와 연결 2022. 4. 27.
Service Decomposition 서비스 식별/분리 서비스를 나누는 기준은 여러가지가 있는데 그중에서도 Chris Richardson이 Microservices.io 에서 제안하는 아래 4가지 방법에 대해 살펴본다. 각 페이지별 일부를 발췌 + 첨언한다. 1) Decompose by business capability 2) Decompose by subdomain 3) Self-contained Servicenew 4) Service per teamnew ---------------------------------------------------------- 1) Decompose by business capability https://microservices.io/patterns/decomposition/decompose-by-business-capab.. 2022. 4. 21.
A pattern language for microservices https://microservices.io/patterns/index.html Microservices Pattern: A pattern language for microservices Microservices.io is brought to you by Chris Richardson. Experienced software architect, author of POJOs in Action, the creator of the original CloudFoundry.com, and the author of Microservices patterns. Chris helps clients around the world adopt the micros microservices.io 2022. 4. 8.
각 Microservice를 AP만 분리하고 DB는 통합하는 경우 https://microservices.io/patterns/data/database-per-service.html Microservices Pattern: Database per service Microservices.io is brought to you by Chris Richardson. Experienced software architect, author of POJOs in Action, the creator of the original CloudFoundry.com, and the author of Microservices patterns. Chris helps clients around the world adopt the micros microservices.io 위의 내용 발췌 + 첨언 C.. 2022. 4. 7.
MSA, DevOps, Cross functional team https://en.wikipedia.org/wiki/DevOps https://en.wikipedia.org/wiki/Cross-functional_team 위의 사이트에서 발췌 + 첨언 MSA의 궁극적인 목적인 독립성과 시장환경에 민첩하게 대응하기 위해서는 DevOps를 도입하면 보다 효과적일것이다. DevOps 넓은 의미로는 개발 Dev과 운영 Ops을 결합한 문화, 조직 재 정비 등을 의미하고 좁은 의미로는 CI/CD, 즉 빌드, 테스트 및 배포를 자동화하여 Rapid, Frequent, Reliable 배포가 가능하다. 기존에는 (대략의 개발 프로세스) 업무 전문가 조직(현업)에서 요구사항을 내면, 개발팀에서 분석/설계/개발하고, 테스트팀에서 (수동) 테스트후, 관리자가 승인하면, 운영팀에의해 .. 2022. 4. 7.
Strangler Pattern 예 https://www.youtube.com/watch?v=BnS6343GTkY 배달의 민족 마이크로 서비스 여행기 중에서 발췌 2022. 4. 2.
Domain Event, CQRS 적용 예 (배민) https://www.youtube.com/watch?v=BnS6343GTkY 위의 사례 중 Domain Event 및 CQRS 관련 일부 내용 발췌 + 첨언 리뷰, 라이더스 등 Callee 서비스 장애 시 Caller인 주문 서버스도 연쇄적으로 장애 이벤트 기반으로 주문의 Lifecycle을 정의 전사에서 이해할 수 있는 명확한 주문 Lifecycle 이벤트 정의 쇼핑몰이라면 주문, 취소, 교환, 반품 등 상품, 가입 등 다른 업무에도 위와 같이 적용 가능 앞으로 주문 서비스는 약속된 위의 이벤트를 발행할거야 필요한 서비스들이 가져가서 각자 알아서 사용해 이렇게 해두면 앞서 API기반의 경우와 같이 리뷰 서비스 장애 시 주문과 관련이 없고 리뷰 서비스가 살아나면 그 동안 쌓여있던 이벤트를 받아서 못했던.. 2022. 4. 2.
Kafka 처리량 관련 서비스정의 워크샾 시 TOBE 기준 서비스간의 연관 관계 파악 시 Event Driven 으로 Low Coupling을 강력하게 권장한다. (Self-Contained Service가 되려면, 자율성/독립성이 높아지려면, 그래서 MSA를 하는것이니) 이 때 반드시 사용하게될 MQ, 그중에서도 Kafka를 주로 사용한다. Kafka 를 많이 사용하는 것에 대해서는 특별한 이견이 없는데, 기존 ASIS의 대용량 처리를 대체할 수 있을지에 대한 궁금증을 많이 갖는다. 자세한 것이야 당연히 관련 전문가(SWA, TA 등)이 더 잘 아시겠고 장단점 등을 제시해야겠지만 일단 간단히 살펴보면 다음 사이트 정도를 참고하면 되겠다. https://team-platform.tistory.com/6 위와 같이 스펙이나 여러.. 2022. 3. 23.
OCS에 MSA를 적용한다면 국내 병원정보 시스템은 대략 위와 같은 형태일 것이다. 이러한 모습이 20여년 지속되고 있다. 여기에 MSA를 적용하면 어떻게 할 수 있을까? 최종적인 TOBE 모습은 아래와 유사할 것이다. 위의 최종 TOBE 모습이 갖춰 진다면 어떤 장점을 얻을 수 있을까? 1. Event Driven Architecture 측면 쇼핑몰에서 주문, 주문취소, 반품, 교환 등이 메인 Event이듯 OCS에서는 처방이 출발점이고 Main Event 대부분의 서비스에서 사용하는 내원, 처방, DC 등을 Event로 발행하면 필요한 서비스에서 구독 내원 예약/접수/실시, 진료 처방/DC 등 Publisher와 관계없이 구독만으로 해당 업무 Lifecycle에 참여가 쉬움 더 이상 진료 서비스 수정 불필요 (기존에는 처방 시 .. 2022. 3. 23.
Anti Pattern Chris Richardson의 Microservices adoption anti-pattern 요약 + 첨언 ------------------------------------------------------------------------------------------------------------- Red flag law, 19세기 말 영국에 붉은 깃발 법 https://chrisrichardson.net/post/antipatterns/2019/06/07/antipattern-red-flag-law.html Red flag law 자동차 속도를 마차 속도에 맞추려고 자동차 앞에서 사람이 붉은 깃발을 흔들게 했다. 결국 영국의 자동차 산업은 독일과 미국에 뒤처지고 말았다. 규제 때문이었다. MSA.. 2022. 3. 18.
Monolith to MSA : 10가지 원칙 Decompose your monolith: Ten principles for refactoring a monolith to microservices https://chrisrichardson.net/post/refactoring/2020/08/21/ten-principles-for-refactoring-to-microservices.html Monolith to MSA : 10가지 원칙을 다룬 위의 내용 요약 + 첨언 1. Make the most of your monolith Monolith를 최대한 활용해라 2. Adopt microservices for the right reasons MSA는 Architecture Style중 하나일 뿐이다. 결합도/커플링이 낮은(loosely coupled) .. 2022. 3. 11.
Strangler Pattern https://microservices.io/patterns/refactoring/strangler-application.html Chris Richardson의 Strangler Application 위 내용 요약 + 첨언 우선, MSA를 도입하기로 마음먹은 경우, 그 필요성에 공감하고 그 다음에 필요한 질문일 것이다. How do you migrate a legacy monolithic application to a microservice architecture? 기존의 큰 Monolith를 Service로 쪼개서 구현해야하는데 어떻게 쪼개갈 것인가에 대한 질문이다. 쪼개가는 방법을 이행전략이라고 한다면 이행전략에는 크게 2가지가 있다. 첫번째, Big Bang 현재의 큰 Monolith를 여러 서비.. 2022. 3. 9.
Monolith to MSA (Refactoring a monolith to microservices) https://microservices.io/refactoring/index.html Refactoring a monolith to microservices Monolith를 MSA로 어떻게 전환할 것인가에 대한 위의 내용 요약 + 첨언 ASIS가 없는 신규 시스템이 거의 없듯이 맨땅에 MSA를 구축하는 일도 드물다. MSA를 도입하려는 대부분의 조직은 이미 Monolith를 가지고 있고 그것을 MSA로 전환해야기 때문에, 어떻게 전환할 것인가에 대한 고민을 하지 않을수 없다. 이 전환 전략중 하나로 Strangler Pattern의 개념을 도입해서 Incrementally Refactoring (점진적 개선) 하는 이행전략이 필요하다. (참고 https://blog.daum.net/kooangelo/1.. 2022. 3. 9.
단계별 기간 MSA와 관계없이 SI프로젝트의 단계별 비율 (경험적) 성공 프로젝트 사례 분석 : 설계 : 개발 : 테스트/전개 = 19 : 19 : 29 : 33 분석 : 설계 : 개발 : 테스트/전개 = 2 : 2 : 3 : 3 (약) 이 정도 큰 틀에서 WBS, 산출물, 인원투입 등의 여러가지 상황을 바탕으로 + - 조정 결국은 오픈 목표 일자를 기준으로 역산 또는 발주사가 원하는 기간에 대해 위의 비율로 조정 그리고 각 단계별로 주어진 기간내에 할 수 있는 것을 현실적으로 고민하여 +- 조정 단계별, Task별 산출물, 생산성을 고려하여 +- 조정 기본설계, 상세설계 분리 여부 상세설계 및 개발 단계를 Iteration 등으로 반복하는 경우 고려 2022. 1. 28.
배민 MSA 여행기 https://www.youtube.com/watch?v=BnS6343GTkY 2022. 1. 5.