Top

파이썬 데브옵스 프로그래밍 2/e [파이썬으로 하는 인프라 자동화]

  • 원서명DevOps in Python: Infrastructure as Python, 2nd Edition (ISBN 9781484279953)
  • 지은이모셰 자드카(Moshe Zadka)
  • 옮긴이이승윤
  • ISBN : 9791161758541
  • 28,000원
  • 2024년 06월 28일 펴냄
  • 페이퍼백 | 328쪽 | 188*235mm
  • 시리즈 : 프로그래밍 언어

책 소개

요약

데브옵스(DevOps)의 업무에 있어서 파이썬을 활용하는 방법을 안내한다. 도구와 언어의 사용자 위치에 머무르지 않고 파이썬으로 데브옵스를 보다 발전시키고 싶은 사람에게 이 책을 권한다. 텍스트 처리와 테스팅과 패키징 등 파이썬에 관한 것부터, 앤서블이나 도커, AWS 등 데브옵스와 관계가 깊은 도구를 파이썬으로 다뤄야 할 때 알아야 할 점 등 저자의 오랜 경험에서 나오는 실용적인 조언도 함께한다.

이 책에서 다루는 내용

◆ 파이썬을 통한 운영체제 자동화
◆ 파이썬 애플리케이션의 패키징
◆ 파이썬을 데브옵스 콘솔로 사용
◆ 클라우드 자동화

이 책의 구성

파이썬을 활용하면 복잡한 시스템을 자동화하는 가독성 있는 코드를 만들 수 있다. 이 책은 시스템 관리/운영 업무를 배우기 쉬운 코딩으로 전환하는 데 도움을 줄 수 있다.
우선 커맨드라인 스크립트를 작성하는 것부터 시작해서 간단한 데브옵스 작업을 자동화하는 과정을 다룬다. 그런 다음 결함으로 인한 사고를 방지하기 위한 안정적이고 빠른 단위 테스트를 설계하는 방법을 다룬다. 고급 사례로 주피터를 원격 제어 패널로 사용하는 방법과 앤서블, 솔트 그리고 그 확장을 다룬다.
또한 도커를 포함해 최신 파이썬 패키징 시스템, 패키지 저장소 등 파이썬 애플리케이션을 배포하는 모범 사례도 다룬다. 더불어 AWS API와 쿠버네티스 API 사용 방법, 도커 컨테이너 이미지 빌드와 실행을 자동화하는 방법을 다룬다. 끝으로 테라폼을 유연하게 사용하기 위한 파이썬 활용법을 다룬다.

지은이의 말

