Searching...
한국어
English
Español
简体中文
Français
Deutsch
日本語
Português
Italiano
한국어
Русский
Nederlands
العربية
Polski
हिन्दी
Tiếng Việt
Svenska
Ελληνικά
Türkçe
ไทย
Čeština
Română
Magyar
Українська
Bahasa Indonesia
Dansk
Suomi
Български
עברית
Norsk
Hrvatski
Català
Slovenčina
Lietuvių
Slovenščina
Српски
Eesti
Latviešu
فارسی
മലയാളം
தமிழ்
اردو
Building Microservices

Building Microservices

Designing Fine-Grained Systems
by Sam Newman 2015 280 pages
Technology
Programming
Computer Science
듣기

가지 주요 요점

1. 마이크로서비스: 함께 작동하는 작고 자율적인 서비스

마이크로서비스는 함께 작동하는 작고 자율적인 서비스입니다.

마이크로서비스의 기초. 마이크로서비스 아키텍처는 소프트웨어를 작고 독립적인 서비스 모음으로 개발하는 원칙에 기반을 두고 있습니다. 각 서비스는 하나의 작업에 집중하며, 자체 프로세스에서 실행되고 HTTP/REST API와 같은 경량 메커니즘을 통해 통신합니다. 이 접근 방식은 모놀리식 아키텍처에 비해 유연성, 확장성, 유지보수성을 크게 향상시킵니다.

장점과 도전 과제. 마이크로서비스의 주요 장점은 다음과 같습니다:

  • 모듈화 개선
  • 개별 구성 요소의 확장 용이성
  • 기술 다양성
  • 고장 격리 강화
  • 빠른 배포 주기

그러나 마이크로서비스는 다음과 같은 도전 과제도 수반합니다:

  • 운영 복잡성 증가
  • 분산 시스템 문제 (예: 네트워크 지연, 고장 내성)
  • 서비스 간 데이터 일관성

2. 진화적 아키텍처: 변화하는 요구사항에 적응하기

아키텍트의 역할은 큰 그림을 보고 이 균형을 이해하는 것입니다.

변화를 수용하기. 진화적 아키텍처는 시스템이 시간에 따라 변화하는 요구사항에 적응해야 한다는 필요성을 강조합니다. 이 접근 방식은 모든 미래의 요구를 예측하는 것이 불가능하다는 것을 인식하고, 대신 진화할 수 있는 유연한 기초를 만드는 데 중점을 둡니다.

핵심 원칙:

  • 점진적 변화: 큰 변화를 드물게 하기보다는 작은 변화를 자주 수행
  • 가이드된 변화: 아키텍처 결정을 안내하는 원칙과 관행 사용
  • 다중 아키텍처: 시스템의 다른 부분이 다른 속도로 진화할 수 있음을 인식

이 모델에서 아키텍트는 모든 세부 사항을 지시하기보다는 가이드라인과 제약을 설정하는 도시 계획자와 같은 역할을 합니다. 이는 팀이 지역적 결정을 내리면서 전체 시스템의 일관성을 유지할 수 있게 합니다.

3. 서비스 모델링: 경계와 컨텍스트 정의하기

우리는 서비스 경계를 비즈니스 경계에 맞추어 특정 기능의 코드가 어디에 있는지 명확하게 합니다.

도메인 주도 설계. 서비스를 효과적으로 모델링하려면 비즈니스 도메인에 대한 깊은 이해가 필요합니다. 도메인 주도 설계(DDD)는 서비스 경계를 정의하는 데 유용한 개념을 제공합니다:

  • 경계된 컨텍스트: 명확한 경계를 가진 도메인 영역
  • 공통 언어: 개발자와 도메인 전문가가 공유하는 공통 언어
  • 애그리게이트: 단위로 취급되는 도메인 객체의 클러스터

서비스 경계 식별:

  • 비즈니스 기능에 맞추기
  • 데이터와 행동 캡슐화
  • 서비스 간 종속성 최소화
  • 팀 구조와 커뮤니케이션 패턴 고려

잘 정의된 경계는 더 응집력 있는 서비스와 느슨한 결합을 촉진하여 독립적인 개발과 배포를 용이하게 합니다.

4. 통합 전략: 통신을 위한 적절한 접근 방식 선택

보수적으로 행동하고, 다른 사람으로부터 받아들이는 데는 관대하십시오.

통합의 중요성. 효과적인 통합은 마이크로서비스가 원활하게 작동하는 데 필수적입니다. 통합 기술의 선택은 시스템의 유연성, 성능, 유지보수성에 큰 영향을 미칩니다.

주요 통합 패턴:

  • 동기 통신: REST, gRPC
  • 비동기 통신: 메시지 큐, 이벤트 스트리밍
  • API 게이트웨이: 요청 라우팅 및 구성
  • 서비스 메쉬: 서비스 간 통신 처리

모범 사례:

  • 기술 독립적인 프로토콜 사용 (예: HTTP)
  • 변화를 우아하게 처리하는 관대한 리더 구현
  • 회로 차단기와 벌크헤드를 사용하여 실패를 대비한 설계
  • 느슨한 결합을 위한 이벤트 기반 아키텍처 고려

적절한 통합 전략은 특정 사용 사례, 성능 요구사항, 팀 전문성에 따라 다릅니다.

5. 모놀리식 분할: 마이크로서비스로 전환하기

우리의 모놀리스를 대리석 블록으로 생각하십시오. 전체를 폭파할 수도 있지만, 이는 거의 잘 끝나지 않습니다. 점진적으로 조금씩 깎아내는 것이 훨씬 더 합리적입니다.

점진적 접근. 모놀리식 아키텍처에서 마이크로서비스로 전환하는 것은 점진적으로 이루어지는 것이 가장 좋습니다. 이는 팀이 학습하고 적응하면서 위험을 최소화할 수 있게 합니다.

모놀리식 분할 단계:

  1. 기존 코드베이스에서 이음새 식별
  2. 경계된 컨텍스트를 별도의 모듈로 추출
  3. 공유 데이터 구조 및 데이터베이스 리팩토링
  4. 모듈 간 통신을 위한 API 생성
  5. 모듈을 별도의 서비스로 추출
  6. 새로운 기능을 마이크로서비스로 구현

고려해야 할 도전 과제:

  • 서비스 간 데이터 종속성
  • 서비스 경계를 넘는 트랜잭션 무결성
  • 네트워크 통신의 성능 영향
  • 여러 서비스를 관리하는 운영 복잡성

가장 쉬운, 위험이 적은 추출부터 시작하여 자신감과 경험을 쌓은 후 더 복잡한 부분을 다루십시오.

6. 배포 기술: 신뢰성과 확장성 보장

올바른 일을 하는 것이 어렵다면, 우리는 일을 더 쉽게 만들기 위해 노력해야 합니다.

자동화된 배포. 신뢰할 수 있고 확장 가능한 배포는 마이크로서비스 성공의 핵심입니다. 지속적 통합 및 지속적 배포(CI/CD) 관행은 증가된 배포 복잡성을 관리하는 데 필수적입니다.

주요 배포 기술:

  • 코드로서의 인프라 (IaC)
  • 컨테이너화 (예: Docker)
  • 오케스트레이션 플랫폼 (예: Kubernetes)
  • 블루-그린 배포
  • 카나리아 릴리스

배포 고려사항:

  • 서비스 검색 및 구성 관리
  • 모니터링 및 로깅
  • 보안 및 접근 제어
  • 데이터베이스 마이그레이션 및 데이터 일관성

도구와 자동화에 투자하여 배포를 더 쉽고 빠르며 신뢰할 수 있게 만드십시오. 이는 팀이 자주 배포할 수 있게 하여 마이크로서비스 아키텍처의 모든 이점을 실현할 수 있게 합니다.

7. 마이크로서비스 테스트: 분산 시스템에서 품질 유지

움직이는 부품이 많을수록 테스트가 더 취약해지고, 결정론적이지 않을 수 있습니다.

포괄적인 테스트 전략. 마이크로서비스를 테스트하려면 개별 서비스 품질과 전체 시스템 동작을 모두 보장하기 위한 다층 접근 방식이 필요합니다.

마이크로서비스 테스트 피라미드:

  • 단위 테스트: 개별 구성 요소에 대한 빠르고 집중된 테스트
  • 통합 테스트: 서비스 간 상호작용 검증
  • 계약 테스트: 서비스가 합의된 인터페이스를 충족하는지 확인
  • 종단 간 테스트: 전체 시스템 동작 검증

테스트 도전 과제:

  • 분산 특성으로 인한 복잡성 증가
  • 서비스 간 테스트 데이터 관리
  • 프로덕션과 유사한 환경 시뮬레이션
  • 비동기 상호작용 처리

단위 및 통합 테스트를 통해 빠른 피드백 루프를 강조하고, 중요한 경로를 검증하기 위해 신중하게 선택된 종단 간 테스트를 사용하십시오. 소비자 주도 계약을 사용하여 서비스 종속성을 효과적으로 관리하는 것을 고려하십시오.

8. 모니터링 및 보안: 마이크로서비스를 건강하고 안전하게 유지

좋은 로깅, 특히 여러 시스템에서 로그를 집계할 수 있는 능력은 예방이 아니라, 나쁜 일이 발생했을 때 감지하고 복구하는 데 도움이 됩니다.

전체적인 접근. 효과적인 모니터링과 보안은 건강한 마이크로서비스 생태계를 유지하는 데 필수적입니다. 이러한 측면은 분산 시스템에서 더 도전적이고 중요해집니다.

모니터링 모범 사례:

  • 중앙 집중식 로깅 및 로그 집계
  • 분산 추적 (예: 상관 ID 사용)
  • 실시간 경고 및 대시보드
  • 애플리케이션 성능 모니터링 (APM)
  • 중요한 경로에 대한 합성 모니터링

보안 고려사항:

  • 서비스 간 인증 및 권한 부여
  • 엣지 보안을 위한 API 게이트웨이
  • 비밀 관리
  • 네트워크 분할
  • 정기적인 보안 감사 및 침투 테스트

깊이 방어 전략을 구현하여 주변과 개별 서비스를 모두 보호하십시오. 모든 서비스에 일관된 보안 정책을 적용하기 위해 자동화를 사용하십시오.

9. 콘웨이의 법칙: 조직과 시스템 설계의 정렬

콘웨이의 법칙은 조직과 일치하지 않는 시스템 설계를 강요하는 위험을 강조합니다.

조직적 영향. 콘웨이의 법칙은 시스템 설계가 조직 내 커뮤니케이션 구조를 반영한다고 말합니다. 이 원칙은 마이크로서비스 아키텍처에 중요한 영향을 미칩니다.

팀과 서비스 정렬:

  • 비즈니스 기능을 중심으로 팀 구성
  • 서비스의 종단 간 소유권을 팀에 부여
  • 팀 간 종속성 최소화
  • 협업과 공동 책임 문화를 조성

고려사항:

  • 팀 크기와 구성
  • 커뮤니케이션 패턴 및 도구
  • 의사 결정 과정
  • 기술 개발 및 지식 공유

조직 구조와 시스템 아키텍처가 상호 연관되어 있음을 인식하십시오. 성공적인 마이크로서비스 개발 및 운영을 위한 환경을 조성하기 위해 둘 다 함께 진화시키십시오.

10. 마이크로서비스 확장: 성장과 실패 처리

규모가 커지면 최고의 장비, 가장 비싼 하드웨어를 구입하더라도 실패를 피할 수 없습니다.

확장성과 회복력을 위한 설계. 마이크로서비스 아키텍처는 수요 증가와 불가피한 실패를 우아하게 처리할 수 있도록 설계되어야 합니다.

확장 전략:

  • 수평 확장 (인스턴스 추가)
  • 수직 확장 (인스턴스당 리소스 증가)
  • 캐싱 (인메모리, 분산)
  • 데이터베이스 샤딩 및 복제
  • 비동기 처리 및 이벤트 기반 아키텍처

회복력 패턴:

  • 연쇄 실패를 방지하기 위한 회로 차단기
  • 고장 격리를 위한 벌크헤드
  • 지수 백오프를 사용한 타임아웃 및 재시도
  • 기능의 우아한 저하

