파이썬으로 하는 데브옵스 [자동화, 클라우드, 머신러닝, 데이터 엔지니어링까지]
- 원서명Python for DevOps: Learn Ruthlessly Effective Automation (ISBN 9781492057697)
- 지은이노아 기프트(Noah Gift), 케네디 베어먼(Kennedy Behrman), 알프레도 데자(Alfredo Deza), 그릭 게오르규(Grig Gheorghiu)
- 옮긴이전진우
- ISBN : 9791161755380
- 40,000원
- 2021년 06월 30일 펴냄 (절판)
- 페이퍼백 | 644쪽 | 188*235mm
- 시리즈 : 프로그래밍 언어
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/python-for-devops)
요약
파이썬을 통해 데브옵스를 가장 효율적으로 실천할 수 있는 방법을 구체적인 사례와 함께 설명한다. 특히 CI/CD, 모니터링, 테스트 자동화 등 데브옵스 전문가에게 필요한 다양한 업무와 더 나아가 클라우드와 머신러닝에 이르기까지 파이썬을 활용해 얼마나 다양하고 가치 있는 일을 할 수 있는지 배울 수 있다.
추천의 글
"언어에 대한 훌륭한 소개와, 이를 현대 소프트웨어 개발에 없어서는 안 되는 모든 기술 영역에서 사용하는 고급 과정"
-제레미 이브라우(Jeremy Yabrow)/ 엔지니어링 디렉터, BeyoundView. Inc
"데브옵스 실력을 키우는 데 도움이 될 새로운 지식과 기술을 접하게 될 것이다."
-웨스 노박(Wes Novack)/ 시스템 아키텍트, Pluralsight
이 책에서 다루는 내용
■ 파이썬 언어에 대한 간략한 소개
■ 텍스트 자동화, 명령줄 툴 작성, 파일 시스템 자동화 방법
■ 리눅스 유틸리티, 패키지 관리, 빌드 시스템, 모니터링 및 측정, 자동화 테스트
■ 클라우드 컴퓨팅, 코드형 인프라, 쿠버네티스, 서버리스
■ 데브옵스 관점의 머신러닝 운영 및 데이터 엔지니어링
■ 머신러닝 프로젝트 구축, 배포 및 운영
이 책의 구성
이 책의 내용은 몇 가지 주제로 나뉜다. 첫 번째 부분은 파이썬의 기초로 언어를 간략히 소개하고 텍스트 자동화, 명령줄 툴 작성, 파일시스템 자동화를 다룬다.
다음 부분은 운영에 관한 내용으로 유용한 리눅스 유틸리티, 패키지 관리, 빌드 시스템, 모니터링 및 도구, 테스트 자동화 등을 설명한다. 유능한 데브옵스 전문가가 되려면 숙달해야 할 필수 주제다.
다음으로 클라우드 기초를 다루는 부분에서는 클라우드 컴퓨팅, 코드형 인프라, 쿠버네티스 및 서버리스를 설명한다. 현재 소프트웨어 산업은 클라우드 역량을 갖춘 인재를 충분히 발굴하는 데 어려움을 겪고 있다. 이 부분을 숙달하면 곧바로 연봉과 경력 모두에 보상으로 이어질 것이다.
그 다음은 데이터 부분이다. 머신러닝 운영과 데이터 엔지니어링은 모두 데브옵스 관점에서 다룬다. 플라스크, 사이킷런, 도커, 쿠버네티스를 이용한 머신러닝 모델의 구축, 배포, 운영 등 머신러닝 프로젝트도 자세하게 설명한다. 클라우드 기초의 마지막 부분인 16장은 사례연구, 인터뷰, 데브옵스 현장의 이야기가 담겨 있다.
목차
목차
- 1장. 데브옵스를 위한 파이썬 핵심
- 파이썬 설치 및 실행
- 절차적 프로그래밍
- 실행 제어
- while 반복문
- 예외 처리
- 내장 객체
- 함수
- 정규 표현식 사용
- 지연 평가
- IPython의 추가적인 특징들
- 연습문제
- 2장. 파일 및 파일시스템 자동화
- 파일 읽기와 쓰기
- 텍스트 검색을 위한 정규 표현식 사용
- 대용량 파일 처리하기
- 텍스트 암호화
- os 모듈
- os.path를 활용한 파일 및 디렉터리 관리
- os.walk를 사용한 디렉터리 트리 탐색
- pathlib의 path 객체
- 3장. 명령줄로 작업하기
- 셸에서 작업하기
- 명령줄 툴 만들기
- 사례연구: 명령줄 툴을 통한 고성능 파이썬
- 연습문제
- 4장. 유용한 리눅스 유틸리티
- 디스크 유틸리티
- 네트워크 유틸리티
- CPU 유틸리티
- Bash와 ZSH로 작업하기
- Bash와 ZSH에서의 파이썬
- 파이썬 원라이너
- strace
- 연습문제
- 사례연구
- 5장. 패키지 관리
- 패키징의 중요성
- 패키지 가이드라인
- 전략 선택
- 패키징 솔루션
- systemd를 통한 관리
- 유닛 설치
- 연습문제
- 사례연구
- 6장. 지속적 통합과 지속적 배포
- 실제 사례연구: 관리 상태가 부실한 워드프레스 사이트를 휴고로 전환
- 실제 사례연구: 구글 클라우드 빌드를 통한 파이썬 앱 엔진 애플리케이션 배포
- 실제 사례연구: NFSOPS
- 7장. 모니터링 및 로깅
- 신뢰할 수 있는 시스템 구축의 핵심 개념
- 불변의 데브옵스 원칙
- 모니터링
- 측정
- 로깅
- ELK 스택
- 연습문제
- 사례연구
- 8장. 데브옵스를 위한 pytest
- pytest를 통한 Superpower 테스트
- pytest 시작하기
- pytest의 특징
- 픽스처
- 인프라스트럭처 테스트
- 예시
- pytest로 Jupyter Notebook 테스트
- 연습문제
- 사례연구
- 9장. 클라우드 컴퓨팅
- 클라우드 컴퓨팅의 기반
- 클라우드 컴퓨팅의 종류
- 클라우드 서비스의 종류
- 코드형 인프라
- 지속적 전달
- 가상화와 컨테이너
- 분산 컴퓨팅의 도전과 기회
- 클라우드 시대의 파이썬 병행처리, 성능 및 프로세스 관리
- 결론
- 연습문제
- 사례연구
- 10장. 코드형 인프라
- 인프라 자동화 툴 분류
- 수동 프로비저닝
- 테라폼을 활용한 인프라 프로비저닝 자동화
- 풀루미를 활용한 인프라 프로비저닝 자동화
- 연습문제
- 11장. 컨테이너 기술: 도커 및 도커 컴포즈
- 도커 컨테이너란 무엇인가
- 도커 이미지와 컨테이너의 생성, 작성, 실행, 삭제
- 도커 레지스트리에 도커 이미지 퍼블리싱
- 동일한 이미지로 각기 다른 호스트에 도커 컨테이너 실행하기
- 도커 컴포즈를 통한 멀티 도커 컨테이너 실행
- 새로운 호스트와 OS에 도커 컴포즈 서비스 포팅하기
- 연습문제
- 12장. 컨테이너 오케스트레이션: 쿠버네티스
- 쿠버네티스 개념의 간략한 개요
- Kompose를 사용해 docker-compose.yaml에서 쿠버네티스 매니페스트 만들기
- 미니큐브를 기반으로 로컬 쿠버네티스 클러스터에 쿠버네티스 매니페스트 배포하기
- 풀루미를 통해 GCP에서 GKE 쿠버네티스 클러스터 시작하기
- GKE로 플라스크 예제 애플리케이션 배포하기
- 프로메테우스와 그라파나 헬름 차트 설치
- GKE 클러스터 삭제
- 연습문제
- 13장. 서버리스 기술
- ‘빅 3’ 클라우드 프로바이더에 동일한 파이썬 함수 배포
- 자체 호스팅 FaaS 플랫폼에 파이썬 함수 배포
- AWS CDK를 사용한 DynamoDB 테이블, Lambda 함수 및 API Gateway 메소드 프로비저닝
- 연습문제
- 14장. MLOps와 머신러닝 엔지니어링
- 머신러닝이란 무엇인가
- 파이썬 머신러닝 생
- 클라우드 머신러닝 플랫폼
- 머신러닝 성숙도 모델
- 쿠버네티스와 도커를 활용한 sklearn 플라스크
- 쿠버네티스와 도커를 활용한 sklearn 플라스
- 연습문제
- 사례연구
- 학습평가
- 15장. 데이터 엔지니어링
- 스몰 데이터
- 파일 쓰기
- 파일 읽기
- 라인 읽기 및 처리를 위한 제너레이터 파이프라인
- YAML 사용하기
- 빅데이터
- 빅데이터 툴, 구성요소 및 플랫폼
- 실시간 스트리밍 수집
- 사례 연구: 자체 개발 데이터 파이프라인
- 서버리스 데이터 엔지니어링
- 결론
- 연습문제
- 사례연구
- 16장. 데브옵스 현장의 이야기와 인터뷰
- 영화를 만들지 못하는 영화 스튜디오
- 게임을 출시하지 못하는 게임 스튜디오
- 파이썬 스크립트 출시까지 60초 소요
- 캐시와 지능형 계측기로 화재 진압
- 자동화로 자신의 업무를 없애라!
- 데브옵스 안티패턴
- 인터뷰
- 권고사항
- 연습문제
- 도전과제
- 캡스톤 프로젝트