brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 11. 2023

(책후기) 마이크로서비스 아키텍처 구축-2023

2023년 6월 개정 1판


시스템  운영에 대한 모든 부분을 다룬 책이다.

마이크로 서비스의 장점

마이크로 서비스의 단점

마이크로 서비스를 사용해야 하는가?  에 대한 답을 준다.

빌드,배포,테스트,관찰가능성,보안,조직까지 다룬다.



이 책은 기초, 구현, 사람의 3개의 부로 나누어져 있다~


1부 기초

1장 마이크로 서비스란?

2장 마이크로 서비스 모델링 방법

3장 모놀리스 분해

4장 마이크로 서비스 통신 방식



2부 구현

5장  마이크로 서비스의 통신 구현

6장 워크플로

7장 빌드

8장 배포

9장 테스트

10장 모니터링에서 관찰 가능성으로

11장 보안

12장 회복 탄력성

13장 확장



3부  사람

14장 사용자 인터페이스

15장 조직 구조

16장 진화하는 아키텍트




1부 기초


<1> 마이크로 서비스란?

<2> 마이크로 서비스의 핵심 개념?

<3> 모놀리스

<4> 마이크로서비스 장점

<5> 마이크로 서비스의 고충

<6> 마이크로 서비스를 사용해야 하는가?




<1> 마이크로 서비스란?


비즈니스 도메인에 따라 모델링 된 독립적으로 릴리스 가능한 서비스.

기능을 캡슐화하고 네트워크를 통해 다른 서비스들을 액세스 하게 해 준다.

마이크로서비스라는 작은 빌딩 블록을 사용해 더욱 복잡한 시스템을 구축할 수 있다.




<2> 마이크로 서비스의 핵심 개념?


1

독립적 배포성.

독립적 배포성은 다른 마이크로 서비스를 배포하지 않고도 마이크로서비스를 변경하고, 배포하고, 사용자에게 릴리지 할 수 있다는 개념이다.


2

비즈니스 도메인 중심의 모델링


3

자기 상태 소유

마이크로서비스가 공유 데이터베이스 사용을 피해야 한다.

정말 필요한 경우가 아니면 데이터베이스를 공유하지 말아라.

데이터 베이스 공유는 독립적 배포성을 발생하는 데 가장 나쁜 것 중 하나이다.


4

크기


5

유연성


6

아키텍처와 조직의 정렬



<3> 모놀리스


1

단일 프로세스형 모놀리스


2

모듈식 모놀리스



3

모놀리스의 장점?

단순한 배포 토폴로지

개발자 워크로드가 단순해지며 , 모니터링, 문제 해결, 엔드투엔드 테스트도 간소화 가능하다.



<4> 마이크로서비스 장점


1

기술 이질성

다수의 협력하는 마이크로 서비스들로 구성된 시스템이라면 각 마이크로서비스에 서로 다른 기술을 사용할 수 있다.


2

견고성

벌크 해드이다.

시스템의 구성요소 중 하나가 조장 날 수 있지만, 그 고장이 연속적으로 발생하지 않는 한 문제를 격리하고 나머지 시스템은 계속 작동할 수 있다.


3

확장성

대규모 모놀리식 서비스에서는 모든 것을 함께 확장시켜야 한다.

더 작은 서비스를 사용하면 확장이 필요한 서비스만 확장할 수 있다.

시스템의 다른 부분을 더 작고 성능이 낮은 하드웨어에서 실행하게 된다.


4

배포의 용이성


5

조직적 정렬

더 작은 코드베이스로 일하는 더 작은 팀이 생산적인 경향이 있다.


6

조합성

분산 시스템과 서비스 지향 아키텍처가 보장하는 핵심 효용 중 하나는 재사용할 기회가 많다는 것이다.






<5> 마이크로 서비스의 고충


1

개발자 경험

더 많은 서비스가 생기면 개발자의 고된 경험이 시작된다.


2

기술 과다

새로운 기술들은 과도한 무게를 가질 수 있다.

마이크로 서비스는 각 마이크로 서비스를 다른  프로그래밍 얹지로 작성하거나, 다른 런타임을 실행하거나 , 다른 데이터베이스를 사용할 수 있는 선택지를 제공한다.

이것은 선택이다.


3

비용

단기적으로 여러 요인으로 비용이 증가할 가능성이 높다.

더 많은 프로세스, 더 많은 컴퓨터, 네트워크.

또한 팀이나 조직의 변경이 발생하면 단기적으로 속도가 느려진다.


4

리포팅

모놀리식 데이터베이스는  분석하길 원하는 이해 관계자는 보고서를 실행하ㅣ 위해 미리 만들어즌 스키마를 갖고 있다.


5

모니터링과 문제 해결

모니터링할 부분이 많아지고, 확인해야할 문제가 추가 된다.


6

보안

마이크로 서비스에 맞는 이미지 보안등 신경써야 한다.


7

테스팅




<6> 마이크로 서비스를 사용해야 하는가?


// 와 ~  이건 꼭 알고 싶었던 것이다!!!  책에서  자세히 설명해 준다.


1

마이크로 서비스가 적합하지 않은 곳?

새로운 제품이나 스타트업 기업에는 적합하지 않은 선택이다.

작업 중인 도메인은 구축하려는 기본 사항을 반복하면서 토양 엄청난 변화를 겪고 있다.

도메인 모델이 변화하면 서비스 경계가 더 많이 변경되며, 많은 작업 비용이 든다.



2

마이크로 서비스가 적합한 곳?

더 많은 개발자가  서로 방해하지 않고 동일한 시스템에서 작업하기 위해서다.

아키텍처와 조직의 경계를 올바르게 설정하면 더 많은 사람들이 서로 독립적으로 작업하도록 전달 경합 문제를 줄일 수 있다.


// 예전에  모놀리식 아키텍처로 구성된 , 게임 개발 DB를 재 부팅할 일이 있었다.  모두  개발 중이라  합의를 얻어야 했다.

// 작업하는데 50여 명이 모두 디비가 부팅될 때까지 아무 일도 못했다.

// 이 처럼 모놀리식으로 구성되고 하나의 디비로 구성된 경우는 많은 사람이 독립적으로 일할 수 없는 구조가 된다.


1부 기초를 알아보았다.





이 외에


2부 구현  , 3부  사람에서 많은 인사이트를 제공해 주는 책이다.


2023년 개발자가 꼭 봐야 하는 책중 하나로 추천한다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

본인이 읽고 솔직하게 작성합니다.




다른책 보기

https://brunch.co.kr/magazine/it-book

감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari