이미 소장하고 있다면 판매해 보세요.
|
1장. 가상화
____마이크로소프트 가상화의 역사 ____가상화 종류의 이해 __하드웨어/플랫폼/서버 가상화 __저장소 가상화 __네트워크 가상화 __OS 가상화 ____가상화의 단점 __컴퓨터 부팅 시간 __낮은 리소스 사용률 __운영비용 __애플리케이션 패키징 및 배포 ____컨테이너화 소개 __Container의 몇 가지 주요 구현 __Docker ____Windows Server Container __Windows Server Container의 탄생 __Windows Server Container 버전 ____Hyper-V Container __다른 Container 유형이 있는 이유 __Container 용어 ____Microsoft Azure 내 Windows Server Container ____컨테이너화와 서버 가상화의 비교 ____클러스터 관리 __Docker 스웜 __쿠버네티스 __DC/OS ____도구 지원 __Docker용 Visual Studio 도구 __Visual Studio Code __Visual Studio 온라인 __Windows용 Docker __Windows용 Docker 툴박스 ____Container 형태를 이용하는 기타 제품 __Turbo __Rocket ____요약 2장. 첫 번째 Container 배포 ____개발 환경 준비 __Windows 10에서의 Container __온프레미스 환경에서의 Windows Server Container __Microsoft Azure에서의 Windows Server Container __Windows Server 2016의 Container 옵션 __Microsoft Azure에서 Windows Server 2016 가상 컴퓨터 생성 __기본 OS 이미지 설치와 확인 ____Windows Server Container 개발 __Docker Hub에서 이미지 가져오기 __Windows Container 이미지 준비 ____Docker에서 웹 애플리케이션 실행 __Container 생성 __dockerfile 분석 __Docker 서비스 시작과 중지 ____요약 3장. Container 이미지 작업 ____이미지 목록 ____이미지 검색 ____docker pull ____docker run __분리 모드와 포그라운드 모드 비교 __Container 이름 __격리 기술 __dockerfile 이미지의 기본 값 재정의 ____docker build __빌드 컨텍스트 __Docker 이미지 빌드 __dockerignore ____docker tag ____docker commit ____docker exec ____docker push ____Container 또는 이미지 정리 ____요약 4장. Container 애플리케이션 개발 ____개발 환경 설정 ____닷넷 코어와 ASP.NET 코어 이해 __ASP.NET 코어 아키텍처 __ASP.NET 애플리케이션 호스팅 ____ASP.NET 코어 애플리케이션 개발 __뮤직 스토어 애플리케이션 __Windows Server Container로 ASP.NET 코어 애플리케이션 배포 __Docker화된 애플리케이션 __점 연결 __개발자 컴퓨터에서 테스트 및 실행 __Windows Server Container 내의 IIS를 이용해 ASP.NET 코어 호스팅 ____Windows Server Container를 이용해 ASP.NET 4.5 애플리케이션 개발 __Docker화된 ASP.NET 4.5 웹 애플리케이션 __점 연결 ____Windows Server Container 네트워킹 ____요약 5장. Container 애플리케이션 배포 ____ARM을 사용해 Microsoft Azure에 가상 컴퓨터 배포 ____원격 연결을 위한 가상 컴퓨터 구성 ____원격 Docker 호스트 구성 __docker.pid __dockerd 구성 옵션 ____Container 원격 배포 ____부하 분산 설정 ____Hyper-V Container 배포 __사전 요구 사항 __Hyper-V Container에서 Music Store를 실행하는 순서 ____이름 없는 이미지 ____요약 6장. 저장소 볼륨 ____저장소 볼륨 __Docker 볼륨 __공유 볼륨 __뮤직 스토어: 볼륨을 사용한 이미지 저장 __볼륨 삭제 ____관계형 데이터베이스와 SQL Server Container ____뮤직 스토어 : SQL 서버 Container를 사용해 데이터 저장 ____요약 7장. 레디스 캐시 Container ____레디스 캐시 Container 생성 __레디스 이미지와 Container 생성 ____레디스 캐시 Container 운영 __RDM(Redis Desktop Manager) __레디스 Container 게시 ____영구적인 레디스 Container ____마스터-슬레이브 구성 ____레디스 Container를 뮤직 스토어에 연동 ____요약 8장. Container 네트워크 ____Windows 네트워킹 소개 __Windows Container의 네트워크 관리 스택 ____Container 네트워크 구성 __정적 포트 매핑 __네트워크에서 Container 연결 끊기 __WinNAT 네트워크 구현의 한계 ____네트워킹 모드 __Transparent 네트워크 __L2 브리지와 L2 터널 ____다중 Container 네트워크 ____Container 네트워크 라우팅 __단일 노드 __다중 노드 ____뮤직 스토어의 다중 서브넷 배포 __Docker용 Windows PowerShell을 사용해 Docker 네트워크 관리 __요약 9장. 지속적인 통합과 배포 ____Visual Studio 팀 서비스 소개 ____지속적인 통합(CI) __VSTS 계정 생성 __뮤직 스토어를 VSTS에 업로드 __자동화된 빌드 구성 __사용자 지정 빌드 에이전트가 필요한 이유 ____지속적인 배포(CD) __SPN 구성 __준비 환경 구성 __프로덕션 환경 구성 ____CI/CD 테스트 ____요약 10장. 리소스 할당 관리 및 REST API ____Container 리소스 할당 __CPU 리소스 할당 __메모리 할당 __네트워크 할당 ____통찰력과 원격 분석 __Application Insights __OMS ____dockerfile 최적화 __이미지 크기 최적화 __빌드 속도 최적화 __명령어의 순서 정하기 ____Docker REST API __Container 목록 확인 __Container 생성 __Container 시작/중지 __Container 삭제 ____Docker .NET SDK __Container 목록 확인 __Container 생성 __Container 시작 __Container 중지 __Container 제거 __이미지 다운로드 ____요약 11장. 복합 Container와 클러스터링 ____docker-compose 명령어를 사용해 다중 Container 배포 조정 ____docker-compose 파일 레퍼런스 __빌드 옵션 __Container 명명 __종속성 __이름이 있는 볼륨 ____Docker CLI 옵션 __서비스 시작/중지 __이미지 빌드 __Container 생성 __실행 명령 __강제 종료(Kill) 명령 __일시 중지와 재개 __확장 __클러스터 관리 ____Docker 스웜 아키텍처 ____스웜 클러스터 설정 __SSH 키 생성 __ACS에 스웜 클러스터 생성 ____Docker 스웜의 기능 ____요약 12장. Nano Server ____Nano Server에 대한 간단한 소개 ____Nano Server에서 워크로드 구동 시 장점 __실시간 마이그레이션 __제로 풋프린트 __패키지 관리 __다시 시작 __프로비저닝 시간 __서버 관리 __PowerShell 코어 ____Microsoft Azure에 Nano Server 프로비저닝 ____Windows 10에서 Nano Server 프로비저닝 ____패키지 관리 ____Nano Server에서 .NET 코어 애플리케이션 배포 ____PowerShell DSC를 이용해 구성 관리 ____나노 Container ____요약 |
Srikanth Machiraju
|
추천의 글 최근 들어 Container는 점점 고급화된 방식으로 가상 시스템 서비스를 제공하고 있다. 마이크로서비스(Microservice)와 연계돼 격리되고, 자체적인 애플리케이션 서비스를 제공한다. Container는 인프라스트럭처에서 솔루션을 개발 및 배포할 수 있는 혁신적인 방향을 제시한다. Docker는 오픈소스 기반으로 Container를 만들고 Container 클러스터를 구성하기 위한 인기 있는 기술이 됐다. 이는 수백 개 혹은 수천 개의 Container를 실제 서버에 구현함으로써 서비스를 최적화하거나 유연하게 운영할 수 있는 기능을 제공한다. 필요한 모든 기능을 갖고 있으면서도 개별 Container 내에서 다른 운영체제(리눅스, Windows 등)를 사용할 수 있다는 점은 모듈식 시스템을 만드는 데 용이하다. 마이크로소프트 Windows와 Microsoft Azure, 애저 클라우드 플랫폼은 지속적으로 발전하고 있어 전 세계 기업의 IT 시스템 내에서 현재 디지털 트랜스포메이션(Digital Transformation)을 위한 시스템을 만드는 데 중요한 역할을 하고 있다. 수백만 명(또는 수천만 명)의 모바일 사용자가 사용하는 엔터프라이즈 애플리케이션이나 수십억 개의 IoT 센서를 사용하는 애플리케이션이 있더라도 Container 모델을 통해 Windows를 플랫폼으로 사용할 수 있으며 필요한 만큼 확장이 가능한 Microsoft Azure 클라우드를 ,사용할 수도 있다. 배포와 잦은 릴리스는 Container 기술에 의해 발전한 또 다른 영역이다. 코드 형태로 인프라스트럭처(Infrastructure as a code)를 만들어 개발, 배포, 운영을 자연스럽게 연결하는 DevOps는 오늘날 솔루션을 만드는 빠른 방법의 일부가 됐다. Container 형태를 이용하는 것은 변경이 어려운 인프라스트럭처로 솔루션을 쉽고 효율적으로 배포할 수 있게 해준다. 이 책은 앞서 언급한 모든 주제를 다루고 있다. Windows Container를 이해하고 다른 유형의 시스템을 만들 때, 사용할 Windows와 Microsoft Azure 개발자의 도구들도 다룬다. DevOps의 연동도 주제로 다룸으로써 애플리케이션 개발 방법론을 구현하는데 유용하다. 저자는 노련한 개발자며 아키텍트(Architect)다. 대규모의 고객을 위한 최신 기업 솔루션 구축 경험과 복잡한 요소를 함께 다루는 실용적인 모범 사례들을 모든 페이지에 담으려고 노력했다. 그의 컨설팅 경험과 수많은 기술적 경험을 담아 Windows Container를 활용한 애플리케이션 개발에 대한 구체적인 방법론을 제시하고, 이는 클라우드 기반으로 확장성이 요구되는 기업용 애플리케이션 개발을 담당하는 개발자들, 아키텍트 그리고 운영 팀에게 매우 유용한 도구가 될 것이다. Container와 마이크로서비스에 대한 소개부터 시작해 저자는 간단한 ‘Hello World’ Container에서 실용적인 사례까지 개발자들을 깊이 있는 여정으로 안내한다. 이는 SQL 서버, 레디스 캐시(Redis Cache), 저장소 볼륨, 지속적인 개발 및 배포를 위한 VSTS, 리소스 관리 및 통찰력(Insight)를 활용해 복잡한 기업 애플리케이션을 개발할 수 있게 도움을 줄 것이다. 리테쉬 모디(Ritesh Modi) 마이크로소프트 인도지사, 시니어 기술 전도사(Senior Technology Evangelist) 이 책에서 다루는 내용 Visual Studio 2015, Docker 및 PowerShell을 이용해 Windows 10(데스크톱)과 Microsoft Azure에 Windows Container 형태로 ASP.NET 웹 애플리케이션을 빌드 및 배포 Windows Server Core 기본 OS 이미지와 Docker 명령어를 통해 사용자 지정 이미지 생성 및 관리, Docker Hub로 이미지 게시, 이미지 태그, dockerfile 작성 등 Redis Cache Container와 SQL Server Container를 저장소 볼륨과 함께 사용해 엔터프라이즈 기업 내 프로덕션에서 사용할 수 있는 Container 환경 생성, 사용자 지정 Container 네트워크 설정, VSTS, Microsoft Azure 및 Git을 이용한 CI 및 배포 파이프라인 Windows 내 Docker Compose를 사용한 복합 Container 환경 배포 마이크로소프트의 최신 서버 플랫폼인 Nano Server를 이용해 애플리케이션을 빌드하는 방법 Windows PowerShell을 이용해 사용자 지정 Nano Server 이미지와 Nano Server 내 Container를 만드는 방법 PowerShell Core, DSC 이용 설정 이 책의 대상 독자 이동 가능한 앱을 만든 후, 코드의 변경을 거의 하지 않고 원하는 곳(노트북, 서버 그리고 공용/사설 클라우드)에서 구동할 수 있는 Windows Server Container를 이용하려는 개발자다. 개발자들은 높은 품질의 애플리케이션을 만들고 전달할 수 있을 것이다. Windows Container는 개발자와 관리자 모두에게 큰 영향을 줄 것이므로, 이 책은 사용과 유지 보수가 용이한 인프라스트럭처를 준비하는 IT Pro, 또는 DevOps 엔지니어에게 유용하다. IT Pro는 서버당 애플리케이션의 밀집도를 높여 리소스 사용률을 최적화할 수 있을 것이다. 이 책에서 다루는 개념은 DevOps에서 Container 개념 정립, 개발 환경에서 프로덕션 환경으로 손쉽게 개발된 코드를 Container 형태로 게시하는 작업 연결에 도움이 될 것이다. 이 책의 구성 1장. '가상화'에서는 여러 가상화의 각기 다른 수준에 대해 소개하고, 각 가상화 유형에 따른 도전 과제와 가상화 플랫폼으로서의 Container, 컨테이너화된 애플리케이션 운영의 장점, 도구 지원, 시장 내의 다른 Container 플랫폼에 대해 알아본다. 2장. '첫 번째 Container 배포'에서는 개발 환경을 구축하는 방법을 알아보며, Docker 용어에 대한 이해, Docker Hub에서 이미지 설치 Docker CLI와 dockerfile 작성을 활용한 Windows Container 사용자 지정 이미지 생성 방법을 알아본다. 3장. 'Container 이미지 작업'에서는 Container 목록 확인, 시작/중지, 사용하지 않는 Container의 제거 혹은 Windows Server 환경에서 Docker CLI를 활용한 이미지 사용 등 일반적인 Container 관리 작업에 대해 알아본다. 4장. 'Container 애플리케이션 개발'에서는 Visual Studio 2015, .NET 코어, 그리고 C#을 활용한 ASP.NET 코어 웹 애플리케이션을 Windows Server 2016 서버 코어에서 동작하는 Windows Container에 PowerShell과 Docker CLI를 사용해 생성 배포하는 방법을 알아본다. 5장. 'Container 애플리케이션 배포'에서는 마이크로소프트 ARM(Azure Resource Manager) 템플릿과 PowerShell, Container 호스트를 위한 원격 관리 설정, Windows Container와 Hyper-V Container로 애플리케이션 원격 배포, 소프트웨어 부하 분산 장치 설정 등을 활용해 Windows Server Container 환경을 생성하는 방법을 알아본다. 6장. '저장소 볼륨'에서는 Docker 볼륨을 활용한 파일 및 저장소 기반의 Container 생성 및 마이크로소프트 SQL 서버를 활용한 관계형 데이터베이스 Container 등을 만드는 방법을 알아본다. 7장. '레디스 캐시 Container'에서는 레디스(Redis)와 저장소 볼륨을 활용해 영구적인(Persistent) 레디스 캐시(Redis Cache) Container를 만드는 방법을 알아본다. 8장. 'Container 네트워크'에서는 Windows Container 네트워크, 다른 네트워킹 모드, 이를 활용한 사용자 지정 Container 네트워크의 생성과 해당 네트워크에 Container 배포 방법 등과 같은 Windows Container 네트워크에 대해 알아본다. 9장. '지속적인 통합과 배포'에서는 Microsoft Azure, Docker Hub와 Git상의 Visual Studio 팀 서비스(Team Services, TFS 온라인)를 활용한 Container 애플리케이션의 지속적인 통합과 배포 파이프라인에 대해 알아본다. 개발을 위한 사용자 지정 서버 구축과 패키징, 그리고 Container를 Windows Container 호스트에 릴리스하기 위한 방법도 알아본다. 10장. '리소스 할당 관리 및 REST API'에서는 Container 리소스 활용, 생성, 그리고 Postman과 C#으로 Docker REST API를 이용한 Container의 생성 및 관리, 이미지 최적화 전략 및 Container와 Container 호스트에서 사용 가능한 모니터링 옵션에 대해 알아본다. 11장. '복합 Container와 클러스터링'에서는 Docker 컴포스(Compose)를 이용해 다중 Container 배포 조정(Orchestrate), 다중 Container 환경에 대한 확장 설정, 그리고 Docker 컴포스 서비스 정의를 작성하는 방법을 알아본다. 또한 Docker 스웜(Swarm)과 ACS(Azure Container Service)를 활용해 클러스터를 관리하는 방법을 알아본다. 12장. 'Nano Server'에서는 Windows Nano Server에 대한 소개로, PowerShell을 활용한 사용자 지정 Nano Server 이미지 구성과 Nano Server로 Container 배포, Nano Server에서의 Container 관리, PowerShell DSC를 활용한 Nano Server 구성 방법을 알아본다. 지은이의 말 Container는 최신의 클라우드 기반 애플리케이션을 만드는 차세대 혁신 도구며, 이는 서버 가상화 같은 이전 기술들과 비교되고 있다. 컨테이너화(Containerization)는 가장 빠르고 리소스 측면에서 효율적이며 확장 가능한 애플리케이션을 호스팅 환경에서 개발하는 데 현재까지 가장 안전한 방법이라고 인식되고 있다. 이 책은 Docker 명령어와 Docker REST API를 이용해 최신 Windows Server 플랫폼에서 컨테이너화된 ASP.NET 애플리케이션을 만들기 위한 길고 깊은 여행으로 안내할 것이다. 이 책은 단일 환경에서부터 지속적인 통합(CI, Continuous Integration) 및 지속적인 배포(CD, Continuous Delivery)를 활용하는 환경에까지 Container를 만들고 전달하는 방법을 살펴본다. 가상 컴퓨터 같은 격리 수준을 제공하는 확장 가능한 저장소 Container와 캐시 Container를 사용해 컨테이너화된 애플리케이션을 만드는 방법도 배운다. 이 책은 Container 호스트 환경 생성, 복합 Container 배포 관리 및 리소스 관리에 대해서도 도움을 줄 것이다. 옮긴이의 말 Docker는 빠르게 이슈가 된 만큼 실사용 또한 빠르게 진행되고 있는 기술인 것 같다. Docker를 지원하는 클라우드 플랫폼이 늘어나는 만큼 Docker를 잘 활용하기 위한 다양한 오케스트레이션 도구 또한 늘어나 그 자리를 견고히 하고 있다. 2015년, Windows Server 2016의 기술 프리뷰(Technical Preview)에서 첫 선을 보인 Windows Container는 미약했던 첫 시작과는 달리 Docker 명령어를 품고 Windows 10으로 지원 영역을 확장하는 등의 많은 변화가 있었다. 최근 마이크로소프트 본사에서 새로운 기술들이 소개될 때마다 Windows/리눅스 Container에 대한 지원이 빠지지 않는 것을 볼 수 있다. 어찌 보면 이러한 Windows Container의 중대한 전환기에 번역서를 출간하게 돼 기대와 감회가 새롭다. 가상화를 이용한 기술은 여러 가지가 있다. 이 책에서 다루는 내용은 최근 가장 핫한 이슈로 대두되는 Microsoft Azure와 Container 기술인 Docker를 모두 다루기 때문에 빠르게 바뀌는 IT 트렌드에 맞춘 최신 기술을 공부하기에는 좋은 소재로 도움이 될 것 같다. 이 책의 내용을 살펴보면 마이크로소프트 기술이 오픈소스 기술도 포용하는 부분을 직접 느낄 수 있다. 또한 엔지니어/개발자가 감당해야 할 분야가 점점 확대, 통합되는 것을 생각해볼 수도 있을 것 같다. 이 책을 통해 작게는 Container 기술을, 넓게는 클라우드를 향하는 분들에게 미약하지만 도움이 됐으면 한다. |