본문 바로가기

반응형

마이크로서비스아키텍처

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) 다시말해서, 어플리케이션은 아키텍처 스타일을 조합해서 사용함. 모놀리식 아키텍처 구현 뷰를 하나의 실행/배포 가능한 컴포넌트로 구성한 아키텍처 스타일 마이크로서비스 아키텍처.. 더보기
23.마이크로서비스, 마이크로서비스를 만들어 갈때, 아키텍처 설계에 대해서 알아보자. 소프트웨어 프로젝트에서 아키텍트 역할 해결해야 될 문제의 동작 모델을 제공하는 것. 애플리케이션 코드가 서로 들어맞도록 코드를 작성하는 개발자를 위한 발판도 제공해야 됨. 마이크로서비스 아키텍처를 구축 시 집중해야 할 것. 비즈니스 문제의 분해 서비스 세분화의 확정 서비스 인테페이스 정의 비즈니스 문제의 분해 비즈니스 문제를 각 활동영역을 대표하는 영역으로 분해하고, 비즈니스 영역의 특정 부분과 연관된 비즈니스 규칙과 데이터 로직을 영역안에 캡슐화함. 데이터 영역이 서로 어울리지 않는다면 마이크로서비스들의 서비스 경계를 나눠야함. 분해시 참고하면 좋을 지침 3가지 비즈니스 문제를 기술하고 그 문제를 기술하는 데 사용된 명사에 주목 문제에 대한 동일한 명사가 반복사용되는 경우, 대개 핵심 비즈니스 영역과 .. 더보기
20.마이크로서비스, 프로메테우스를 이용한 모니터링에 대해서 알아보자. 프로메테우스란 ? 시스템 모니터링 및 Alert을 위한 툴킷으로서 경고 문자와 그래프 계산을 지원함. 다차원 데이터베이스를 사용하면 모든 마이크로서비스의 모든 인스턴스에 대한 메트릭을 캡쳐한 다음 특정 타입의 마이크로서비스에 대해 합산가능함. 참고페이지 : http://prometheus.io 기능 및 특성 다차원 데이터 모델을 지원함. 많은 모니터링 솔루션은 모니터링될 시스템 메트릭을 모니터링 시슷템에 저장할 것을 요구함(Push 모델). 그러나 프로메테우스는 풀(Pull) 모델을 가지고 있어서 지정된 간격으로 모니터링되는 시스템의 HTTP 엔드포인트에 데이터를 수집함. Alert Manager는 쿼리를 기반으로 경고 문자를 보내고, 이메일등등 경고 메시지를 보낼 수 있음. 참고페이지 : https:/.. 더보기
19.마이크로서비스, 마이크로서비스아키텍처에서 운영이 중요한 이유는 몰까요? 마이크로서비스 아키텍처에서 운영이 중요한 이유? 마이크로서비스 아키텍처에서의 시스템들은 단일 배포 모놀리스 구조가 아님. 각각 모듈은 별도 설치 및 배포, 운영 및 모니터링 해야하는 이슈가 있음. 마이크로서비스 아키텍처의 이슈 프로젝트가 오랜 기간 지속될수록 코드는 더욱 많아질 수 있고, 크기가 증가 될 수 있음. 위의 이슈 발생의 소지를 차단하려면? 마이크로서비스의 크기가 일정하게 유지되도록 해야하고 마이크로서비스 개수가 증가할 수 있도록 신규 마이크로서비스를 구축해야 함. 마이크로서비스가 개수가 증가하면 증가할수록, 운영의 어려움이 시간이 지날수록 커질 수 있음. 이를 해결하는 방법은? 표준화와 자동화 마이크로서비스의 분산 시스템 마이크로서비스는 로컬 메소드 호출 대신 네트워크를 통해 통신함. 따라서.. 더보기
17.마이크로서비스, 쿠버네티스에 대해서 알아보자. 쿠버네티스란? 마이크로서비스의 개발과 운영을 위한 런타임 환경이고 점차 중요성이 커지고 있음. 리눅스 파운데이션(Linux Foundation)에서 관리 구글에서 개발됨. 다양한 확장을 제공하는 쿠버네티스중심으로 광대한 생태계가 펼쳐지고 있음. 도커 컨테이너를 실행할 수 있고, 마이크로서비스를 위한 인프라 구성 가능. 도커에 대한 코드 의존성이 없음. 참고페이지 : https://kubernetes.io 라이선스 아파치 라이선스 버전및 종류 미니큐브 노트북에서 개발과 테스트 시스템을 설치하기 위한 버전. 참고페이지 : https://github.com/kubernetes/minikube kops AWS(Amazon Web Services)와 같은 여러 타입의 환경에서 쿠버네티스 클러스터 설치를 가능하게 .. 더보기
16.마이크로서비스, 마이크로서비스 플랫폼을 알아보자. 마이크로서비스 플랫폼 마이크로서비스의 통신과 운영(배포, 모니터링, 로그 분석등등) 측면을 지원함. HTTP와 REST을 지원함. 로드 밸런싱, 라우팅, 서비스 탐색을 지원함. 마이크로서비스 플랫폼의 2가지 접근 방식 쿠버네티스 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈 소스 플랫폼. 쿠버네티스란 명칭은 키잡이(helmsman)이나 파일럿을 뜻하는 그리스어에서 유래되었다고 함. 구글이 2014년 쿠버네티스 프로젝트를 오픈소스화함. 마이크로서비스의 개발과 운영을 위한 런타임 환경이며, 점차 중요성이 커지고 있는 상황임. 도커 컨테이너를 실행할 수 있으며, 네트워크 레벨에서 로드 밸런싱, 라우팅, 서비스탐색과 같은 문제를 해결할 수 있음. 오퍼레이터스(Operators) .. 더보기

반응형