본문 바로가기

반응형

MicroService

28.마이크로서비스, 상호작용스타일에 대해서 알아보자. 블로그 목적 마이크로서비스에서의 상호작용 스타일에 대해서 정리해본다. 마이크로서비스에서 상호작용스타일은? 서비스에 적용할 수 있는 IPC 기술은 많이 존재함. 동기 요청/응답 기반의 통신 매커니즘 REST(Representational State Transfer) https://ko.wikipedia.org/wiki/REST REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었다. 필딩은 HTTP의 주요 저자 중 한 사람이다. 이 개념은 네트워킹 문화에 널리 퍼짐. gRPC(gRPC Remote Procedure .. 더보기
27.마이크로서비스, 분해에 대해서 알아보자. 블로그 목적 마이크로서비스에서 분해에 대해서 알아본다. 마이크로서비스에서 분해란? 분해는 마이크로서비스 아키텍처를 정의하는 주요 수단임 비즈니스 능력에 따른 분해 하위 도메인에 따른 분해 마이크로서비스에서는 분해에 대해서, 객체지향 설계에 근거한 2가지 법칙을 적용할 수 있음. 로버트 C.마틴(Robert C. Martin) 부치 메소드를 응용한 객체 지향 C++ 어플리케이션 설계(Designing Object Oriented C++ Applications Using The Booch Method) / Prentice Hall, 1995 해당 내용에서는 2가지원칙을 말하고 있음. 하나, 단일 책임 원칙(SRP, Single Responsibility Principle) 클래스의 책임을 정의하는 원칙 둘,.. 더보기
26.마이크로서비스, 소프트웨어 아키텍처 스타일에 대해서 알아보자. 블로그 목적 소프트웨어 아키텍처 스타일에 대해서 공부해보고 정리해본다. 소프트웨어 아키텍처 스타일이란? 정의 소프트웨어 아키텍처 스타일은 체계적인 조직의 관점에서 시스템 군을 정의함. 즉, 소프트웨어 아키텍처 스타일은 그 스타일로 만든 인스턴스에서 사용가능한 컴포넌트와 커넥터의 보케블러리, 그리고 이들을 조합할 수 있는 제약조건을 결정함. 1994년 1월, "소프트웨어 아키텍처 개론(An Introduction to Software Achitecture" 중에서.. 데이비드 갈란(David Garlan) / 메리쇼(Mary Shaw) 다시말해서, 어플리케이션은 아키텍처 스타일을 조합해서 사용함. 모놀리식 아키텍처 구현 뷰를 하나의 실행/배포 가능한 컴포넌트로 구성한 아키텍처 스타일 마이크로서비스 아키텍처.. 더보기
25.마이크로서비스, 소프트웨어 아키텍처의 4+1 뷰 모델에 대해서 알아보자. 블로그목적 소프트웨어 아키텍처의 4+1 뷰 모델에 대해서 정리해본다. 소프트웨어 아키텍처의 4+1 뷰 모델이란? 소프트웨어 아키텍처의 4+1 뷰모델 필립 크러첸(Phillip Krutchen)의 논문 아키텍처 청사진-소프트웨어 아키텍처의 '4+1' 뷰 모델(Architectural Blueprints-The '4+1' View Model of Software Architecture) PDF 파일 https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf 소프트웨어 아키텍처를 바라보는 상이한 4뷰를 정의함. 뷰의 목적 논리 뷰(logical view) 개발자가 작성한 소프트웨어 엘리먼트를 말함. 만약 객체지향 언어라면, 클래스/패키지 가 .. 더보기
23.마이크로서비스, 마이크로서비스를 만들어 갈때, 아키텍처 설계에 대해서 알아보자. 소프트웨어 프로젝트에서 아키텍트 역할 해결해야 될 문제의 동작 모델을 제공하는 것. 애플리케이션 코드가 서로 들어맞도록 코드를 작성하는 개발자를 위한 발판도 제공해야 됨. 마이크로서비스 아키텍처를 구축 시 집중해야 할 것. 비즈니스 문제의 분해 서비스 세분화의 확정 서비스 인테페이스 정의 비즈니스 문제의 분해 비즈니스 문제를 각 활동영역을 대표하는 영역으로 분해하고, 비즈니스 영역의 특정 부분과 연관된 비즈니스 규칙과 데이터 로직을 영역안에 캡슐화함. 데이터 영역이 서로 어울리지 않는다면 마이크로서비스들의 서비스 경계를 나눠야함. 분해시 참고하면 좋을 지침 3가지 비즈니스 문제를 기술하고 그 문제를 기술하는 데 사용된 명사에 주목 문제에 대한 동일한 명사가 반복사용되는 경우, 대개 핵심 비즈니스 영역과 .. 더보기
22.마이크로서비스, 서비스 트레이스를 위한 집킨서버에 대해서 알아보자 집킨(Zipkin)이란? 쉽게 이야기해서, 트레이스 툴 및 시스템. 트레이스 데이터를 보낼 수 있는 서버가 존재하며, 데이터를 UI로 표시할 수 있음. 참고페이지 : http://zipkin.io 트레이스 데이터의 전송은 HTTP 서버 or 카프카일 수 있음. 시스템 성능에 영향을 주지 않기 위해 전달자는 데이터를 집킨서버에 비동기로 전송함. 집킨 서버에서 수집기는 데이터를 수신하고 저장소에 저장함. 저장소 : 카산드라, 일래스틱서치, MySQL등등을 사용함. API는 데이터에 대한 접근 기능을 제공하며, 데이터에 쿼리를 실행할 수 있음. 운용자는 UI로 트레이스 데이터를 손쉽게 분석 할 수 있음. 예시 집킨에 대한 예시는 아래 참고페이지를 참고 참고페이지 : https://github.com/ewolf.. 더보기
20.마이크로서비스, 프로메테우스를 이용한 모니터링에 대해서 알아보자. 프로메테우스란 ? 시스템 모니터링 및 Alert을 위한 툴킷으로서 경고 문자와 그래프 계산을 지원함. 다차원 데이터베이스를 사용하면 모든 마이크로서비스의 모든 인스턴스에 대한 메트릭을 캡쳐한 다음 특정 타입의 마이크로서비스에 대해 합산가능함. 참고페이지 : http://prometheus.io 기능 및 특성 다차원 데이터 모델을 지원함. 많은 모니터링 솔루션은 모니터링될 시스템 메트릭을 모니터링 시슷템에 저장할 것을 요구함(Push 모델). 그러나 프로메테우스는 풀(Pull) 모델을 가지고 있어서 지정된 간격으로 모니터링되는 시스템의 HTTP 엔드포인트에 데이터를 수집함. Alert Manager는 쿼리를 기반으로 경고 문자를 보내고, 이메일등등 경고 메시지를 보낼 수 있음. 참고페이지 : https:/.. 더보기
19.마이크로서비스, 마이크로서비스아키텍처에서 운영이 중요한 이유는 몰까요? 마이크로서비스 아키텍처에서 운영이 중요한 이유? 마이크로서비스 아키텍처에서의 시스템들은 단일 배포 모놀리스 구조가 아님. 각각 모듈은 별도 설치 및 배포, 운영 및 모니터링 해야하는 이슈가 있음. 마이크로서비스 아키텍처의 이슈 프로젝트가 오랜 기간 지속될수록 코드는 더욱 많아질 수 있고, 크기가 증가 될 수 있음. 위의 이슈 발생의 소지를 차단하려면? 마이크로서비스의 크기가 일정하게 유지되도록 해야하고 마이크로서비스 개수가 증가할 수 있도록 신규 마이크로서비스를 구축해야 함. 마이크로서비스가 개수가 증가하면 증가할수록, 운영의 어려움이 시간이 지날수록 커질 수 있음. 이를 해결하는 방법은? 표준화와 자동화 마이크로서비스의 분산 시스템 마이크로서비스는 로컬 메소드 호출 대신 네트워크를 통해 통신함. 따라서.. 더보기

반응형