이미 소장하고 있다면 판매해 보세요.
|
1장. 마이크로서비스
__마이크로서비스란? __자율 서비스 __소규모 서비스 __마이크로서비스의 이점 ____독립적인 배포 ____지속적인 혁신 ____확장과 리소스 활용의 개선 ____기술 다양성 ____소규모 팀 ____오류 격리 __도전 ____복잡성 ____네트워크 혼잡 및 대기시간 ____데이터 일관성 ____테스트 ____통합과 버전 관리 ____서비스 검색과 라우팅 ____모니터링과 로깅 ____기량과 경험 ____가동시간 서비스 수준 계약(SLA) __모범 사례 ____캡슐화 ____데브옵스 원칙과 문화 ____자동화 ____모니터링 ____결함 허용 __요약 2장. Azure의 컨테이너 __VM과 컨테이너, 프로세스 ____가상 머신이나 프로세스에서 컨테이너를 사용하는 시기 __Azure의 컨테이너 __도커가 있는 Azure VM 만들기 ____Windows에서 SSH 공개 키 생성 ____Mac OS X에서 SSH 공개 키 생성 ____가상 머신 이미지 선택 ____Windows에서 SSH와 Git Bash를 사용해 VM 연결하기 ____Mac OS X에서 SSH와 Git Bash를 사용해 VM 연결하기 ____도커 컨테이너 기초 __요약 3장. 애플리케이션 설계 __어디서 시작할지 결정하기 ____코스 그레인드 서비스 ____마이크로서비스로 시작하기 __서비스와 인터페이스 정의 ____애플리케이션 분해 ____서비스 설계 __서비스 vs. 서비스 통신 ____동기 요청/응답 ____비동기 메시징 __모놀리스에서 마이크로서비스로 __Flak.io 전자상거래 샘플 ____Flak.io ____요구사항 ____아키텍처 개요 ____고려사항 __요약 4장. 개발 환경 설정 __로컬 개발을 위한 도커 사용하기 ____로컬 개발용 도커 ____운영 유효성 검증을 위한 도커 ____빌드/테스트 호스트로서 도커 __개발자 구성 ____로컬 개발 ____로컬 및 클라우드 ____클라우드 전용 ____도커 인증 관리 ____기본 이미지 선택 ____이미지의 계층구조 만들기 __로컬 개발 환경 설정 ____도커 도구 설치 ____개발자 도구 설치 ____Windows 유틸리티 설치 ____OS X 유틸리티 설치 __로컬 개발을 위한 도커 ____로컬 개발 설정 ____로컬 도커 호스트 시작 ____도커 호스트에 연결하기 ____샘플 복제하기 ____도커 컨테이너에서 라이브 리로드 사용하기 ____볼륨 ____운영 환경을 위한 마이크로서비스 준비 ____도커 컴포즈 __도커 문제 디버깅 ____도커 호스트에 연결할 수 없다. ____컨테이너가 시작되지 않는다. ____컨테이너 실행 진단하기 __요약 5장. 서비스 오케스트레이션과 연결 __오케스트레이션 __프로비저닝 ____코드로서의 인프라 ____Azure 리소스 관리자 ____Azure 컨테이너 서비스 ____ACS 리소스 공급자 ____멀티벤터 프로비저닝 __스케줄링과 클러스터 관리 ____문제점 ____스케줄링 솔루션 ____도커 스웜 ____큐버네티스 ____아파치 메소스 ____아파치 메소스를 사용한 다양한 작업 부하 실행 __서비스 검색 ____서비스 등록 ____서비스 조회 ____서비스 레지스트리 ____다양한 기술 ____기타 기술 ____애플리케이션/API 게이트웨이 ____오버레이 네트워킹 __요약 6장. 데브옵스와 지속적인 업데이트 __데브옵스 개요 ____현대의 데브옵스 ____데브옵스 문화 ____연속 통합과 지속적인 전달, 연속 배포 ____Azure에서 환경 만들기 __지속적인 업데이트를 사용한 마이크로서비스 배포 ____서로 다른 환경에서의 애플리케이션 구성 변경 ____연속 통합 ____QA 환경의 테스트 ____스테이징 배포 ____운영 환경의 테스트 __지속적인 업데이트 도구 선택 ____온프레미스 또는 호스팅? ____최고의 솔루션 또는 통합 솔루션? ____도구에서 필요한 확장을 제공하는가? ____젠킨스와 팀 서비스, 뱀부, Tutum의 비교 ____도커 클라우드(이전엔 Tutum) __요약 7장. 모니터링 __호스트 머신 모니터링 __컨테이너 모니터링 ____모니터링 서비스 __모니터링 솔루션 ____Azure 진단 ____Application Insights ____OMS ____도커의 권장 솔루션 __요약 8장. Azure 서비스 패브릭 __서비스 패브릭 개요 ____서비스 패브릭 하위시스템 ____클러스터 관리 __리소스 스케줄링 ____서비스 패브릭 애플리케이션 ____사용자 지정 애플리케이션(기존 애플리케이션) ____컨테이너 통합 __서비스 검색 __프로그래밍 모델 ____상태 비저장 서비스 ____상태 저장 서비스 ____신뢰할 수 있는 액터(Reliable Actors) ____신뢰할 수 있는 서비스(Reliable Services) __애플리케이션 수명주기 ____서비스 업데이트 ____애플리케이션 업그레이드 ____테스트 용이성 프레임워크 __요약 부록. ASP.NET Core 1.0과 마이크로서비스 __ASP.NET의 새로운 버전 ____시작하기 ____알맞은 ASP.NET 도커 이미지 선택하기 ____Visual Studio 2015 도구 ____ASP.NET 마이크로서비스 모범 사례 |
|
★ 이 책에서 다루는 내용 ★
■ 마이크로서비스 아키텍처의 차이점과 사용 시기 ■ 마이크로서비스 아키텍처의 맥락에서 도커 컨테이너 이해 ■ 도커 이미지 구축과 가져오기, 계층화 시키기 ■ 도커 볼륨과 컨테이너, 이미지, 태그, 로그 다루기 ■ 도커 스웜과 도커 컴포즈, 도커 네트워크 사용 ■ Azure 포털과 Azure 리소스 관리자, 명령줄, docker-machine, 도커 툴박스를 통한 로컬 도커 호스트 만들기 ■ 마이크로서비스 애플리케이션을 지원하는 개발과 데브옵스 환경 구축 ■ 도커의 지속적인 업데이트 옵션 활용 ■ Azure의 클러스터와 컨테이너 오케스트레이션 기능을 사용해 최대한의 복원력으로 컨테이너 기반 마이크로서비스 애플리케이션 운영과 확장 ■ Azure 진단과 Visual Studio Application Insights, Microsoft Operations Management Suite를 사용한 마이크로서비스 애플리케이션 모니터링 ■ Azure 서비스 패브릭으로 마이크로서비스 애플리케이션을 빠르고 효과적으로 개발하기 ★ 이 책의 대상 독자 ★ Azure에서 마이크로서비스 기반 애플리케이션을 만드는 데 흥미를 가진 사람들을 대상으로 한다. 이 책을 읽은 후 마이크로서비스 기반 애플리케이션의 이점과 도전에 관한 견고한 이해를 갖게 될 것이다. ★ 지은이의 말 ★ 우리 세 사람은 2009년 Microsoft Azure 클라우드 플랫폼이 시장에 처음 등장한 이후로 여기서 작업해왔다. 이 플랫폼을 사용한 공동 작업은 플랫폼을 만들고 플랫폼에서 애플리케이션을 만드는 것부터 Azure 개발 도구를 만들고 경험하는 것까지 꽤 광범위했다. 게다가 많은 고객과 파트너들이 Microsoft Azure에서 대규모 클라우드 기반 애플리케이션을 만들 수 있도록 지원했다. 지난 몇 년 동안 복원력과 확장성 있는 애플리케이션 설계부터 데브옵스 모범 사례, 고객과의 상호작용에서 Azure 플랫폼 기능과 Azure 도구, 기술 문서에 이르기까지 많은 교훈을 적용할 수 있었다. 하지만 몇 가지 질문과 문제가 계속해서 뒤따랐다. 예를 들자면 이런 질문이다. 개발 머신에서 돌아가는 것이 클라우드 환경에서도 돌아갈 것이라고 어떻게 보장할 수 있을까? 한 구성 요소에 대한 사소한 변경이 있는 경우 전체를 업데이트하지 않도록 애플리케이션 구조를 어떻게 짜야 할까? 다운타임 없이 가능한 빨리 업데이트를 배포하는 방법이 뭘까? 구성과 환경 변경은 어떻게 다뤄야 할까? 2013년에 이러한 도전을 다루며 아키텍처적 접근 방식으로 마이크로서비스를 사용하는 넷플릭스와 아마존, 다른 사업체에 관해 많은 업계 리더, 고객과 얘기하기 시작했다. 성공적인 아키텍처들(내부 및 외부 고객)과 하나씩 비교했고 그들이 이미 마이크로서비스 패턴의 많은 특성을 구현했다는 것을 알았다. 예를 들어 작업량을 기준으로 한 클라우드 서비스 애플리케이션 설계나 애플리케이션을 개별 컴포넌트/서비스의 수명을 갖는 다수의 서비스로 분해하는 것 등이다. 분명히 아키텍처는 이러한 방향으로 진화하고 있었고, ‘마이크로서비스’라는 용어가 대중화 됐을 때 많은 아키텍트와 개발자는 자신들이 이 방향으로 향하고 있음을 알았다. 도커(Docker)로 들어가 보자. 도커는 배포에 따른 부하와 하나의 서비스를 하나의 호스트에 배치하는 비용을 줄인다. 배포 부하가 줄어들면 마이크로서비스 아키텍처에서 늘어나는 공통 서비스의 배포를 관리하고 폴리글랏(polyglot) 환경에서 배포 메커니즘을 표준화하는 데 도움을 준다. 컨테이너와 함께 클라우드 환경에서 제공하는 프로그래밍 인프라는 마이크로서비스 아키텍처로 가는 길을 깔았다. 그러나 알맞은 아키텍처 접근 방식과 도구가 방정식의 절반이고, 개발/테스트 환경 구성과 데브옵스 플로우 자동화, 가상 머신들에서 도커 컨테이너를 지휘하고 계획하는 방법과 다른 서비스에서 마이크로서비스를 발견하는 방법, 해당 환경과 서비스를 모니터링하는 방법에 관한 개념적 사고가 나머지 절반을 이룬다. 우리는 최근 2년 동안 도커를 위한 Visual Studio 도구 세팅 엔지니어링 팀과 Azure 서비스 패브릭 컴퓨트(Service Fabric Compute) 엔지니어링 팀 양쪽에서 마이크로서비스와 도커 시나리오를 다루거나 다른 고객들과 작업했다. 어렵게 배운 교훈을 공유하고 Azure에서 도커를 사용해 마이크로서비스를 만드는 데 필요한 도구를 제공하고자 한다. ★ 옮긴이의 말 ★ 컨테이너 가상화 환경에서 애플리케이션을 관리하고 실행하기 위한 오픈소스 플랫폼으로 등장한 도커는 단시간에 붐을 일으켰다. 특히 이상은 높았으나 실현이 힘들었던 SOA 사상의 참담한 실패 이후 도커는 마이크로서비스 아키텍처를 뒷받침 해주는 역할로서 늘어나는 공통 서비스의 배포 관리를 단순화해주고 다양한 환경에서 배포 메커니즘의 표준화를 이끌었다. 클라우드 기술의 발전과 관련 산업의 성장과 함께 기존의 컨테이너 기술이 재조명되고 프로그래밍 가능한 인프라가 실현됨에 따라 마이크로서비스 아키텍처로 가는 많은 장애물이 제거됐다. 이 책은 클라우드 서비스, 그 중에서도 Microsoft Azure에서 도커를 활용해 마이크로서비스를 구현하는 기술과 환경, 도구에 초점을 맞췄다. Azure 위에서 마이크로서비스를 구현해보고 싶어 하는 독자들이 궁금해 할 만한 대부분의 내용을 다루고 있다. 마이크로서비스를 구현하기 위해 어디서 시작해야 할지, 어디로 가야 할지, 걸림돌이 무엇인지 궁금하다면, 이 책에서 그 답을 얻을 수 있으리라 생각한다. Azure와 도커의 세계는 변화가 빠르기 때문에 원서를 받고 가능한 빨리 번역을 진행했지만, 번역 기간 중에 Azure의 변화가 있었고, 관련 도구들의 변화도 있었다. 물론 이 책에서는 그런 변화를 반영했지만 시간이 흐르면 이 책에서 언급한 도구나 Azure의 모습은 바뀔 수 있다. 그렇더라도 기본 사상과 큰 그림, 구현 요소 등은 변하지 않으니 꽤 오랫동안 참고할 만한 책으로 남기를 기대한다. 2017년 5월 독립 IT 기술자, 김도균 |