클라우드 네이티브 인프라스트럭처 (진정한 클라우드 네이티브 컴퓨팅 시대를 위한 아키텍처 패턴과 설계)

클라우드 네이티브 인프라스트럭처 (진정한 클라우드 네이티브 컴퓨팅 시대를 위한 아키텍처 패턴과 설계)

$21.04
Description
사람이 직접 일일이 설정하지 않고도 애플리케이션으로 인프라스트럭처를 자동화해 관리하는 'IT 인프라 기술 혁명'의 미래는 이미 다가와 있다. 고 가용성과 확장성, 신뢰성을 보장하는 클라우드 인프라스트럭처와 클라우드 네이티브한 애플리케이션 개발이 무엇인지 아직 잘 모르는 개발자와 엔지니어, 인프라 관리자에게 클라우드 네이티브 컴퓨팅의 개념과 아키텍처 패턴, 설계 원리를 알려주는 입문서!

클라우드 네이티브 인프라스트럭처는 단순히 클라우드상의 서버나 네트워크, 스토리지만을 의미하지 않는다. 클라우드 네이티브 인프라스트럭처는 탄력성과 확장성을 위한 건강한 운영 환경을 의미한다. 이 책에서는 여러분이 원하는, 즉 클라우드 네이티브 애플리케이션 전체의 수명주기를 관리하는 인프라스트럭처 아키텍처에 대한 다양한 관례와 패턴, 요구사항에 대해 알려준다.

저스틴 개리슨과 크리스 노바는 구글, 아마존, 넷플릭스 같은 회사의 인프라스트럭처를 아키텍처 관점에서 설계하면서 힘들게 얻은 교훈을 이 책에서 모두 공개한다. 저자진은 클라우드 네이티브 컴퓨팅 재단(CNCF)이 채택한 프로젝트에서 영감을 얻어 쿠버네티스 같은 현존하는 도구에서의 패턴 예제도 제공한다.

- 클라우드 네이티브 인프라스트럭처가 클라우드 네이티브 애플리케이션에 필요한 이유
- 기업에서 클라우드 네이티브 사례를 도입해야 하는 시점에 대한 가이드라인
- 인프라스트럭처와 애플리케이션을 배포하고 관리하는 패턴 설명
- 인프라스트럭처가 아주 특이한 상황에서도 원하는 대로 동작하는지 확인하는 테스트를 설계하는 방법
- 코드로서 정책을 활용해 인프라스트럭처를 보호하는 방법
저자

저스틴개리슨

저자저스틴개리슨(JustinGarrison)
세계적으로가장큰미디어회사에서일하는엔지니어로서,커뮤니티와오픈소스를사랑한다.기술과관련한전문용어나유행어를좋아하진않지만기술동향에감춰진패턴과이점을연구해서찾아내고자한다.그는이렇게찾아낸결과물을사람들과공유하며실용적인자료와독특한예제를함께제공함으로써지식을전파하려고노력한다.또한,많은커뮤니티에서활발히활동하면서현상에대한질문을끊임없이던진다.저스틴은새로운것을배우고,자신이깨달은바를커뮤니티에돌려주려고항상노력한다.

목차

지은이소개
감수자소개
감수의글
옮긴이소개
옮긴이의글
들어가며

[1장]클라우드네이티브인프라스트럭처란무엇인가
[2장]클라우드네이티브를도입해야할시점
[3장]클라우드네이티브배포의진화
[4장]인프라스트럭처애플리케이션설계
[5장]인프라스트럭처애플리케이션개발
[6장]클라우드네이티브인프라스트럭처테스트
[7장]클라우드네이티브애플리케이션관리
[8장]애플리케이션보호
[9장]클라우드네이티브인프라스트럭처구현

[부록A]네트워크회복성을위한패턴
[부록B]락인에대응하는우리의자세
[부록C]사례연구:박스(BOX)사의쿠버네티스도입기

찾아보기

출판사 서평

[이책의독자대상]
인프라스트럭처또는인프라스트럭처관리도구를개발하는엔지니어인경우이책에서많은혜안을얻을것이다.클라우드환경에서실행되도록설계된인프라스트럭처를생성하기위한패턴,프로세스,사례를이해하는데도움을줄것이다.어떻게해야제대로하는지를배우면애플리케이션의역할과인프라스트럭처를구축하거나클라우드서비스를사용해야만하는시점을더잘이해할수있다.

또한애플리케이션엔지니어는어떤서비스가만들고있는애플리케이션의일부가되어야하며어떤서비스가인프라스트럭처에서반드시제공되어야만하는지알수있다.이책을통해애플리케이션엔지니어는인프라스트럭처관리를위한애플리케이션을개발하는엔지니어와공유해야할책무도발견할수있다.기술수준을높이고인프라스트럭처설계와클라우드네이티브방식으로인프라스트럭처를유지관리하고싶은시스템관리자는이책에서교훈을얻을수있다.

