Top

개발자를 위한 웹 개발 환경 자동화 [데브옵스를 활용한 웹 애플리케이션 개발]

  • 원서명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)에 대한 간단한 소개와 실행 방법도 살펴본다.

저자/역자 소개

지은이의 말

데브옵스(DevOps)는 프로젝트 팀, 영업 팀, 고객 계약 등 거의 모든 논의의 한 부분이다. 그렇다. 데브옵스는 문화이지만 고객은 애플리케이션 수명주기 관리에서 활용할 수 있는 자동화 개념에 대한 증거를 요구한다.
데브옵스의 주된 목적은 빈번한 출시를 효과적으로 관리하는 것이다. 빨리 실패할수록 빨리 회복할 수 있다. 일찍 실패하는 것이 롤백하기 매우 어려운 마지막 단계에서 실패하는 것보다 훨씬 낫다. 반복적인 과정을 자동화함으로써 애플리케이션 수명주기 관리를 표준화하고 오류를 발생시키는 수동 프로세스를 방지할 수 있다.
우리는 이 책에서 지속적인 통합, 클라우드 컴퓨팅, 구성 관리, 지속적인 전달, 지속적인 배포와 같은 데브옵스의 핵심 컴포넌트를 모두 다룬다. 즉 빌드의 통합을 자동화하는 방법, AWS나 마이크로소프트 애저(Microsoft Azure)와 같은 클라우드 환경에서의 자원 제공, 애플리케이션 배포를 위한 컨테이너의 사용, 애플리케이션 배포에 대한 런타임 환경 설정을 위한 셰프(Chef) 구성 관리 도구의 이용, 즉 셰프, AWS 일레스틱 빈스토크, 마이크로소프트 애저, 웹 애플리케이션, 도커 컨테이너로 구성된 가상머신으로 웹 애플리케이션의 배포, 나기오스(Nagios), 뉴 렐릭(New Relic)과 네이티브 클라우드 모니터링 기능을 사용한 애플리케이션 모니터링을 다룬다.

지은이 소개

미테쉬 소니(Mitesh Soni)

IT 업계에서 9년간의 경험이 있는 학구적인 인물이다. SCJP, SCWCD, VCP, IBM Urbancode Certified Professional로 데브옵스와 클라우드 컴퓨팅을 좋아하며 자바 프로그래밍에 관심이 있다. 매력적인 디자인 패턴을 찾고 있으며 때때로 http://etutorialsworld.com에 재능으로 기여하기도 한다. 아이들과 함께 놀고 카메라를 만지고 인드로다 공원(Indroda Park)에서 사진찍는 것을 좋아한다. 기술적인 세부 사항을 모른 채 좋은 사진을 찍는 데 중독돼 있다. 마하트마 간디의 고향이 있는 지방의 수도에서 살고 있다.

옮긴이의 말

데브옵스와 CI/CD라는 용어는 클라우드와 더불어 개발자라면 누구에게나 익숙한 용어가 돼 버렸습니다. 불과 몇 년 전만 해도 데브옵스와 클라우드가 이렇게 빠르게 개발자에게 필수적인 도구 중 하나가 될 것이라고 생각하지 못하고 일시적인 유행으로 그칠 것이란 전망도 있었습니다. 그러나 이러한 기술들은 이제 개발과 분리해서 이야기할 수 없으며, 특히 웹 애플리케이션 분야와는 따로 분리해서 이야기할 수 없을 것 같습니다.

이 책은 도커(Docker) 그리고 젠킨스(Jenkins) 같은 오픈소스와 AWS, 애저 같은 클라우드 플랫폼을 기반으로 웹 개발 환경에 자동화를 적용하는 방법을 소개하고 있습니다. 독자들은 데브옵스와 클라우드, CI와 CD 등 웹 애플리케이션 개발에 필요한 기술과 시스템을 실습을 통해 직접 경험하고 이를 통해 실무에 필요한 관련 기술을 습득할 수 있을 것이라 생각합니다.

이 책에서는 많은 오픈소스를 사용합니다. 오픈소스는 빠르게 버전이 올라가면서 실제 독자들이 사용하는 버전과 책에서 사용하는 버전 사이에 차이가 발생할 수 있습니다. 문제가 발생하는 경우, 인터넷과 각종 참고 자료를 이용해 문제를 해결해 보는 것도 좋은 학습 경험이 될 것으로 생각합니다.

더불어, 웹 개발 환경의 자동화를 주제로 다루고 있어 웹 애플리케이션 프로그래밍을 위한 언어를 습득하거나 코드 작성은 주된 목적이 아닙니다. 그러나, 프로그래밍 언어와 코드 작성 방법을 학습하는 것 이상으로 개발 환경과 관련 인프라 기술을 습득하는 것도 더 나은 개발자가 되기 위한 과정이라고 생각합니다. 이 책의 내용은 웹 개발자라면 알아야 할 기초 사항을 다루고 있습니다. 이 책이 개발자로 성장하는 과정에 있어 많은 도움이 되길 바랍니다.

옮긴이 소개

김영기

삼성전자 네트워크 SE 그룹에서 소프트웨어 개발과 관련된 다양한 업무를 수행 중이다. 주요 이력은 지능망(IN)과 모바일 애플리케이션 개발, 정적 분석과 소프트웨어 구조 분석, 소프트웨어 개발 인프라 관리 등이다. 현재는 CM 업무를 주로 수행하고 있으며 소프트웨어 개발과 관련된 조직의 개발 문화, 애자일과 데브옵스, 인프라 자동화에 관심이 많다.

목차

목차
  • 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 인증 구성하기
    • 빌드 작업 오케스트레이션을 위한 빌드 파이프라인 구성
    • 애플리케이션 배포 자동화를 위한 파이프라인 실행
    • 히게이아 - 데브옵스 대시보드
    • 진단 테스트

도서 오류 신고

도서 오류 신고

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

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

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