파이썬은 아메바(Amoeba) 운영체제를 자동화하기 위한 언어로 시작됐다. 일반적인 유닉스 셸은 운영체제에 의존성이 있기 때문에 자동화에 알맞지 않았다. 아메바 OS는 이제 유물이 됐다. 하지만 파이썬은 데브옵스 작업의 핵심인 운영 자동화에 여전히 사용되고 있다.
새벽에 장애 알림을 받고 잘못 작동하는 프로그램을 수정하는 것이 업무의 중요한 부분이라면 그만큼 이해하기 쉽고 읽기 좋은 코드를 만드는 것이 필수적이다.
파이썬은 운영체제의 범용 언어라고 할 수 있는 C, C++와 결합하기 좋으면서도 메모리 안전성을 제공하므로 자동화 계층에서 문제가 생기는 일이 적다.
처음에는 아니었지만 파이썬은 현재 인기 높은 언어 중 하나다. 파이썬 경험이 있는 사람을 찾기도 쉽고 학습을 위한 자료 또한 쉽게 구할 수 있다. 이 책은 운영 자동화를 위해 파이썬을 어떻게 활용하는지 다룬다.
이 책을 최대한 활용하려면 파이썬에 어느 정도 익숙해야 한다. 파이썬을 처음 접한다면 공식 파이썬 튜토리얼(https://docs.python.org)을 비롯해 인터넷에 좋은 자료가 많으므로 활용하기 바란다. 또한 리눅스와 같은 유닉스 계열 운영체제와 커맨드라인 인터페이스(CLI, Command Line Interface) 사용에 어느 정도 익숙해야 한다.

저자/역자 소개

지은이의 말

파이썬은 아메바(Amoeba) 운영체제를 자동화하기 위한 언어로 시작됐다. 일반적인 유닉스 셸은 운영체제에 의존성이 있기 때문에 자동화에 알맞지 않았다. 아메바 OS는 이제 유물이 됐다. 하지만 파이썬은 데브옵스 작업의 핵심인 운영 자동화에 여전히 사용되고 있다. 새벽에 장애 알림을 받고 잘못 작동하는 프로그램을 수정하는 것이 업무의 중요한 부분이라면 그만큼 이해하기 쉽고 읽기 좋은 코드를 만드는 것이 필수적이다.
파이썬은 운영체제의 범용 언어라고 할 수 있는 C, C++와 결합하기 좋으면서도 메모리 안전성을 제공하므로 자동화 계층에서 문제가 생기는 일이 적다.
처음에는 아니었지만 파이썬은 현재 인기 높은 언어 중 하나다. 파이썬 경험이 있는 사람을 찾기도 쉽고 학습을 위한 자료 또한 쉽게 구할 수 있다. 이 책은 운영 자동화를 위해 파이썬을 어떻게 활용하는지 다룬다.
이 책을 최대한 활용하려면 파이썬에 어느 정도 익숙해야 한다. 파이썬을 처음 접한다면 공식 파이썬 튜토리얼(https://docs.python.org)을 비롯해 인터넷에 좋은 자료가 많으므로 활용하기 바란다. 또한 리눅스와 같은 유닉스 계열 운영체제와 커맨드라인 인터페이스(CLI, Command Line Interface) 사용에 어느 정도 익숙해야 한다.

지은이 소개

모셰 자드카(Moshe Zadka)

1998년부터 리눅스 커뮤니티에 참여해 왔다. 1999년부터 파이썬을 사용했으며, 파이썬 인터프리터에도 기여했다. 데브옵스/사이트 신뢰성 엔지니어라는 직무가 생기기 전부터 관련된 일을 해왔으며, 소프트웨어 신뢰성과 재현 가능한 빌드 등에 관심이 많다. 직원이 적게는 3명뿐인 회사부터 많게는 수만 명인 회사에서 일했으며, 주로 소프트웨어와 시스템 관리가 결합된 일을 했다.

옮긴이의 말

데브옵스(DevOps)라는 단어를 듣기 시작한 지도 10년은 된 것 같다. 처음에는 기존의 시스템 엔지니어나 어드민(Administrator) 직군과 비슷한 것 같았다. 하지만 조직 문화와 기술이 발전하며 직군의 정의가 명확해졌다. 지금은 빌드와 배포, 운영에 이르기까지 소프트웨어 라이프사이클에 있어 중요한 직무로 받아들여지고 있다. 데브옵스는 서비스의 목적이 되는 애플리케이션을 직접 개발하지는 않는다. 하지만 개발 팀의 생산성에는 큰 영향을 미친다. 개발과 운영에 수반되는 각종 업무를 자동화하고 개선하는 역할을 하며, 이 과정에서 다양한 도구를 다루고 종종 프로그래밍해야 할 때도 있다.
파이썬은 데이터 과학 등 여러 분야에서 활용될 뿐만 아니라 데브옵스에 있어서도 큰 강점을 가진 프로그래밍 언어다. 파이썬은 데브옵스라는 말이 생기기 전부터 이식성 높은 고급 스크립트 언어로, 많은 자동화 업무를 지원해왔다. 작게는 파일과 입출력을 처리하는 스크립트부터 도구와 도구, 컴퓨터와 사용자, 언어와 언어를 연결하는 역할로 발전해왔다. 배우기 쉬운 특징과 강력한 생태계라는 파이썬의 강점이 이곳에서도 빛을 발했다.
시대는 시스템 엔지니어, 어드민에서 데브옵스로 옮겨왔지만 기존의 지식은 지금도 유효하다. 운영체제와 애플리케이션의 사이에서 오랜 경험을 쌓아온 저자는 조금은 낯선 영역으로 우리를 안내한다. 그동안 데브옵스의 도구를 소개하는 책은 많이 있었다. 하지만 이 책은 도구의 사용법을 넘어 파이썬을 활용해 도구를 확장하고, 그 과정에서 생기는 문제와 해결 방법을 설명한다. 프로그래밍의 기본인 텍스트 조작부터 인프라 자동화의 핵심 도구인 앤서블, 도커와 쿠버네티스 등을 다룬다. 기존 도구에 만족하지 않고 개선하고자 한다면 분명 이 책이 도움이 될 것이다.

옮긴이 소개

이승윤

81년생 컴퓨터 키드로, 초등학생 시절 만난 컴퓨터의 매력에 빠져 아직까지 헤어나지 못하고 있다. 컴퓨터 공학을 전공하고 IBK 시스템과 현대오토에버에서 개발자와 프로젝트 관리자를 오가며 15년간 일했다. 금융 도메인을 주로 다뤘으며 데이터 과학과 인프라에도 욕심이 있다. 지금은 SSAFY(삼성청년SW아카데미)에서 프로젝트 컨설턴트로 일하며 교육생의 프로젝트를 지도하고 있다.

목차

목차
  • 1장. 파이썬 설치
  • 1.1 운영체제 패키지
  • 1.2 pyenv 사용
  • 1.3 소스코드에서 빌드
  • 1.4 PyPy
  • 1.5 아나콘다
  • 1.6 정리

  • 2장. 패키징
  • 2.1 가상 환경
  • 2.2 pip
  • 2.3 셋업과 휠
  • 2.4 바이너리 휠
  • 2.5 manylinux 휠
  • 2.5.1 라이브러리 내장 휠
  • 2.5.2 이식성 휠
  • 2.5.3 manylinux 컨테이너
  • 2.5.4 manylinux 휠 설치
  • 2.6 tox
  • 2.6.1 하나의 환경
  • 2.6.2 다중 환경
  • 2.6.3 차이가 있는 다중 환경
  • 2.7 pip 툴
  • 2.8 Poetry
  • 2.8.1 설치
  • 2.8.2 생성
  • 2.8.3 의존성
  • 2.8.4 개발
  • 2.8.5 빌드하기
  • 2.9 Pipenv
  • 2.10 DevPI
  • 2.11 pex와 shiv
  • 2.11.1 pex
  • 2.11.2 shiv
  • 2.12 정리

  • 3장. 대화형 사용
  • 3.1 네이티브 콘솔
  • 3.2 코드 모듈
  • 3.3 ptpython
  • 3.4 IPython
  • 3.5 주피터랩
  • 3.6 정리

  • 4장. 운영체제 자동화
  • 4.1 파일
  • 4.2 프로세스
  • 4.3 네트워킹
  • 4.4 정리

  • 5장. 테스팅
  • 5.1 단위 테스팅
  • 5.2 목, 스텁, 가짜 객체
  • 5.3 파일 테스팅
  • 5.3.1 하위 디렉터리 테스팅
  • 5.3.2 eatmydata로 테스트를 더 빠르게
  • 5.3.3 tmpfs로 테스트를 빠르게
  • 5.4 프로세스 테스팅
  • 5.5 네트워크 테스팅
  • 5.6 HTTP 클라이언트 테스트

  • 6장. 텍스트 조작
  • 6.1 바이트, 문자열, 유니코드
  • 6.2 문자열
  • 6.3 정규 표현식
  • 6.4 JSON
  • 6.5 CSV
  • 6.6 정리

  • 7장. httpx
  • 7.1 클라이언트
  • 7.2 REST
  • 7.3 보안
  • 7.4 인증
  • 7.5 비동기 클라이언트
  • 7.6 정리

  • 8장. 암호화
  • 8.1 페르넷
  • 8.2 PyNaCl
  • 8.3 Passlib
  • 8.4 TLS 인증서
  • 8.5 정리

  • 9장. 파라미코
  • 9.1 SSH 보안
  • 9.2 클라이언트 키
  • 9.3 호스트 식별
  • 9.4 연결
  • 9.5 명령 실행
  • 9.6 원격 파일
  • 9.6.1 메타정보 관리
  • 9.6.2 업로드
  • 9.6.3 다운로드
  • 9.7 정리

  • 10장. 솔트스택
  • 10.1 솔트 기본
  • 10.2 솔트의 기본 개념
  • 10.3 솔트 형식
  • 10.4 솔트 확장
  • 10.4.1 상태 모듈
  • 10.4.2 실행 모듈
  • 10.4.3 유틸리티
  • 10.4.4 추가 서드파티 의존성
  • 10.5 정리

  • 11장. 앤서블
  • 11.1 앤서블 기본
  • 11.2 앤서블 개념
  • 11.3 앤서블 확장
  • 11.4 정리

  • 12장. 컨테이너
  • 12.1 기반 이미지 선택
  • 12.1.1 GNU C 라이브러리 지원
  • 12.1.2 장기 지원
  • 12.1.3 예상치 않은 변경 피하기
  • 12.2 파이썬 인터프리터 설치
  • 12.2.1 콘다
  • 12.2.2 서드파티 저장소
  • 12.2.3 컨터이너에서 파이썬 빌드
  • 12.2.4 파이썬 기반 이미지
  • 12.3 파이썬 애플리케이션 설치
  • 12.4 컨테이너 빌드 캐시 최적화
  • 12.5 컨테이너 재빌드
  • 12.6 컨테이너 보안
  • 12.7 정리

  • 13장. AWS
  • 13.1 보안
  • 13.1.1 액세스 키 구성
  • 13.1.2 임시 토큰 만들기
  • 13.2 EC2
  • 13.2.1 리전
  • 13.2.2 AMI
  • 13.2.3 SSH 키
  • 13.2.4 머신 가동
  • 13.2.5 안전하게 로그인하기
  • 13.2.6 이미지 빌드
  • 13.3 S3 서비스
  • 13.3.1 버킷 관리
  • 13.4 정리

  • 14장. 쿠버네티스
  • 14.1 파드
  • 14.1.1 활성 상태와 준비 상태
  • 14.1.2 설정
  • 14.1.3 파이썬 사이드카
  • 14.2 REST API
  • 14.3 오퍼레이터
  • 14.3.1 권한
  • 14.3.2 커스텀 리소스
  • 14.3.3 검색
  • 14.3.4 목표 상태
  • 14.3.5 비교
  • 14.3.6 조정
  • 14.3.7 하나로 합치기
  • 14.4 정리

  • 15장. 테라폼
  • 15.1 JSON 문법
  • 15.2 테라폼 설정 생성
  • 15.3 정리

  • 찾아보기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안