개발자를 위한 웹 개발 환경 자동화 [데브옵스를 활용한 웹 애플리케이션 개발]
- 원서명DevOps for Web Development: Achieve the Continuous Integration and Continuous Delivery of your web applications with ease (ISBN 9781786465702)
- 지은이미테쉬 소니(Mitesh Soni)
- 옮긴이김영기
- ISBN : 9791161756004
- 30,000원
- 2021년 12월 31일 펴냄
- 페이퍼백 | 416쪽 | 188*235mm
- 시리즈 : 웹 프로페셔널
책 소개
요약
셰프, 도커, 젠킨스와 같은 오픈소스를 기반으로 웹 개발 환경에 자동화를 적용하는 방법을 소개한다. 더불어 데브옵스와 클라우드, CI와 CD 등 웹 애플리케이션 개발에 필요한 기술과 시스템을 실습을 통해 직접 경험하고 이를 통해 실무에 필요한 관련 기술을 습득할 수 있도록 돕는다.
이 책에서 다루는 내용
◆ JEE 애플리케이션을 위한 지속적인 통합 – 메이븐과 젠킨스 2를 이용한 자바 애플리케이션을 위한 빌드 작업의 생성과 구성
◆ 젠킨스 2에 내장된 전달 파이프라인과 지속적인 통합의 수명주기를 관리하기 위한 전체적인 자동화에 대한 빌드 파이프라인 생성
◆ 런타임 환경 생성을 위해 셰프를 사용하는 구성 관리 정보
◆ 아마존 EC2, AWS 일래스틱 빈스토크, 마이크로소프트 애저 웹 앱스 그리고 도커 컨테이너에의 애플리케이션 배포
◆ 인프라스트럭처, 애플리케이션 서버, 웹 서버의 모니터링과 오픈소스 모니터링 솔루션과 New Relic을 사용한 애플리케이션의 모니터링
◆ 애플리케이션 배포 자동화를 달성하기 위해 다양한 빌드 작업의 오케스트레이션 - 전체적인 자동화를 위한 매개변수화된 빌드 작업의 생성
이 책의 대상 독자
기본적으로 기술적인 독자를 대상으로 하고 있는 책이지만 이전에 지속적인 통합, 클라우드 컴퓨팅, 구성 관리, 지속적인 전달 및 지속적인 배포 경험이 없다고 가정한다. 독자는 젠킨스, 아틀라시안(Atlassian) Bamboo와 같은 지속적인 통합 도구에 초보이거나 경험이 있을 수 있다.
이 책은 지속적인 통합, 클라우드 컴퓨팅, 구성 관리, 지속적인 전달, 스프링 기반 샘플 애플리케이션에 대한 지속적인 배포를 다룬다. 주된 목표는 전체적인 자동화를 이해하고 그를 기반으로 더 확장할 수 있는 단일 기술 스택으로 자동화를 구현하는 것이다.
이 책의 구성
1장, ‘시작하기 - 데브옵스 개념, 도구, 그리고 기술’에서는 데브옵스 운동에 대한 이해, 개발팀의 문제, 운영 팀의 문제, 조직이 직면한 문제, 폭포수 모델과 애자일 모델, 협력의 중요성, 클라우드 컴퓨팅, 데브옵스를 적용해야 하는 이유, 데브옵스의 혜택, 데브옵스 수명 주기, 빌드 자동화, 지속적인 통합과 모범 사례, 구성 관리, 지속적인 전달과 지속적인 배포, 모범 사례, 지속적인 모니터링과 지속적인 피드백을 다룬다. 또한 코드 저장소의 개요, 메이븐(Maven), 젠킨스 2.0(Jenkins 2.0), 셰프(Chef, AWS), 마이크로소프트 애저(Microsoft Azure), 도커(Docker), 나기오스(Nagios), 히게이아 데브옵스 대시보드(Hygieia DevOps Dashboard), 예제 JEE 애플리케이션의 개요도 다룬다.
2장, ‘젠킨스 2를 통한 지속적인 통합’에서는 지속적인 통합의 개요, 젠킨스 2.0 설치, 젠킨스에서의 자바와 메이븐 설정, 메이븐을 통한 자바 애플리케이션에 대한 빌드 작업(build job)의 생성과 구성, 대시보드 뷰 플러그인, 노드 관리, 빌드 상태에 기반한 이메일 통보 그리고 젠킨스와 소나(Sonar) 통합을 자세히 설명한다.
3장, ‘코드 작성과 빌드 파이프라인 구성’에서는 도메인 특화 언어(DSL)를 사용하는 내장 전달 파이프라인, 빌드 파이프라인 플러그인, 웹 서버 내의 WAR 파일 배포 내용을 다룬다.
4장, ‘셰프의 설치와 구성’에서는 셰프 구성 관리 도구, 셰프 호스트, 셰프 워크스테이션(Chef workstation)의 설치와 구성, 셰프 워크스테이션을 이용한 셰프 노드(Chef node)의 통합에 대한 이해를 제공한다.
5장, ‘도커 설치와 구성’에서는 도커 컨테이너의 개요, 가상머신과 컨테이너 사이의 차이점 이해, CentOS에의 도커 설치와 구성, 첫 번째 도커 컨테이너 생성, 그리고 컨테이너 관리에 대한 내용을 다룬다.
6장, ‘클라우드 프로비저닝과 셰프를 통한 구성 관리’에서는 셰프와 클라우드 프로비저닝, 아마존 웹 서비스와 마이크로소프트 애저를 위한 나이프(knife) 플러그인 설치, 그리고 아마존 웹 서비스와 마이크로소프트 애저에서의 가상머신 생성 및 구성에 대한 내용을 다룬다.
7장, ‘AWS, 애저, 그리고 도커에서의 애플리케이션 배포’에서는 원격 서버에 애플리케이션 배포하기 위한 선행 조건, 톰캣 관리자 애플리케이션 사용, 톰캣 도커 컨테이너에서의 애플리케이션 배포, AWS 엘라스틱 빈스토크에서의 애플리케이션 배포, 마이크로 애저 웹 앱스에서의 애플리케이션 배포를 다룬다.
8장, ‘인프라스트럭처와 애플리케이션의 모니터링’에서는 모니터링의 개요, 나기오스 모니터링 도구와 나기오스를 통한 빠른 시작 방법, 나기오스의 설치, AWS EC2 인스턴스에 대한 모니터링 구성, AWS 엘라스틱 빈스토크 모니터링, 마이크로소프트 애저 웹 앱 서비스 모니터링, 마이크로소프트 애저 애플리케이션에 대한 이해 그리고 뉴 랠릭을 통한 웹 애플리케이션과 톰캣 서버의 모니터링에 대한 내용을 다룬다.
9장, ‘애플리케이션 배포에 대한 오케스트레이션’에서는 지속적인 통합, 구성 관리, 지속적인 전달 등에 대한 다양한 빌드 작업의 오케스트레이션 방법을 자세히 다룬다. 9장은 전체적인 자동화를 위한 매개변수화(parameterized)된 빌드 작업의 생성, 애플리케이션 배포 자동화를 위한 빌드 파이프라인 실행, 아마존 엘라스틱 빈스토크(Platform as a Service)에서의 배포 단계, VSTS(Visual Studio Team Server)에서의 전체적인 배포 자동화 구현 단계와 지속적인 통합을 위한 TFS 온라인, 지속적인 전달과 지속적인 배포, 도커 컨테이너에서의 배포 단계를 설명한다. 또한 데브옵스 대시보드인 히게이아(Hygieia)에 대한 간단한 소개와 실행 방법도 살펴본다.
목차
목차
- 1장. 시작하기 - 데브옵스 개념, 도구, 기술
- 데브옵스 운동의 이해
- 빠르게 변화하는 시대와 데브옵스
- 폭포수 모델
- 애자일 모델
- 협력
- 클라우드 컴퓨팅 - 파괴적 혁신
- 왜 데브옵스인가?
- 데브옵스의 혜택
- 빠르게 변화하는 시대와 데브옵스
- 데브옵스 수명주기 - 이것은 모두 “지속적인” 것에 대한 것이다
- 빌드 자동화
- 지속적인 통합
- 모범 사례
- 클라우드 컴퓨팅
- 구성 관리
- 지속적인 전달/지속적인 배포
- 지속적인 전달의 모범 사례
- 지속적인 모니터링
- 지속적인 피드백
- 도구와 기술
- 코드 저장소 - Git
- 장점
- 특징
- SVN과 Git의 차이점
- 빌드 도구 - 메이븐
- pom.xml 파일 예제
- 지속적인 통합 도구 - 젠킨스
- 핵심 기능과 이점
- 구성 관리 도구 – 셰프
- 기능
- 클라우드 서비스 제공업체
- 컨테이너 기술
- 도커
- 모니터링 도구
- 제노스
- 나기오스
- 배포 오케스트레이션/지속적인 전달 - 젠킨스
- 전체적인 오케스트레이션: 젠킨스 플러그인
- 데브옵스 대시보드
- 코드 저장소 - Git
- 샘플 자바 EE 애플리케이션의 개요
- 작업 목록
- 진단 테스트
- 요약
- 데브옵스 운동의 이해
- 2장. 젠킨스 2를 통한 지속적인 통합
- 소개
- 젠킨스 설치
- 젠킨스 설정
- 젠킨스 대시보드
- 젠킨스에의 자바와 메이븐 구성
- 자바 구성
- 메이븐 설정
- 메이븐을 이용한 자바 애플리케이션의 빌드 작업 생성 및 구성
- GitHub에서의 소스 코드 구성과 인증
- 빌드 작업 구성
- JUnit 설정
- Dashboard View 플러그인 - 개요 및 사용법
- 노드 관리
- 젠킨스 2에서의 슬레이브 노드 생성 및 구성
- 마스터 및 슬레이브 노드에 빌드 작업 구성하기
- 빌드 상태에 기반한 이메일 알림 전송
- 젠킨스와 소나의 통합
- 진단 테스트
- 요약
- 3장. 코드 작성과 빌드 파이프라인 구성
- 내장된 전달 파이프라인 생성
- 스크립트 생성
- 예제 1 - 작업을 만들기 위한 그루비 스크립트 생성
- 예제 2 - 테스트 보고서를 게시하기 위한 빌드 단계 생성
- 예제 3 - 빌드 작업 산출물 보관
- 예제 4 - 노드에서 빌드 단계 수행하기
- 예제 5 - 빌드 작업의 명확한 단계 표시
- 스크립트 생성
- 컴파일과 단위 테스트 실행을 위한 파이프라인 생성
- Build Pipeline 플러그인 사용하기
- 배포 작업 통합
- 진단 테스트
- 요약
- 내장된 전달 파이프라인 생성
- 4장. 셰프의 설치와 구성
- 셰프 시작하기
- 호스티드 셰프의 개요
- 셰프 워크스테이션의 설치와 구성
- 셰프 워크스테이션을 이용한 셰프 노드 통합
- 쿡북을 이용한 소프트웨어 패키지 설치
- 역할 생성하기
- 진단 테스트
- 요약
- 5장. 도커의 설치와 구성
- 도커 컨테이너의 개요
- 가상 머신과 컨테이너의 차이점 이해
- CentOS에의 도커 설치와 구성
- 첫 번째 도커 컨테이너의 생성
- 도커의 클라이언트-서버 아키텍처 이해
- 컨테이너 관리
- Dockerfile에서의 도커 이미지 생성
- 진단 테스트
- 요약
- 6장. 클라우드 프로비저닝과 셰프를 통한 구성 관리
- 셰프와 클라우드 프로비저닝
- 아마존 웹 서비스와 마이크로소프트 애저에 나이프 플러그인 설치
- 아마존 EC2에서 가상 머신의 생성 및 구성
- 마이크로소프트 애저에서 가상머신의 생성과 구성
- 도커 컨테이너
- 진단 테스트
- 요약
- 7장. AWS, 애저, 도커에서의 애플리케이션 배포
- 선행 조건 - 원격 서버에 대한 애플리케이션 배포
- 톰캣 서버 설정
- 도커 컨테이너에의 애플리케이션 배포
- AWS에 애플리케이션 배포하기
- 마이크로소프트 애저에 애플리케이션 배포하기
- 진단 테스트
- 요약
- 선행 조건 - 원격 서버에 대한 애플리케이션 배포
- 8장. 인프라스트럭처와 애플리케이션의 모니터링
- 모니터링 시작하기
- 모니터링 도구와 기법의 개요
- 나기오스
- 나기오스로 빠르게 시작하기
- 나기오스
- AWS 일레스틱 빈스토크 모니터링
- 마이크로소프트 애저 웹 애플리케이션 서비스 모니터링
- 진단 테스트
- 요약
- 9장. 애플리케이션 배포에 대한 오케스트레이션
- 전체적인 자동화를 위한 빌드 작업 생성
- 키를 사용해 SSH 인증 구성하기
- 빌드 작업 오케스트레이션을 위한 빌드 파이프라인 구성
- 애플리케이션 배포 자동화를 위한 파이프라인 실행
- 히게이아 - 데브옵스 대시보드
- 진단 테스트