Node.js를 활용한 마이크로서비스 개발
도서명:Node.js를 활용한 마이크로서비스 개발
저자/출판사:데이비드,곤잘레스/에이콘출판
쪽수:352쪽
출판일:2017-08-31
ISBN:9791161750446
목차
1장. 마이크로서비스 아키텍처
__마이크로서비스의 필요성
____모놀리식 소프트웨어
____현실에서의 마이크로서비스
____마이크로서비스 지향 아키텍처
____장점
____단점
__주요 설계 원칙
____비즈니스 단위가 컴포넌트는 아니다
____스마트한 서비스와 독립적인 처리 능력이 없는 통신 파이프분산화
____기술적 정렬
____마이크로서비스 크기
__마이크로서비스의 주요 장점
____탄력성
____확장성
____기술적 이질성
____교체 가능성
____독립성
________교체 가능성이 중요한 이유
________배포 용이성
__SOA vs 마이크로서비스
__왜 Node.jsdlsrk?
____API 집합
____Node.js의 전망
__요약
2장. 마이크로서비스, 그리고 세네카와 PM2
__Node.js의 필요성
____Node.js, npm, 세네카, PM2의 설치
________npm
____첫 번째 프로그램 - Hello World
____Node.js의 쓰레드 모델
____모듈형 조직화의 모범 사례
________자바스크립트
________SOLID 설계 원칙
__세네카 - 마이크로서비스 프레임워크
____제어의 역전 처리
____세네카에서의 패턴 매칭
________Patrun - 패턴 매칭 라이브러리
________패턴 재사용
________플러그인 작성
________웹 서버 통합
__PM2 - Node.js를 위한 태스크 러너
____단일 쓰레드 애플리케이션과 예외
____PM2 - 업계 표준 태스크 러너 사용
__요약
3장. 모놀리스에서 마이크로서비스로
__먼저, 모놀리스가 있었다
____유기적 성장에 대한 대처 방법
____적절한 추상적 수준
__그 후, 마이크로서비스가 등장했다
____마이크로서비스의 단점
____모놀리스 분할
____모놀리스 분할 문제 - 데이터 관련 사항
__조직적 정렬
__요약
4장. 첫 번째 Node.js 마이크로서비스 작성
__마이크로머스 - 개요
__제품 관리자 - 두 가지 측면을 갖는 핵심 요소
____제품 목록 가져오기
____카테고리 별로 가져오기
____ID 별로 가져오기
____제품 추가하기
____제품 제거하기
____제품 편집하기
____모든 기능을 연결하기
____익스프레스와 통합하기 - REST API 생성 방법
__이메일 전송기 - 일반적 문제
____이메일 전송 방법
____인터페이스 정의하기
____Mandrill 설정
____실습 - 마이크로서비스에 Mandrill 통합하기
____대체 전략
__주문 관리자
____마이크로서비스 정의하기 - 비-로컬 데이터 수집 방법
____주문 관리자 - 코드
________원격 서비스 호출
________완벽함보다는 탄력성
__UI - API 집합체
____프런트엔드 마이크로서비스의 필요성
____코드
____서비스 품질 저하 - 실패가 재앙이 되지 않는 경우
____회로 차단기
____세네카 - 삶을 더 쉽게 만드는 간단한 퍼즐
____세네카와 프라미스
__디버깅
__요약
5장. 보안과 추적성
__논리적인 인프라스트럭처 보****
____SSH - 통신 암호화하기
__애플리케이션 보****
____일반적인 보****위협 - 최신 보****상태 유지 방법
________주입크로스 사이트 스크립팅
________크로스 사이트 요청 위조
________오픈 리다이렉트
____효과적인 코드 리뷰
__추적성
____로깅
____요청 추적
____감사
____HTTP 코드
________1xx - 정보 제공
________2xx - 성공 코드
________3xx - 리다이렉션
________4xx - 클라이언트 오류
________5xx -서버 오류
________마이크로서비스에서 HTTP 코드가 문제되는 이유
__요약
6장. Node.js 마이크로서비스 테스트와 문서화
__기능 테스트
____자동화 테스트 피라미드
________단위 테스트
________통합 테스트
________종단간 테스트
________얼마나 많이 테스트해야 과도한가?
____Node.js에서 마이크로서비스 테스트Chai
________Mocha
________Sinon.JS - 가상 객체 생성 프레임워크
________실제 마이크로서비스에서의 테스트
________수동 테스트 - 필요악
__마이크로서비스 문서화
____Swagger를 통한 API 문서화
____Swagger 정의로부터 프로젝트 생성
__요약
7장. 마이크로서비스 모니터링
__서비스 모니터링
____PM2와 Keymetrics를 이용한 모니터링
________문제 진단애플리케이션 예외 처리 모니터링
________사용자 정의 메트릭
__시미언 아미 - 스포티파이에서의 액티브 모니터링
____처리량과 성능 저하
__요약
8장. 마이크로서비스 배포
__소프트웨어 배포 개념
____지속적인 통합
____지속적인 전달
__PM2를 통한 배포
____PM2 - 에코시스템
____PM2를 통한 마이크로서비스 배포
________서버 구성
__도커 - 소프트웨어 전달을 위한 컨테이너
____컨테이너 설정
________도커 설치
________이미지 선택
________컨테이너 실행
________필요한 소프트웨어 설치
________변경 사항 저장
____Node.js 애플리케이션 배포
____도커 컨테이너 생성 자동화
__배우기는 쉽고 마스터하기는 어려운 Node.js 이벤트 루프
__Node.js 애플리케이션 클러스터링
__애플리케이션 로드 밸런싱
____NGINX 상태 점검
________패시브 상태 점검
________액티브 상태 점검
__요약