이미 소장하고 있다면 판매해 보세요.
|
1장. 마이크로서비스 소개
__서비스 지향 아키텍처의 기원 __모놀리식 접근 방식 __마이크로서비스 접근 방식 __마이크로서비스의 장점 ____위험 분리 ____작은 프로젝트 ____확장 및 배포의 다양한 옵션 __마이크로서비스의 단점 ____비논리적인 분할 ____네트워크 연동 증가 ____데이터 저장과 공유 ____호환성 이슈 ____테스트 __파이썬으로 마이크로서비스 구현 ____WSGI 표준 ____Greenlet과 Gevent ____트위스티드와 토네이도 ____asyncio ____언어 성능 __요약 2장. 플라스크 알아보기 __파이썬 버전 선택 __플라스크에서 요청 처리 ____라우팅 ____요청 ____응답 __플라스크 기본 기능 ____session 객체 ____전역 공간 ____시그널 ____확장과 미들웨어 ____템플릿 ____설정 ____블루프린트 ____에러 처리 및 디버깅 __마이크로서비스 구조 __요약 3장. 코딩, 테스트, 문서화: 선순환 __테스트의 여러 종류 ____단위 테스트 ____기능 테스트 ____통합 테스트 ____부하 테스트 ____엔드-투-엔드 테스트 __WebTest 사용 __pytest와 Tox 사용 __개발자 문서 __지속적인 통합 ____Travis-CI ____ReadTheDocs ____Coveralls __요약 4장. 샘플 프로젝트 Runnerly 설계 __Runnerly 애플리케이션 ____사용자 스토리 __모놀리식 설계 ____모델 ____뷰와 템플릿 ____백그라운드 작업 ____인증과 허가 ____모놀리식으로 함께 묶기 __모놀리식 분리 __데이터 서비스 __Open API 2.0 사용 __좀 더 분할 __요약 5장. 서비스 연동 __동기식 호출 ____플라스크 app에서 세션 사용 ____커넥션 풀링 ____HTTP 캐시 헤더 ____데이터 전송 효율 높이기 __비동기 호출 ____태스크 큐 ____토픽 큐 ____게시 / 구독 ____AMQP를 통한 RPC 사용 __테스팅 ____동기식 호출 모방 ____비동기식 호출 모방 __요약 6장. 서비스 모니터링 __중앙 집중화된 로그 ____Graylog 구성 ____Graylog에 로그 보내기 ____필드 추가 __성능 지표 ____시스템 지표 ____코드 지표 ____웹 서버 지표 __요약 7장. 서비스 보안 __OAuth2 프로토콜 __토큰 기반 인증 ____JWT 표준 ____PyJWT ____X.509 기반 인증 ____TokenDealer 마이크로서비스 ____TokenDealer 사용 __웹 애플리케이션 방화벽 ____OpenResty: 루아와 nginx __코드 보안 ____외부에서 유입되는 요청 평가 ____애플리케이션 영역 제한 ____Bandit 린터 사용 __요약 8장. 하나로 모으기 __리액트 대시보드 만들기 ____JSX ____리액트 컴포넌트 ______리액트와 플라스크 ____Bower, npm, 바벨 사용 ____CORS __인증과 권한 부여 ____데이터 서비스와 상호작용 ____스트라바 토큰 얻기 ____자바스크립트 인증 __요약 9장. Runnerly 패키징 및 실행 __패키징 도구 모음 ____용어 정의 ____패키징 ____버전 관리 ____릴리스 ____배포 __모든 마이크로서비스 실행 __프로세스 관리 __요약 10장. 컨테이너 서비스 __도커란? __도커 기본 __도커에서 플라스크 실행 __풀스택: OpenResty, Circus, 플라스크 ____OpenResty ____Circus __도커 기반 배포 ____도커 컴포즈 ____클러스터링, 프로비저닝 __요약 11장. AWS에 배포 __AWS 개요 __라우팅: Route 53, ELB, Auto Scaling __실행: EC2, Lambda __스토리지: EBS, S3, RDS, ElasticCache, CloudFront ____메시징: SES, SQS, SNS ____프로비저닝과 배포: CloudFormation, ECS __AWS에 배포: 기본 ____AWS 계정 설정 ____CoreOS를 사용해 EC2에 배포 __ECS를 사용해 배포 __Route 53 __요약 12장. 더 나아가기 __반복자와 발생자 __코루틴 __asyncio 라이브러리 __aiohttp 프레임워크 __Sanic __비동기와 동기 __요약 |
김현욱의 다른 상품
|
- 지은이의 말
7년 전 모질라에서 내가 속한 팀은 파이어폭스(Firefox)에 관한 웹 서비스를 만들기 시작했다. 이때 만든 웹 서비스들이 지금은 마이크로서비스가 됐다. 마이크로서비스가 되기까지의 변화는 시간이 지나면서 조금씩 생겨났다. 변화를 일으킨 첫 번째 시작점은 모든 서비스를 클라우드로 이전해서 서드파티 서비스들과 연동하기 시작하면서부터다. 클라우드에서 애플리케이션을 서비스하면 자연스레 마이크로서비스 형태를 갖추게 된다. 두 번째 계기는 파이어폭스 계정 프로젝트다. 파이어폭스와 우리가 만든 서비스들이 연동하기 위해서는 단일 자격증명(single identify)이 필요했다. 모든 서비스가 하나의 자격증명 서비스와 효과적으로 연결되기 위해 결국 필요한 부분들이 마이크로서비스로 재설계되기 시작했다. 많은 웹 개발자들이 위와 비슷한 경험을 했거나 현재 겪고 있다고 생각한다. 파이썬은 이와 같이 작고 효과적인 마이크로서비스를 개발하는 데 최적의 언어다. 파이썬 생태계는 역동적이며, 파이썬 3의 최신 기능은 지난 5년간 뛰어난 성장을 보여준 Node.js에 비견할 경쟁력을 갖추고 있다. 이와 같은 내용을 이 책에서 다룬다. 이 책을 쓰기 위해 Runnerly라는 마이크로서비스를 개발했다. 프로젝트를 만들면서 얻은 경험을 독자 여러분과 공유하고자 한다. 이 애플리케이션은 깃허브에 올라가 있으며, 깃허브를 통해 나와 소통할 수 있다. 실수가 있다면 짚어 주길 바라며, 깃허브에서 멋진 파이썬 애플리케이션을 같이 만들어 보면서 배움을 이어갈 수 있다. - 옮긴이의 말 파이썬의 힘은 이해하기 쉬운 코드와 '뭘 좋아하지 몰라 다 준비된' 수많은 라이브러리, 영리한 커뮤니티 구성원들의 왕성한 활동에서 비롯됩니다. 덕분에 파이썬은 업무 생산성을 향상시키는 강력한 스크립트 제작부터 데이터 과학, 백엔드 서비스에 이르기까지 다양한 분야에서 사용되고 있습니다. 소프트웨어 개발 분야는 새로운 개념과 기술, 언어가 유난히 빈번하게 등장하며, 그중 일부는 도태되고 일부는 오랜 기간 쓰이면서 또 다른 기술을 파생시키기도 합니다. SOA를 좀 더 구체화한 개념으로 소개된 마이크로서비스는 현재의 클라우드 기반 환경에서 가장 인기 있는 아키텍처가 됐습니다. 마이크로서비스는 여러 장점이 있지만, 개발 및 운영상의 복잡성이 증가할 수 있습니다. 그렇기 때문에 자동화된 테스트, 지속적인 통합/배포(CI/CD) 및 데브옵스가 그 밑바탕을 지탱할 필요가 있습니다. 이 책은 파이썬을 활용해 마이크로서비스를 만들고 테스트하고 배포하는 전체 과정을 짚어가면서 모범 사례와 주의할 점 등을 설명합니다. 이 책의 저자는 모질라 서비스 팀의 파이썬 개발자로 일하고 있으며, 프랑스 파이썬 사용자 그룹 및 다양한 오픈 소스 활동에서 얻은 경험을 녹여내 적절한 예제를 곁들여 설명합니다. 마이크로서비스의 개념과 아키텍처 적용 절차가 궁금하거나 파이썬 생태계를 활용해서 직접 개발을 시작해보고 싶은 독자분들께 이 책은 적당한 출발선이 돼 줄 것입니다. 또한 마이크로서비스 개발에 국한되지 않는 파이썬의 전반적인 내용과 상황에 맞는 라이브러리 활용법, 그리고 모범적인 개발 프로세스를 체험하면서 여러분의 실력을 배양하는 데 든든한 밑거름이 될 것입니다. 이제 파이썬과 또 한 번 즐거운 여정을 시작하시기 바랍니다. |