Post

1장 모놀리식 지옥에서 벗어나라

1장 모놀리식 지옥에서 벗어나라

목차

1장 모놀리식 지옥에서 벗어나라 1.1 서서히 모놀리식 지옥에 빠져들다 1.1.1 FTGO 애플리케이션 아키텍처 1.1.2 모놀리식 아키텍처의 장점 1.1.3 모놀리식 지옥의 실상 1.2 이 책의 대상 독자 1.3 이 책의 학습 내용 1.4 마이크로서비스 아키텍처가 답이다 1.4.1 확장 큐브와 마이크로서비스 1.4.2 마이크로서비스는 모듈성을 갖고 있다 1.4.3 서비스마다 DB가 따로 있다 1.4.4 FTGO 마이크로서비스 아키텍처 1.4.5 마이크로서비스 아키텍처와 SOA 1.5 마이크로서비스 아키텍처의 장단점 1.5.1 마이크로서비스 아키텍처의 장점 1.5.2 마이크로서비스 아키텍처의 단점 1.6 마이크로서비스 아키텍처 패턴 언어 1.6.1 마이크로서비스 아키텍처도 만병통치약은 아니다 1.6.2 패턴 및 패턴 언어 1.6.3 마이크로서비스 아키텍처 패턴 언어 개요 1.7 마이크로서비스 너머: 프로세스와 조직 1.7.1 소프트웨어 개발/전달 조직 1.7.2 소프트웨어 개발/전달 프로세스 1.7.3 마이크로서비스를 받아들이는 인간적 요소 1.8 마치며

내용 정리

1장 모놀리식 지옥에서 벗어나라

1.1 서서히 모놀리식 지옥에 빠져들다

  • 여기서 지옥이라 말한 이유 : 크기가 커질 수록1. 빌드 속도도 늦고, 테스트도 느리고, 컴파일도 느리고, 결국 오류를 찾는데 느려짐.(신뢰성도 떨어짐.) + 한물간 기술스택

    1.1.1 FTGO 애플리케이션 아키텍처

  • 예시로 드는 애플리케이션은 모놀리식 아키텍처였음.

    1.1.2 모놀리식 아키텍처의 장점

  • 구성이 간편하다.
  • 예외 발견이 쉽다.
  • 초기에 개발 시작하기에 좋다.

    1.1.3 모놀리식 지옥의 실상

  • 앞서 말함.

1.2 이 책의 대상 독자

  • msa가 궁금한 사람.
  • 효과적인 마이크로 서비스 테스트 전략

1.3 이 책의 학습 내용

1.4 마이크로서비스 아키텍처가 답이다

  • 항상 답은 아니지만, 위 지옥의 대다수를 해결함. 단 사이드 이펙트도 있는데, 이것은 뒤에서 설명할 예정임.

    1.4.1 확장 큐브와 마이크로서비스

  • 확장 큐브와 같이 애플리케이션을 확장하는 3가지 축이 있다고 함. x축 y축. z축. 서버 증설, 데이터 범위에 따른 요청 분리, 기능에 따른 분리가 그것임. 모놀리식에서는 서버 증설로 많은 것을 해결하려는 경향이 있음.

    1.4.2 마이크로서비스는 모듈성을 갖고 있다

  • 각 서비스는 다른 서비스가 함부로 규칙을 어기고 침투하지 못하게 API라는 경계선을 가지고 있음.

    1.4.3 서비스마다 DB가 따로 있다

  • 서비스마다 DB가 따로 있음. 따라서 하나의 서비스가 접속불능이 되도 다른 것들이 동작할수도 있음.

    1.4.4 FTGO 마이크로서비스 아키텍처

    1.4.5 마이크로서비스 아키텍처와 SOA

  • pass

1.5 마이크로서비스 아키텍처의 장단점

1.5.1 마이크로서비스 아키텍처의 장점

  • 확장에 유연하다.
  • 서비스 규모가 작아 관리가 쉬움

    1.5.2 마이크로서비스 아키텍처의 단점

  • 사이드 이펙트가 있다.
  • 더 복잡해질 수 있다. -> 개발 테스트, 배포가 어렵다.
  • 딱 맞는 서비스를 찾기 어렵다.
  • 도입 시점을 결정하기 어렵다.

1.6 마이크로서비스 아키텍처 패턴 언어

1.6.1 마이크로서비스 아키텍처도 만병통치약은 아니다

  • 위 단점이 있으니까 만병 통치약이 아니다.

    1.6.2 패턴 및 패턴 언어

  • 패턴으로 아키텍처를 설명하는 것.
    • 왜필요한가? 감정을 극복한 상태에서 기술을 논하기 위한 효과적인 방법.
  • 구조

    • forces
    • resulting context
      • 장점, 단점, 이슈
    • related patterns
      • 다른 패턴 사이의 관계. 선행, 후행, 대안, 일반화, 세분화 관계

    1.6.3 마이크로서비스 아키텍처 패턴 언어 개요

  • 인프라 패턴
  • 애플리케이션 인프라
  • 애플리케이션 패턴
  • 구체적 패턴
    • 통신 패턴
    • 데이터 일관성 패턴
    • 데이터 쿼리 패턴
    • 서비스 배포 패턴
    • 관측성 패턴 …
    • 보안 패턴.

1.7 마이크로서비스 너머: 프로세스와 조직

1.7.1 소프트웨어 개발/전달 조직

1.7.2 소프트웨어 개발/전달 프로세스

1.7.3 마이크로서비스를 받아들이는 인간적 요소

1.8 마치며

참고 자료

  • https://bryceyangs.github.io/various/2023/02/27/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%ED%8C%A8%ED%84%B4-1%EC%9E%A5/
This post is licensed under CC BY 4.0 by the author.