47
Project TIAMAT Infrastructure as code Jesang Yoon [email protected] 2017.09.27

Project TIMAT - infrastructure as code

Embed Size (px)

Citation preview

Page 1: Project TIMAT - infrastructure as code

Project�TIAMATInfrastructure�as�code

Jesang�[email protected]

2017.09.27

Page 2: Project TIMAT - infrastructure as code

안녕하세요,��SW�개발자�윤제상입니다.�

HB�Smith라는�스타트업을�운영하고�있습니다.�블로그:�https://medium.com/@yoonjs2

Page 3: Project TIMAT - infrastructure as code

TIAMAT?

Page 4: Project TIMAT - infrastructure as code

TIAMAT�[타이마트]�(하이마트아님)�Dungeon�&�Dragons�최종보스�머리가�여러개�달린용�

Python으로�클라우드�인프라를�관리하는�도구

Page 5: Project TIMAT - infrastructure as code

백엔드(Backend)�개발자의�삶

Page 6: Project TIMAT - infrastructure as code

IDC�시절엔…�네트워크를�설정합니다.�서버를�사거나�설치합니다.�리눅스를�설치합니다.�여러�스택을�설치합니다.�자�이제�개발해�볼까요?

Page 7: Project TIMAT - infrastructure as code

클라우드�시대엔…�네트워크를�설정합니다.�VM을�띄웁니다.�여러�스택을�설치합니다.�자�이제�개발해�볼까요?

Page 8: Project TIMAT - infrastructure as code

백엔드(Backend)�개발자의�고통

Page 9: Project TIMAT - infrastructure as code

IDC�시절엔…�네트워크를�설정하는데�며칠�서버를�사거나�설치하는데�며칠�리눅스를�설치하는데�몇시간�여러�스택을�설치하는데�몇시간�자�이제�개발해�볼까요?�까지�최소�며칠

Page 10: Project TIMAT - infrastructure as code

클라우드�시대엔…�네트워크를�설정하는데�몇시간�VM을�띄우는데�몇분�여러�스택을�설치하는데�몇시간�자�이제�개발해�볼까요?�까지�최소�수시간

Page 11: Project TIMAT - infrastructure as code

이게�끝이�아님…

Page 12: Project TIMAT - infrastructure as code

개발서버에�누가�손댔어요?�인프라�문서가�없거나�오래됨�인프라�설치한�개발자가�퇴사/연락안됨�저번에�대충�고쳤더니�또�터짐�…

Page 13: Project TIMAT - infrastructure as code

더�나은�방법은�없을까요?

Page 14: Project TIMAT - infrastructure as code

잘하는�사람들에게�배웠습니다.�개발,�검증,�운영으로�환경을�구분하라�=>�프로비저닝(Provisioning)하라

Page 15: Project TIMAT - infrastructure as code

DV QA OP

개발 검증 운영

Page 16: Project TIMAT - infrastructure as code

잘하는�사람들에게�배웠습니다.�인프라를�프로그래밍�해야�한다.�=>�인프라를�코드로�관리해야�한다.�=>�인프라를�자동화�해야�한다.

Page 17: Project TIMAT - infrastructure as code

코드

서버�&�인프라

설정

Page 18: Project TIMAT - infrastructure as code

코드로�관리하면�뭐가�좋아지나요?

Page 19: Project TIMAT - infrastructure as code

3R을�달성할수�있게�됩니다�Repeatable�=�반복가능�Reproducible�=�재현가능�Reliable�=�신뢰가능

Page 20: Project TIMAT - infrastructure as code

3R을�달성할수�있게�됩니다�Repeatable�=�언제든�부수고�재건가능�Reproducible�=�어느곳�에서든�생성가능�Reliable�=�언제든�같은�결과를�보여줌

Page 21: Project TIMAT - infrastructure as code

DV QA OP

개발 검증 운영

코드

Config

개발자�개인별�서버�&�인프라

검증용�서버�&�인프라

Config Config

국가별�운영�서버�&�인프라

Page 22: Project TIMAT - infrastructure as code

AWS�위에선�이�모든게�가능

Page 23: Project TIMAT - infrastructure as code

Primitives

• not derived : original, primary• assumed as a basis; especially : axiomatic primitive concepts

Page 24: Project TIMAT - infrastructure as code

