728x90
반응형
이번 글에서 작성된 내용은 모두 아래 링크의 강좌에 대한 수강 내용입니다.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard
[ Factors(https://12factor.net/) ]
Cloud Native Application 개발 하거나 서비스를 운영할 때 사용되는 항목들
- BASE CODE
- 자체 레퍼 지토리에 저장된 각 마이크로 서비스에 대한 단일 코드 베이스, 버전을 관리하기 위한 목적이고 형상관리를 위해 코드를 한 곳에서 배포하기 위한 목적, 코드의 통일적 관리
- DEPENDENCY ISOLATION(종속성)
- 마이크로서비스는 자체 종속성을 가지고 패키지 되어 있다. 전체 시스템에 영향을 주지 않고 변경되 고 수정 될 수 있어야 한다.
- CONFIGRATIONS(구성정보)
- 시스템 내부가 아닌 시스템 코드 외부에서 구성관리 도구를 통해서 마이크로서비스에 필요한 작업들을 지원 하는 것. 동일한 배포가 올바르게 구성된 환경에 배포 될 수 있다.
- LINKABLE BACKING SERVCIE(서비스 지원)
- DB 캐시 메시지큐잉 등 마이크로서비스가 가져야 할 기능들을 추가로 지원하는 것 을 말한다. 프로그램 자체에서 필요한 서비스를 분리 함으로 써 서로 상호작용하고 코드 디펜던시를 가지지 않은 상태에서 작업을 할 수 있다.
- STAGES OF CREATION (운영환경 분리)운영환경분리
- 개발부터 운영까지 엄격하게 분리 되어야 하며 각각은 고유한 태그를 가지고 있어야 하며 롤백기능을 가지고 있어야한다.
- STATELESS PROCESSES (독립성)
- 각각의 마이크로서비스는 실행중인 다른 서비스와 분리된 상태로 운영 될 수 있어야 한다.
- PORT BINDING
- 각각의 마이크로서비스는 자체 포트에서 노출되는 인터페이스 및 기능 과 함께 자체 기능이 있어야 한다. 이런 방법을 사용하면 다른 마이크로서비스와 격리가 가능하다.
- CONCURRENCY(동시성)
- 많은 수의 수 많은 서비스를 동일한 프로세스를 복사해 확장해 나간다. 하나의 인스턴스가 동일한 서비스로 복사가 되어 운영 됨으로써 부하분산을 이루어 낼 수 있다.
- DISPOSABILITY
- 서비스 인스턴스 자체가 삭제가 가능해야 한다. 확장 기회를 높혀야 하고 정상적으로 종료를 할 수 있어야 한다.
- DEVELOPMENT & PRODUCTION PARTY
- 5번과 비슷한 개념
- LOGS
- ADMIN PROCESSES FOR EVENTUAL PROCESSES
- 현재 운영되고 있는 마이크로서비스에 대한 리소스 및 환경을 관리할 수 있는 관리도구 가 있어야 한다. 리포팅, 데이터정리 데이터 분석 등이 있어야 한다.
- API FIRST
- TELEMENTRY
- AUTHENTICATUOIN AND AUTHORIZATION
[ Monolithic VS MSA ]
- Monolith
- 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스
- 애플리케이션에서 사용하는 데이터가 한곳에 모여 참조되어 서비스되는 형태
- MicroServices
- 각각의 서비스 및 구성 요소를 분리하여 생성한 는 방법
- 모노리스 방식에 비해 유지보수나 변경사항을 적용하는데 유리하다.
- 각각의 용도에 맞는 컨테이너를 연결하여 만드는 방식
- MicroService 특징
- Challenges - 기존방식에서 상당 수 많은 부분을 변경 해야 한다.
- Small Well chosen Deployable Units
- Bounded Context
- RESTful
- Configuration Management - 환경설정 과 같은 부분은 코드 내부에 두지 않고 외부에 따로 두고 사용한다.
- Cloud Enabled
- Dynamic Scale Up And Scale Down
- CI/CD
- Visibility - 시각화 해서 관리 할 수 있어야 한다.
- MicroService 적합성
- Multiple Rated of Change - 기존개발 대비 어느 정도 변화가 생길 것 인가
- Independent Life Cycle - 어플리케이션이 동작하는 서비스 들이 독립적으로 운영될 수 있도록 경계가 잘 구성되어 있는가.
- Independent Scalability - 독립적인 확장성 이 가능한가.
- Isolated Failure - 격리된 오류
- Simplity Interaction with External Dependencies - 외부 종속성과의 상호작용을 단순화 시켜야 한다.
- Polyglot Technology - 여러 가지 프로그래밍 언어와 같이 쓸 수 있게 지원
[ SOA와 MSA와의 차이점 ]
- 서비스의 공유 지향점
- SOA(Service Oriented Architecture) - 재사용을 통한 비용절감
- MSA(Micro Service Architecture) - 서비스 간의 결합도 를 낮추어 변화에 능동적으로 대응
- 기술 방식
- SOA - 공통의 서비스를 ESB에 모아 사업 측면에서 공통 서비스 형식으로 서비스제공
- MSA - 각 독립된 서비스가 노출된 REST API를 사용
728x90
반응형
'Spring & Spring Boot' 카테고리의 다른 글
[ Spring Cloud ] Spring Cloud Netflix Eureka - 2편 (0) | 2021.07.15 |
---|---|
[ Spring Cloud ] Spring Cloud Netflix Eureka - 1편 (0) | 2021.07.15 |
[ Spring Cloud ] 마이크로서비스 와 클라우드 개념정리 - 1편 (0) | 2021.07.15 |
[ Spring-Boot ] JPA @EntityGraph 사용하기 (0) | 2021.06.14 |
[ Spring-Boot ] Data - JPA 사용하기 (0) | 2021.06.14 |