Upload
jesang-yoon
View
514
Download
3
Embed Size (px)
Citation preview
안녕하세요,��SW�개발자�윤제상입니다.�
HB�Smith라는�스타트업을�운영하고�있습니다.�블로그:�https://medium.com/@yoonjs2
TIAMAT?
TIAMAT�[타이마트]�(하이마트아님)�Dungeon�&�Dragons�최종보스�머리가�여러개�달린용�
Python으로�클라우드�인프라를�관리하는�도구
백엔드(Backend)�개발자의�삶
IDC�시절엔…�네트워크를�설정합니다.�서버를�사거나�설치합니다.�리눅스를�설치합니다.�여러�스택을�설치합니다.�자�이제�개발해�볼까요?
클라우드�시대엔…�네트워크를�설정합니다.�VM을�띄웁니다.�여러�스택을�설치합니다.�자�이제�개발해�볼까요?
백엔드(Backend)�개발자의�고통
IDC�시절엔…�네트워크를�설정하는데�며칠�서버를�사거나�설치하는데�며칠�리눅스를�설치하는데�몇시간�여러�스택을�설치하는데�몇시간�자�이제�개발해�볼까요?�까지�최소�며칠
클라우드�시대엔…�네트워크를�설정하는데�몇시간�VM을�띄우는데�몇분�여러�스택을�설치하는데�몇시간�자�이제�개발해�볼까요?�까지�최소�수시간
이게�끝이�아님…
개발서버에�누가�손댔어요?�인프라�문서가�없거나�오래됨�인프라�설치한�개발자가�퇴사/연락안됨�저번에�대충�고쳤더니�또�터짐�…
더�나은�방법은�없을까요?
잘하는�사람들에게�배웠습니다.�개발,�검증,�운영으로�환경을�구분하라�=>�프로비저닝(Provisioning)하라
DV QA OP
개발 검증 운영
잘하는�사람들에게�배웠습니다.�인프라를�프로그래밍�해야�한다.�=>�인프라를�코드로�관리해야�한다.�=>�인프라를�자동화�해야�한다.
코드
서버�&�인프라
설정
코드로�관리하면�뭐가�좋아지나요?
3R을�달성할수�있게�됩니다�Repeatable�=�반복가능�Reproducible�=�재현가능�Reliable�=�신뢰가능
3R을�달성할수�있게�됩니다�Repeatable�=�언제든�부수고�재건가능�Reproducible�=�어느곳�에서든�생성가능�Reliable�=�언제든�같은�결과를�보여줌
DV QA OP
개발 검증 운영
코드
Config
개발자�개인별�서버�&�인프라
검증용�서버�&�인프라
Config Config
국가별�운영�서버�&�인프라
AWS�위에선�이�모든게�가능
Primitives
• not derived : original, primary• assumed as a basis; especially : axiomatic primitive concepts
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�
어떻게�만들었나요?
인프라를�Template로�찍어낼�수�있게�한다.�완전히�띄우거나�일부만�띄울�수�있게�한다.�완전히�부수거나�일부만�부술�수�있게�한다.�띄운�인프라는�지속적으로�업데이트�한다.
Provisioner�(Johanna)
서버�&�인프라�On�Cloud
설정
Template
서버�&�인프라�On�AWS
설정
Template
Provisioner�(Johanna)
Subprocess
Provisioner�(Johanna)
설정B
Template
설정A
시스템�B
시스템�A
어떻게�동작하나요?
인프라�구성은�건축과�유사
Build:�네트워크�에서�시작,�어플리케이션�에서�끝
Destroy:�어플리케이션�에서�시작,�네트워크�에서�끝�
Provisioner�(Johanna)
설정
Template
Provisioner�(Johanna)
Template
VPC
Subnet
IGW
NAT�GW
Network�Template
Internet gateway
VPC NAT gateway
Provisioner�(Johanna)
Template
VPC
Subnet
IGW
NAT�GW
Network�Template
Provisioner�(Johanna)
Template
RDS�Template
EC2�Template
S3�Template
Lambda�Template
EC2
RDS
S3
Lambda
Provisioner�(Johanna)
Template
RDS
EC2
S3
Lambda
RDS�Template
EC2�Template
S3�Template
Lambda�Template
어떤�성과가�있었나요?
경제적인�비용으로�인프라를�운용한다.�고객에게�커스텀�해주고�돈을�번다.�좋은�Provisioning�교본이�된다.
앞으로�개선해야�할�것은?
더�높은�3R의�달성
3R�Repeatable�=�언제든�부수고�재건가능�Reproducible�=�어느곳�에서든�생성가능�Reliable�=�언제든�같은�결과를�보여줌
기타…�문서화가�제대로�안되어�있다.�일부분은�더�자동화가�필요하다.�추상화가�덜되어�있다.�서비스�화가�덜되어�있다.
도와주세요!�
이슈,�로드맵�https://github.com/HardBoiledSmith/tiamat�
핵심�프로젝트�https://github.com/HardBoiledSmith/johanna�
Fork�&�PR�언제든�환영합니다.
여기계신�분들에게…
HB�Smith는�“API�개발자를�위한�API�테스트/모니터링�서비스”를�만들고�있습니다.�Early�Bird�고객이�되어주세요!
https://hbsmith.io
HB�Smith�페이스북�그룹�좋아요�누르시고 AWS를�위한�DevOps경험�얻어가세요!�
https://www.facebook.com/hbsmith.page/�
블로그도�있습니다�:)https://blog.hbsmith.io
감사합니다!