셰프, 도커, 젠킨스와 같은 오픈소스를 기반으로 웹 개발 환경에 자동화를 적용하는 방법을 소개한다. 더불어 데브옵스와 클라우드, CI와 CD 등 웹 애플리케이션 개발에 필요한 기술과 시스템을 실습을 통해 직접 경험하고 이를 통해 실무에 필요한 관련 기술을 습득할 수 있도록 돕는다.
Contents
1장. 시작하기 - 데브옵스 개념, 도구, 기술
__데브옵스 운동의 이해
____빠르게 변화하는 시대와 데브옵스
______폭포수 모델
______애자일 모델
______협력
______클라우드 컴퓨팅 - 파괴적 혁신
______왜 데브옵스인가?
____데브옵스의 혜택
__데브옵스 수명주기 - 이것은 모두 “지속적인” 것에 대한 것이다
____빌드 자동화
____지속적인 통합
______모범 사례
____클라우드 컴퓨팅
____구성 관리
____지속적인 전달/지속적인 배포
______지속적인 전달의 모범 사례
____지속적인 모니터링
____지속적인 피드백
__도구와 기술
____코드 저장소 - Git
______장점
______특징
______SVN과 Git의 차이점
____빌드 도구 - 메이븐
______pom.xml 파일 예제
____지속적인 통합 도구 - 젠킨스
______핵심 기능과 이점
____구성 관리 도구 - 셰프
______기능
____클라우드 서비스 제공업체
____컨테이너 기술
______도커
____모니터링 도구
______제노스
______나기오스
____배포 오케스트레이션/지속적인 전달 - 젠킨스
______전체적인 오케스트레이션: 젠킨스 플러그인
____데브옵스 대시보드
__샘플 자바 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 인증 구성하기
__빌드 작업 오케스트레이션을 위한 빌드 파이프라인 구성
__애플리케이션 배포 자동화를 위한 파이프라인 실행
__히게이아 - 데브옵스 대시보드
__진단 테스트
__요약
Author
미테쉬 소니(Mitesh Soni),김영기
IT 업계에서 9년간의 경험이 있는 학구적인 인물이다. SCJP, SCWCD, VCP, IBM Urbancode Certified Professional로 데브옵스와 클라우드 컴퓨팅을 좋아하며 자바 프로그래밍에 관심이 있다. 매력적인 디자인 패턴을 찾고 있으며 때때로 http://etutorialsworld.com에 재능으로 기여하기도 한다. 아이들과 함께 놀고 카메라를 만지고 인드로다 공원(Indroda Park)에서 사진찍는 것을 좋아한다. 기술적인 세부 사항을 모른 채 좋은 사진을 찍는 데 중독돼 있다. 마하트마 간디의 고향이 있는 지방의 수도에서 살고 있다.
IT 업계에서 9년간의 경험이 있는 학구적인 인물이다. SCJP, SCWCD, VCP, IBM Urbancode Certified Professional로 데브옵스와 클라우드 컴퓨팅을 좋아하며 자바 프로그래밍에 관심이 있다. 매력적인 디자인 패턴을 찾고 있으며 때때로 http://etutorialsworld.com에 재능으로 기여하기도 한다. 아이들과 함께 놀고 카메라를 만지고 인드로다 공원(Indroda Park)에서 사진찍는 것을 좋아한다. 기술적인 세부 사항을 모른 채 좋은 사진을 찍는 데 중독돼 있다. 마하트마 간디의 고향이 있는 지방의 수도에서 살고 있다.