CAP 정리 고려사항:

  • 일관성
  • 가용성
  • 파티션 내성

분산 시스템을 확장할 때는 트레이드오프가 필요함을 이해하십시오. 특정 요구사항과 제약에 따라 우선순위를 정하십시오. 시스템 회복력을 지속적으로 개선하기 위해 가시성 및 혼돈 공학 관행을 구현하십시오.

Last updated:

리뷰

4.21 out of 5
Average of 4k+ ratings from Goodreads and Amazon.

마이크로서비스 구축은 다양한 평가를 받고 있으며, 많은 이들이 마이크로서비스 개념에 대한 포괄적인 개요와 실용적인 조언을 칭찬하고 있다. 독자들은 저자의 신중한 접근 방식과 실제 사례를 높이 평가한다. 비평가들은 일부 주제에 대한 깊이 부족과 마이크로서비스를 과대평가할 가능성을 지적한다. 많은 이들이 초보자에게는 유용하지만, 경험 많은 아키텍트에게는 덜 유용하다고 생각한다. 이 책은 마이크로서비스의 설계, 배포, 테스트, 확장 등 다양한 측면을 다루고 있다. 일부 독자들은 더 구체적인 구현 세부 사항을 원했지만, 다른 이들은 소프트웨어 아키텍처에 대한 고차원적인 관점을 가치 있게 여겼다.

저자 소개

샘 뉴먼은 마이크로서비스, 클라우드 컴퓨팅, 지속적 전달 분야에서 전문성을 갖춘 저명한 소프트웨어 아키텍트이자 컨설턴트이다. 이 분야에서 광범위한 경험을 쌓은 그는 수많은 조직과 협력하여 소프트웨어 아키텍처를 구현하고 개선해왔다. 뉴먼은 컨퍼런스에서 자주 연설하며, 소프트웨어 개발에 관한 여러 권의 책을 저술했다. 그의 글쓰기 스타일은 명확하고 실용적이며 흥미롭다는 평가를 받으며, 실제 경험에서 우러나온 내용을 담고 있다. 마이크로서비스 분야의 사상가로서 뉴먼의 작업은 분산 시스템 구축에 대한 업계의 접근 방식에 큰 영향을 미쳤다. 그의 전문성은 기술적 측면을 넘어 소프트웨어 개발의 조직적, 문화적 고려 사항까지 포괄한다.

0:00
-0:00
1x
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Listening – audio summariesListen to the first takeaway of every book for free, upgrade to Pro for unlimited listening.
Unlock unlimited listening
Your first week's on us
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 5: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Sep 26,
cancel anytime before.
What our users say
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Compare Features
Free Pro
Read full text summaries
Listen to full summaries
Unlimited Bookmarks
Unlimited History
Benefits
Get Ahead in Your Career
People who read at least 7 business books per year earn 2.3 times more on average than those who only read one book per year.
Unlock Knowledge Faster (or Read any book in 10 hours minutes)
How would your life change if we gave you the superpower to read 10 books per month?
Access 12,000+ hours of audio
Access almost unlimited content—if you listen to 1 hour daily, it’ll take you 33 years to listen to all of it.
Priority 24/7 AI-powered and human support
If you have any questions or issues, our AI can resolve 90% of the issues, and we respond in 2 hours during office hours: Mon-Fri 9 AM - 9 PM PT.
New features and books every week
We are a fast-paced company and continuously add more books and features on a weekly basis.
Fun Fact
2.8x
Pro users consume 2.8x more books than free users.
Interesting Stats
Reduced Stress: Reading for just 6 minutes can reduce stress levels by 68%
Reading can boost emotional development and career prospects by 50% to 100%
Vocabulary Expansion: Reading for 20 minutes a day are exposed to about 1.8 million words per year
Improved Cognitive Function: Reading can help reduce mental decline in old age by up to 32%.
Better Sleep: 50% of people who read before bed report better sleep.
Can I switch plans later?
Yes, you can easily switch between plans.
Is it easy to cancel?
Yes, it's just a couple of clicks. Simply go to Manage Subscription in the upper-right menu.
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.