2. 발표자 소개
기술 배경
클라우드 네이티브 아키텍처 설계, 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (마이크로서비스 도입 이렇게 한다, 클린 코드, 피플웨어, 해커: 광기의 랩소디 등)
개발강의 (삼성전자, 삼성 SDI, SK C&C, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호
3. 일상화된 마이크로서비스 아키텍처
B21 스텔스 폭격기는 마이크로서비스 아키텍처와 쿠버네티스에 기반해
다목적 임무 수행(폭격, 전투 지휘, 정보 수집)이 가능한 형태로 제작됨
5. 아키텍처 변경의 어려움
운영 중인 서비스의 아키텍처를 변경하는 작업은 날고 있는
비행기의 엔진을 교체하는 작업과 유사하다!
* 복잡도 때문
- 분산 시스템은 본질적으로 복잡하다(complex)
- 네트워크 대기 시간, 결함 포용, 재시도 폭풍, …
- 운영 부하도 걸림 → 따라서 DevOps 모델을 적용
* 참고: simple vs complicated vs complex vs chaotic
- simple → 쉽게 알 수 있다
- complicated → 쉽지는 않지만 그래도 알 수 있다
- complex → 완전히 알지는 못해도 합리적으로 예측할 수 있다
- chaotic → 알지도 예측도 못한다
마이크로서비스는 왜 어려운가?
6. 아키텍처 변경의 어려움 – 분산 애플리케이션의 요구
- 배포/롤백
- 배치/스케줄링
- 구성 관리
- 자원/실패 격리
- 자동/수동 확장
- 하이브리드 워크로드
(무상태형, 상태형, 서버
리스 등등)
- 서비스 발견
- 동적 트래픽 라우팅
- 재시도, 타임아웃, 회로 차단
- 보안, 암호화
- 관측성과 추적
- API를 위한 커텍터
- 프로토콜 변환
- 메시지 변환
- 필터링, 경량 메시지 라우팅
- 점-대-점, pub/sub 상호 작용
- 작업흐름 관리
- 시간적인 스케줄링
- 분산 캐싱
- 멱등성
- 사가
- 애플리케이션 상태
The Evolution of Distributed Systems on Kubernetes
by @bibryam at QConLondon2020
7. 모놀리스가 무조건 나쁠까?
레거시와 모놀리스는 우리의 적이 아니다. 살아갈 집이다.
단일 프로세스 모놀리스 모듈식 모놀리스 모듈식 모놀리스
(w/ 분해된 데이터베이스)