One�of�the�most�important�mechanisms�we�provided�was�to�offer�customers�a�collection�of�primitives�and�tools,�where�they�could�pick�and�choose�their�preferred�way�to�engage�with�the�AWS�cloud,�instead�of�only�providing�one�framework�that�they�are�forced�to�use,�which�includes�everything�and�the�kitchen�sink.�This�approach�has�enabled�our�customers�to�become�so�successful,�that�even�later�generations�of�AWS�services�make�use�of�exactly�the�same�primitive�services�our�customers�have�become�accustomed�to.

Primitives�not�frameworks

Werner�VogelsCTO�-�Amazon.com

10�Lessons�from�10�Years�of�Amazon�Web�Services�

Page 25: Project TIMAT - infrastructure as code

어떻게�만들었나요?

Page 26: Project TIMAT - infrastructure as code

인프라를�Template로�찍어낼�수�있게�한다.�완전히�띄우거나�일부만�띄울�수�있게�한다.�완전히�부수거나�일부만�부술�수�있게�한다.�띄운�인프라는�지속적으로�업데이트�한다.

Page 27: Project TIMAT - infrastructure as code

Provisioner�(Johanna)

서버�&�인프라�On�Cloud

설정

Template

Page 28: Project TIMAT - infrastructure as code

서버�&�인프라�On�AWS

설정

Template

Provisioner�(Johanna)

Subprocess

Page 29: Project TIMAT - infrastructure as code

Provisioner�(Johanna)

설정B

Template

설정A

시스템�B

시스템�A

Page 30: Project TIMAT - infrastructure as code

어떻게�동작하나요?

Page 31: Project TIMAT - infrastructure as code

인프라�구성은�건축과�유사

Page 32: Project TIMAT - infrastructure as code

Build:�네트워크�에서�시작,�어플리케이션�에서�끝

Destroy:�어플리케이션�에서�시작,�네트워크�에서�끝�

Page 33: Project TIMAT - infrastructure as code

Provisioner�(Johanna)

설정

Template

Page 34: Project TIMAT - infrastructure as code

Provisioner�(Johanna)

Template

VPC

Subnet

IGW

NAT�GW

Network�Template

Internet gateway

VPC NAT gateway

Page 35: Project TIMAT - infrastructure as code

Provisioner�(Johanna)

Template

VPC

Subnet

IGW

NAT�GW

Network�Template

Page 36: Project TIMAT - infrastructure as code

Provisioner�(Johanna)

Template

RDS�Template

EC2�Template

S3�Template

Lambda�Template

EC2

RDS

S3

Lambda

Page 37: Project TIMAT - infrastructure as code

Provisioner�(Johanna)

Template

RDS

EC2

S3

Lambda

RDS�Template

EC2�Template

S3�Template

Lambda�Template

Page 38: Project TIMAT - infrastructure as code

어떤�성과가�있었나요?

Page 39: Project TIMAT - infrastructure as code

경제적인�비용으로�인프라를�운용한다.�고객에게�커스텀�해주고�돈을�번다.�좋은�Provisioning�교본이�된다.

Page 40: Project TIMAT - infrastructure as code

앞으로�개선해야�할�것은?

Page 41: Project TIMAT - infrastructure as code

더�높은�3R의�달성

Page 42: Project TIMAT - infrastructure as code

3R�Repeatable�=�언제든�부수고�재건가능�Reproducible�=�어느곳�에서든�생성가능�Reliable�=�언제든�같은�결과를�보여줌

Page 43: Project TIMAT - infrastructure as code

기타…�문서화가�제대로�안되어�있다.�일부분은�더�자동화가�필요하다.�추상화가�덜되어�있다.�서비스�화가�덜되어�있다.

Page 44: Project TIMAT - infrastructure as code

도와주세요!�

이슈,�로드맵�https://github.com/HardBoiledSmith/tiamat�

핵심�프로젝트�https://github.com/HardBoiledSmith/johanna�

Fork�&�PR�언제든�환영합니다.

Page 45: Project TIMAT - infrastructure as code

여기계신�분들에게…

Page 46: Project TIMAT - infrastructure as code

HB�Smith는�“API�개발자를�위한�API�테스트/모니터링�서비스”를�만들고�있습니다.�Early�Bird�고객이�되어주세요!

https://hbsmith.io

HB�Smith�페이스북�그룹�좋아요�누르시고 AWS를�위한�DevOps경험�얻어가세요!�

https://www.facebook.com/hbsmith.page/�

블로그도�있습니다�:)https://blog.hbsmith.io

Page 47: Project TIMAT - infrastructure as code

감사합니다!