퍼블릭클라우드에서모든인프라스트럭처를실행하는가?이책을통해언제클라우드서비스를도입해사용할것인지,그리고언제자신만의추상화또는서비스를구축해야할지를알수있을것이다.데이터센터또는직접구축한(on-premise)클라우드에서운영하고있는가?이책에서는현대적인애플리케이션이인프라스트럭처에서기대하는바를설명하고,현재투자한것들을활용하기위해필요한서비스를이해하는데도움을준다.

이책은사용법을설명하지않고,구현예를제공하지도않으며,특정제품을처방하지도않는다.아마도관리자나이사,임원에게는너무기술적일수있지만,이런역할을맡은사람의참여도와기술적전문성에따라이책에서얻는지식의정도가다를수도있다.무엇보다인프라스트럭처가비즈니스에미치는영향과글로벌인터넷규모로운영되는비즈니스에서작동한다고입증된인프라스트럭처를만드는방법을배우고싶다면이책을읽어보길바란다.이정도크기로확장해야하는애플리케이션이없을지라도여기에설명된패턴으로인프라스트럭처를구축할경우유연함과조작성과함께높은부가가치를제공할수있다.

[추천의글]
클라우드네이티브아키텍처의온디맨드(on-demand)특성은효율적이고확장가능하며신뢰성있는시스템을신속히만드는데필요한가정들을바꿔버렸다.이책을통해두저자크리스와저스틴은클라우드네이티브원칙과관례에관한훌륭한가이드를확립했다.
-에이드리안코크로프트(AdrianCockcroft)

앞으로십여년후쯤에모든소프트웨어는클라우드네이티브컴퓨팅방식으로배포될것이다.크리스와저스틴은클라우드네이티브커뮤니티의리더로활약해왔다.이처럼새롭고흥미로운생태계를많은사람이항해하도록이끄는두저자의작품을보게되어참으로감격스럽다.
-댄콘(DanKohn),CNCF이사

[옮긴이의글]
클라우드는만드는사람이나사용하는사람이나여간쉽지가않다.이전시대의인프라스트럭처는회사나본인이직접보유한물리서버,IDC나특정서비스업체에서제공받는호스팅서버정도로나뉘었는데,이제는거기에다가가상머신과컨테이너까지더해졌다.그리고총비용효율증대와아웃소싱또는오프쇼어off-shore(완전히남의자산을사용해서인프라스트럭처를유지하는것)를위해서퍼블릭클라우드나프라이빗클라우드를사용하고있다.복잡도가너무높아져서,이제인프라스트럭처관리는단순히정책이나절차,그리고이것을유지하기위한사람만으로는지탱할수가없다.

이전세대의인프라스트럭처운영은넓은공간에큰스크린을띄워놓으면끝나는아주단순하고지루한것이었다.하지만현대의인프라스트럭처운영은복잡도가높아졌다는점뿐아니라가상머신그리고컨테이너를광범위하게자동으로컨트롤해주는오케스트레이터의등장으로인해모든것이자동으로조절되게되었다는점을큰변화로꼽을수있다.즉인프라스트럭처환경자체가이제는API를통해코드로제어하게되어버렸다.수동으로어떤것하나를끄거나다시켠다하더라도오케스트레이터가알고리즘에의해자기가원하는형태로바꿔버린다.

이제IT운영을하는사람들도코드를만들고관리해야하는시대가된것이다.IT운영을위한코드는기존에개발자가만든코드자체뿐만아니라코드를관리해야하는기술들(이를테면중앙코드저장소,자동코드테스트등)에서전혀차이가없다.차이가있다면이코드가IT인프라스트럭처를다룬다는것뿐이다.즉운영자도개발자가되어야하는시대가도래한것이다.

아주오랜역사를지닌IT인프라스트럭처도알아야하고이걸코드로표현하는방법도알아야하니분명쉬운일은아니다.하지만이책에서설명하는단계와기술들을따라가다보면쉽게방향을정할수있게될것이다.

[감수의글]
학창시절1990년대초반에워크스테이션이가득찬연구실에서근무할때,모든서버전면에는이름과IP주소가적힌명패가붙어있었다.만화영화주인공,행성,보석등에서아이디어를얻은멋진서버이름은심지어다른학교에서도알고있을정도였다(아,그당시는겁도없이공인IP로인터넷에접속하던시절이라서DNS이름이서버의진짜별명이었다).장애가발생하면서버로달려가서하드웨어에는문제가없는지,경우에따라서는리부팅이필요한지꼼꼼하게콘솔앞에서진단하고문제를해소한다음에결과보고서의가장상단에문제가된서버이름을기입했다.

