책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
하루 1억 건 이상의 트랜잭션을 처리하는 대규모 클라우드의 솔루션 아키텍트이자 오픈스택 서밋의 공식 발표자인 스티븐 암스트롱(Steven Armstrong)이 자신의 클라우드 구축 경험을 바탕으로 쓴 실무적 지침서다. 클라우드 시대와 데브옵스 시대를 맞아 네트워크 팀에서 어느 부분을 어떻게 준비하고 실행해야 하는지를 세세하게 실제 사례를 바탕으로 설명한다. 또한 클라우드의 동향, 클라우드 SDN 제품의 현황, 클라우드 네트워크 구성 방안 및 L4, 방화벽, SDN 컨트롤러 등의 오케스트레이션에 대해 다룬다. 기술적인 내용뿐만 아니라 업무 방식 및 사내 업무 문화의 변화가 필요한 부분도 다양한 사례로 설명한다. 변화 관리를 위한 다양한 관점의 내용도 각각의 장단점과 함께 소개한다. 데브옵스와 클라우드를 준비하는 네트워크 팀뿐만 아니라 데브옵스, 클라우드 완성의 방점을 원하는 사람이라면 누구나 한 번쯤은 읽어볼 만한 실용서다.
이 책에서 다루는 내용
■ AWS와 오픈스택 관련 예제로 살펴보는 퍼블릭/프라이빗 클라우드 네트워킹
■ 네트워크 기능들을 자동화하는 데 필요한 문화적 변화를 실행할 때 엔지니어나 매니저가 이용 가능한 전략들
■ SDN의 개념과 네트워킹에 대한 API 중심 접근법을 이용한 통상적인 네트워킹 문제 해결
■ 네트워크 장비들을 오케스트레이션하고 구성할 수 있는 앤시블, 젠킨스 등의 구성 관리 도구들 활용
■ 네트워크 기능들에 대한 CI(Continuous Integration), CD(Continuous Delivery), 전개(Deployment) 파이프라인 구성
■ 네트워크 변경 작업의 검증을 위한 환경 구성
■ 마이크로서비스 응용프로그램의 출현에 따른 부하 분산 기능의 소프트웨어 정의 방식으로의 변화
이 책의 대상 독자
네트워크 엔지니어들과 개발자들, 또는 시스템 관리자들이다. 네트워크 엔지니어는 본인의 업무 중 수작업과 반복적인 부분을 자동화하는 데 유용하며, 개발자와 시스템 관리자는 모든 네트워크 기능들을 자동화하는 데 활용할 수 있다. 이 책은 또한 CTO와 관리자들에게 탁월한 통찰을 제공한다. 네트워크 부서를 더 신속한 조직으로 변모시키고 조직 내에 진정한 문화적 변화를 일으키는 방법을 알 수 있다. 이 책은 일반 독자들에게도 도움을 줄 수 있다. 데브옵스, CI, CD에 대한 이해도를 높일 수 있고 실세계의 시나리오에서는 어떻게 적용하는지 알 수 있다. 또한 자동화를 도와주는 많은 도구들에 대해서도 깊이 있는 정보를 접할 수 있다
이 책의 구성
1장. '클라우드가 네트워킹에 미친 영향'에서는 퍼블릭 클라우드 영역에 AWS가 나타나고 프라이빗 클라우드 영역에 오픈스택이 나타나 개발자들이 네트워킹을 소비(Consume)하는 방식이 바뀐 것을 살펴본다. AWS와 오픈스택에서 제공하는 네트워킹 서비스들과 네트워킹 기능들을 다루고, 또한 이러한 클라우드 플랫폼들로 인해 네트워킹도 다른 인프라스트럭처처럼 일용재로 된 것을 예시와 함께 살펴본다.
2장. '소프트웨어 정의 네트워킹의 출현'에서는 소프트웨어 정의 네트워킹이 어떻게 나타나게 됐는지 살펴본다. 방법론을 살펴보고 확장성 측면의 이점을 다룬다. WAS와 오픈스택을 통한 경험을 넘어서는 기능 사양들도 살펴본다. 시장을 선도하는 SDN 솔루션인 누아지(Nuage)가 이러한 개념들과 원리들을 어떻게 잘 구현하고 있는지 보여준다. 시장의 다른 SDN 솔루션들에 대해서도 논의한다.
3장. '데브옵스를 네트워크 운영으로'에서는 상향식(Bottom-up) 및 하향식(Top-down) 데브옵스 운동의 장단점을 네트워킹 관점에서 상세하게 풀어내고, 전략 관점에서 독자들이 생각할 수 있는 재료들을 제공할 것이다. 일부의 경우 성공 사례도 있지만 다수가 실패했다. 이 장은 CTO, 선임 관리자, 엔지니어가 회사의 네트워크 부서에서 데브옵스 모델을 시작할 때 도움이 될 것이다. 원하는 문화적 변화를 달성하기 위해 사용할 여러 전략들도 훑어본다.
4장. '앤시블로 네트워크 장비 설정하기'에서는 설정 정보를 네트워크 장비에 구성하고 밀어넣을 때 구성 관리 도구(Configuration Management Tool)를 사용함으로써 얻는 이점을 살펴본다. 이 작업을 할 때 사용할 수 있는 오픈소스 네트워크 모듈들을 살펴보고 동작 방식도 알아본다. 이를 통해 장비 설정 정보를 유지하기 위해 사용하는 프로세스 흐름을 예시와 함께 살펴본다.
5장. '앤시블로 부하 분산기 오케스트레이션하기'에서는 부하 분산기를 앤시블로 오케스트레이션할 때의 장점을 기술한다. 신규 소프트웨어 버전을 다운타임이나 수작업 개입 없이 서비스 환경에 배포하는 방식도 알아본다. 오케스트레이션을 통해 재사용이 불가능한 서버들과 정적인 서버들이 각각 별개의 부하 분산 기술들과 연계하는 프로세스 흐름을 예시로 살펴본다.
6장. '앤시블로 SDN 컨트롤러 오케스트레이션하기'에서는 앤시블로 SDN 컨트롤러를 오케스트레이션할 때의 장점을 살펴본다. SDN의 이점을 기술한 후 SDN 컨트롤러에서 노출하는 네트워크 기능들을 자동화하는 것이 왜 대단한지 살펴본다. 여기에는 ACL 규칙을 동적으로 설정하는 것도 포함한다. 이를 통해 네트워크 엔지니어들은 개발자들에게 NaaSNetwork as a Service(네트워크를 서비스로 제공)를 제공함으로써 네트워킹 필요에 따라 셀프서비스로 사용할 수 있게 한다. 청색, 녹색 네트워크와 같은 배포 전략을 살펴보고 NaaS 방식을 구현하는 데 사용하는 프로세스 흐름도 일부 살펴본다.
7장. '네트워크 설정에 CI 빌드 사용하기'에서는 네트워크 설정 정보를 SCMS(Source Control Management Syste, 소스 제어 관리 시스템)에 저장하는 모델로 이전하는 것을 다룬다. 이 경우 감사 및 버전 관리가 용이하고 변경 작업의 복구가 용이하다. 젠킨스(Jenkins)와 깃(Git) 같은 도구를 이용해 네트워크 설정 CI 빌드를 구성하는 데 쓸 워크플로우를 살펴본다.
8장. '네트워크 변경 작업 테스트하기'에서는 네트워크 변경 사항을 서비스 환경에 적용하기 전에 테스트 환경에서 테스트하는 것의 중요성을 살펴본다. 활용 가능한 오픈소스 도구를 살펴보고 테스트 전략들을 찬찬히 짚어본다. 이 전략들을 적용하면 네트워크 변경 사항들을 서비스 환경에 적용하기 전에 완벽하게 검증했는지 여부를 확실하게 파악할 수 있다.
9장. '네트워크 변경 사항 배포에 CD 파이프라인 사용하기'에서는 네트워크 변경 사항을 서비스 환경에 적용할 때 CI/CD 파이프라인을 사용하는 법을 독자들에게 알려주고, 연관된 테스트 환경에 어떻게 구성하는지도 살펴본다. 네트워크 변경 사항을 서비스 환경에 적용할 때 사용하는 프로세스 흐름을 예시와 함께 설명한다. 그것들이 인프라스트럭처 및 코드의 변경 사항들과 함께 배포 파이프라인에서 어떻게 쉽게 연동 가능한지도 알아본다.
10장. '컨테이너가 네트워킹에 미친 영향'에서는 도커(Docker)와 같은 컨테이너 기술과 쿠버니티즈(Kubernetes) 및 스왐(Swarm) 같은 컨테이너 오케스트레이션 엔진을 다룬다. 이들은 마이크로서비스 아키텍처로 이동하는 회사들에게 점점 더 인기를 얻고 있다. 결과적으로 이에 따라 네트워킹 요구 사항들이 바뀌는 중이다. 이 장에서는 컨테이너가 어떻게 동작하는지 설명하고 네트워킹에 미친 영향을 살펴본다.
11장. '네트워크 보호하기'에서는 이 방식으로 보안 엔지니어가 네트워크 감사를 어떻게 더 용이하게 할 수 있는지 살펴본다. SDN 환경에서 가능한 침투 경로를 알아보고 보안 검사를 데브옵스 모델에 통합하는 방법을 다룬다.
목차
목차
- 1장. 클라우드가 네트워킹에 미친 영향
- 클라우드의 개요
- 퍼블릭 클라우드
- 프라이빗 클라우드
- 하이브리드 클라우드
- 소프트웨어 정의
- 스패닝 트리 네트워킹과 리프•스파인 네트워킹의 차이
- STP
- 리프-스파인 아키텍처
- OVSDB
- 퍼블릭 클라우드로 네트워킹에 일어난 변화들
- AWS 개요
- 오픈스택 개요
- AWS의 네트워킹
- 아마존 IP 주소 할당
- 아마존 보안 그룹
- 아마존 리전과 가용 영역
- 아마존 탄력적 부하 분산
- 오픈스택의 네트워킹
- 오픈스택 서비스
- 오픈스택 테넌트
- 오픈스택 뉴트론
- 오픈스택 네트워크 배포
- 오픈스택 리전과 가용 영역
- 오픈스택 인스턴스 배포 워크플로우
- 오픈스택 LBaaS
- 요약
- 클라우드의 개요
- 2장. 소프트웨어 정의 네트워킹의 출현
- 왜 SDN 솔루션이 필요한가
- 누아지 SDN 솔루션은 어떻게 동작하는가
- 오픈스택과 누아지 VSP 플랫폼의 연동
- 누아지 네트워크와 오픈스택 네트워크
- 누아지 VSP 소프트웨어 정의 객체 모델
- 누아지 VSP 플랫폼에서 신규 환경과 기존 환경을 어떻게 지원하는가
- 누아지 VSP 멀티캐스트 지원
- 요약
- 3장. 데브옵스를 네트워크 운영으로
- 행동의 변화가 일어나도록 하기
- 데브옵스를 적용해야 하는 이유
- 네트워킹에 데브옵스를 적용해야 하는 이유
- 네트워크 팀 대상 하향식 데브옵스 적용
- 성공적인 팀들 분석하기
- 액티비티 다이어그램으로 작성하기
- 네트워크 팀의 운영 모델 바꾸기
- 네트워크 팀의 행동 양식 변화시키기
- 네트워크 팀 대상 상향식 데브옵스 적용
- 네트워크 팀에서 데브옵스 알리기
- 존경 받는 매니저나 엔지니어의 후원 찾기
- 네트워크 팀의 복잡한 문제 자동화하기
- 요약
- 행동의 변화가 일어나도록 하기
- 4장. 앤시블로 네트워크장비 설정하기
- 네트워크 장비 업체들의 운영체제
- 시스코 IOS, NXOS 운영체제
- 주니퍼 JUNOS 운영체제
- 아리스타 EOS 운영체제
- 앤시블 소개
- 앤시블 디렉터리 구조
- 앤시블 인벤토리
- 앤시블 모듈
- 앤시블 롤
- 앤시블 플레이북
- 앤시블 플레이북 실행하기
- 앤시블 var 파일과 jinja2 템플릿
- 앤시블 기반 네트워크 장비 설정의 선수 조건들
- 앤시블 갤럭시
- 네트워크 운영에 필요한 앤시블 핵심 모듈
- _command 모듈
- _config 모듈
- _template 모듈
- 네트워크 장비를 관리하기 위한 구성 관리 절차
- 기대 상태
- 변경 요청
- 셀프서비스 운영
- 요약
- 네트워크 장비 업체들의 운영체제
- 5장. 앤시블로 부하 분산기 오케스트레이션 하기
- 중앙 집중식 및 분산형 부하 분산기들
- 중앙 집중식 부하 분산
- 분산형 부하 분산
- 인기 있는 부하 분산 솔루션들
- 시트릭스 넷스케일러
- F5 빅-IP
- 애비 네트웍스
- Nginx
- HAProxy
- 재사용 불가 인프라스트럭처와 고정적인 인프라스트럭처 부하 분산하기
- 고정적 서버와 재사용 불가 서버
- 청색/녹색 배포
- 앤시블로 부하 분산기 오케스트레이션하기
- 위임
- 시리얼을 활용해 순환 비율 제어하기
- 동적 인벤토리
- 메타데이터 붙이기
- jinja2 필터
- 앤시블 네트워킹 모듈 생성하기
- 요약
- 중앙 집중식 및 분산형 부하 분산기들
- 6장. 앤시블로 SDN 컨트롤러 오케스트레이션하기
- 소프트웨어 정의 네트워크에 대한 논의
- 네트워크 복잡도의 가중
- 소프트웨어 정의 네트워크에 대한 기술 부족
- 반복적인 요구 사항을 지원하는 상태 인지형 방화벽
- 왜 기업들에 SDN이 필요한가?
- 민첩도와 정밀도가 추가된 소프트웨어 정의 네트워크
- CD를 잘 이해하는 것이 중요
- 복잡한 네트워크 단순화하기
- 네트워크 운영 분리하기
- 재사용 불가 네트워크
- 앤시블로 SDN 컨트롤러 오케스트레이션하기
- 요약
- 소프트웨어 정의 네트워크에 대한 논의
- 7장. 네트워크 설정에 CI 빌드 사용하기
- CI 개요
- 개발자의 CI
- 데이터베이스 CI
- CI를 위한 도구들
- 소스 관리 시스템
- CI 빌드 서버
- 네트워크의 CI
- 네트워크 검증 엔진
- 네트워크 장비를 위한 간단한 CI 구축
- 간단한 젠킨스 CI 빌드 서버 구성하기
- 네트워크 CI 빌드에 검증 추가하기
- 네트워크 오케스트레이션을 위한 CI 빌드
- 요약
- CI 개요
- 8장. 네트워크 변경 작업 테스트하기
- 테스트 개요
- 단위 테스트
- 컴포넌트 테스트
- 통합 테스트
- 시스템 테스트
- 성능 테스트
- 사용자 인수 테스트
- 테스트가 네트워크 팀과 관련된 이유
- 오늘날의 네트워크 설정 변경과 테스트
- 품질 보증 모범 사례
- 테스트 피드백 절차 생성하기
- CI 테스트
- 브랜치상에서 게이트 빌드
- 네트워크에 대한 품질 보증 프로세스 모범 적용 사례
- 품질 게이트에 네트워크 테스트 할당
- 테스트 도구
- 단위 테스트 도구
- 오픈스택을 이용한 테스트 키친 예제
- 네트워크 체크리스트
- 네트워크 사용자 경로
- QoS
- 장애 복구 테스트
- 도구로 네트워크 코드 품질 관리
- 요약
- 테스트 개요
- 9장. 네트워크 변경 배포에 CD 파이프라인 사용하기
- CI 패키지 관리
- CD 및 전개 개요
- 전개 방식
- 풀 모델
- 푸시 모델
- 풀 또는 푸시 선택하기
- 배포 아티팩트 패키징하기
- 배포 파이프라인 도구
- 아티팩트 저장소
- CD 파이프라인 스케줄러
- 배포 파이프라인으로 네트워크 변경 배포하기
- 네트워크 셀프서비스
- 배포 파이프라인의 단계들
- 구성 관리 도구 통합
- CD 파이프라인에 대한 네트워크 팀의 역할
- 빠른 실패와 피드백 루프
- 요약
- 10장. 컨테이너가 네트워킹에 미친 영향
- 컨테이너 개요
- 솔라리스 존
- 리눅스 네임스페이스
- 리눅스 제어 그룹
- 컨테이너의 혜택
- 컨테이너 배포
- 도커
- 도커 레지스트리
- 도커 데몬
- 컨테이너 패키징
- 도커 워크플로우
- 도커 기본 네트워킹
- 도커의 사용자 정의 브리지 네트워크
- 도커 스웜
- 쿠버니티즈
- 컨테이너가 네트워킹에 미치는 영향
- 요약
- 컨테이너 개요
- 11장. 네트워크 보호하기
- 네트워크 보안의 진화와 신화 깨기
- 계정 관리
- 네트워크 장비 설정
- 방화벽 기능 구성
- 취약점 탐지
- 네트워크 분할
- 소프트웨어 정의 네트워크 보안
- 오버레이 공격
- 언더레이 네트워크 공격
- SDN 컨트롤러 공격
- 네트워크 보안과 CD
- 응용프로그램 연결성 토폴로지
- CI에 보안 점검 포함하기
- 클라우드 메타데이터 사용
- 요약
- 네트워크 보안의 진화와 신화 깨기