클라우드 기반에서 개발,운영을 하려면 반드시 읽어보길 추천한다!!
클라우드에서 애플리케이션을 개발하기 위한 모범 사례 12요소가 설명된다.
클라우드 네이티브 모범 사례가 가장 도움이 된다!
클라우드 네이티브 모범 사례 하나 만으로도 이 책을 살만하다.
초급+ 중급
이론서
2020년 6월
애플리케이션당 하나의 코드 베이스만 있어야 한다.
설정은 코드와 엄격하게 분리해야 합니다.
컨테이너 = 애플리케이션 현대화
쿠버 네티스 개요
함수
민첩성 - 빠르고 안정적인 배포가 모놀리식 애플리케이션에서는 쉽지 않다.
지속적인 혁신 - 기업이 살아남으려면 더 빨리 움직여야 한다.
혁신적인 설계 - 모놀리식 애플리케이션은 새로운 기술이나 기법을 받아들이기 어렵다.
소규모, 집중하는 팀 - 대규모 엔지니어링 팀의 집중력과 생산성을 유지하는 건 어려운 일이다.
장애 격리 - 모놀리식 애플리케이션은 하나의 라이브러리나 모듈이 전체 애플리케이션에 문제를 발생시킬 수 있다.
스케일 기능과 자원 사용량 개선 - 스케일업과 스케일 아웃 가능
관찰 성 개선 - 모놀리식 애플리케이션은 각 구성요소를 개별적으로 측정하거나 관찰하기 어렵다.
복잡성 - 분산 시스템은 본질적으로 복잡하다. 애플리케이션을 개별 서비스로 나눠서 서비스 간 네트워크 호출이 필요. 지연. 전송 실패 발생
데이터 무결성과 일관성 - 여러 시스템에 있는 다양한 장소에 존재. 여러 시스템에 걸쳐 있어서 트랜잭션을 수행하는 것이 어렵다.
성능 - 네트워크 요청과 데이터 직렬화는 부하를 발생시킨다. 네트워크 연결수 증가한다.
개발과 테스팅- 현재 도구와 방법이 마이크로 서비스 아키텍처에 작동하지 않는다. CI/CD 파이프라인이 필요하다.
버저닝과 통합
모니터링과 로깅
서비스 의존성 관리
가용성
모든 것을 자동화 하기
모든 것을 모니터링 하기
모든 것을 문서화 하기
변화는 점진적으로 하기
장애에 대비하기
소스코드
컨테이너 이미지
컨테이너 저장소
파드
클러스터와 오 케스트 레이터
모놀리스를 적절하게 분리
단순한 서비스를 먼저 분리
작은 규모에서 운영 배우기
손상 방지 레이어 패턴 사용하기
데이터 마이그레이션 전력 수립