강산이두번바뀌어2010년이후퍼블릭클라우드가본격적으로시장을공략하기시작하면서서버관리자도,서버이름도소리소문없이사라지기시작했다.누구나(관리는클라우드업체에서담당하므로실제업무를맡은개발자일확률이높겠지만)클라우드콘솔에들어가서버튼만누르면인스턴스가바로만들어지고사라지는상황에서그까짓이름따위가무슨소용이있겠는가?인스턴스ID만알면API로서버를관리할수있기에서버이름은물론이고심지어클라우드데이터센터의물리적인위치나표준시간대에맞춘운영시간도관심에서멀어지기시작했다.어차피인스턴스는SLA범위내에서멈춰버리거나심지어다른물리서버로옮겨지는상황이불가피하므로애지중지관리할필요가없다.

2013년글렌베리(GlennBerry)가SQLPASS2013컨퍼런스에서'ScalingSQLServer2012'라는제목으로발표하는중에'수직확장대수평확장'이라는내용을소개하면서,수직확장은서버를애완동물처럼취급하는반면에수평확장은가축으로취급한다는마이크로소프트빌베이커가설명한비유를보고들은사람들은엄청난충격에휩싸인다.전통적인서버는이름을붙이고고장이나지않은지계속살피며문제가생기면건강하게치료하지만,클라우드네이티브서버는숫자만세고있다가아프면바로죽여버린다는상당히비정한설명때문이었다.클라우드환경을접하고나서문화적인충격을느꼈다면아마어느랙의어느하드웨어서버에들어있는지도모르는수많은인스턴스들의익명성때문인지도모르겠다.

엄청나게빠른속도로사회가바뀌고있으므로사업의승부는속도와확장성에달려있고,이를위해컴퓨팅환경을뒷받침하는인프라스트럭처도발전해왔다.'클라우드네이티브인프라스트럭처'는바로이런시대의변화에부응하는최신기술이며,아키텍처수립부터설계와구현을거쳐테스트에이르기까지소프트웨어엔지니어링부문에서여러가지개념을빌려와인프라스트럭처를소프트웨어처럼취급할수있게만든다.명세를문서화하고싶은가?코드로만들면된다.명세를실환경에반영하고싶은가?코드를빌드해서수행하면된다.이력을관리하고싶은가?코드이므로깃과같은분산관리시스템으로추적하면된다.제대로동작하는지테스트하고싶은가?코드이므로단위테스트와통합테스트를돌리면된다.

하지만현실로돌아와보면상황은생각보다훨씬더복잡하다.퍼블릭클라우드,가상화기술,마이크로서비스,셰프나퍼핏과같은구성관리도구,컨테이너,쿠버네티스와같은오케스트레이터,Go와같은최신프로그래밍언어,스프링프레임워크와같은클라우드네이티브프레임워크를비롯해여러가지기술들이현기증이들정도로사방에서쏟아져나오고있지만,이런기술들을무작정도입해사용한다고해서클라우드네이티브가되지는않는다는사실이클라우드로이전하는가장큰걸림돌이되고있다.

어떤상황에서도사업을최대로지탱하는인프라스트럭처를고도화하고싶은우리에게는클라우드애플리케이션의새로운시대를연'12요소애플리케이션'과같은지침이필요하며,다행스럽게도바로이책이클라우드네이티브한인프라스트럭처의아키텍처를수립하고설계하는데도움이되는패턴과지침을제공한다.이책은우선클라우드네이티브인프라스트럭처개요부터클라우드네이티브도입시점,클라우드네이티브배포방식의진화를다루고,본론으로들어가서인프라스트럭처애플리케이션설계와개발과테스트와관리방법을다룬다.마지막으로애플리케이션을보호하고클라우드네이티브인프라스트럭처를구현하는내용으로마무리한다.네트워크회복성을위한패턴과락인에대한조언,그리고박스(Box)사의쿠버네티스도입을정리한부록도실용적인도움을준다.

모자이크와넷스케이프로인터넷업계의지형도를완전히바꾸는데성공한마크앤드리슨(MarcAndreessen)은2011년8월무렵<월스트리트저널>에기고한“왜소프트웨어가세상을먹어치우고있는가?”라는글에서제조업은물론이고기존소프트웨어대기업까지새로운소프트웨어의물결에휩쓸려경쟁력이급격하게떨어지고있는현실을정확하게분석했다.데이터센터에서상면을빌리고랙을설치하고전용선을끌어들이며서버를구매하고CD로소프트웨어를설치하는시대는서서히저물어가고있다.업계전체가소프트웨어로인해흔들리는판국에소프트웨어를움직이는인프라스트럭처가소프트웨어가되지말라는법이있는가?

이책본문에서인프라스트럭처가애플리케이션이며,다시애플리케이션이인프라스트럭처가된다는설명을읽으면서장자의'호접지몽'이떠올랐다.영화<매트릭스>의가상세계만큼이나클라우드세계는거의모든것이소프트웨어로움직이므로너무나도적절한설명이아닐까싶다.이책을통해클라우드네이티브인프라스트럭처세상에들어오신독자여러분을환영한다.