tiamat - python으로 만드는 aws provisioning tool
TRANSCRIPT
안녕하세요,��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
국가별�운영�서버�&�인프라
왜�파이썬으로�만들었나요?
처음엔�Bash로�짰었습니다…
수천라인�이상의�Bash�코드�=�가독성이�너무�나쁨�=�디버깅은�기대도�할수�없음�=�복잡한�로직�구현이�어려움�점점�더�유지보수가�어렵더라…
아…
결국�Bash를�버리고�Python으로�재개발
Python으로�바꿨더니�이런�장점이!�=�제대로�된�프로그래밍�언어의�모든�장점�=�AWS�클라우드와�최고의�궁합�=�저사양�1CPU,�512RAM에도�운영가능�=�강력한�문자열�처리�=�쉬운�모듈화�=�보장된�안정성과�많은�자료 ㅋㅋㅋ
어떻게�만들었나요?
인프라를�Template로�찍어낼�수�있게�한다.�완전히�띄우거나�일부만�띄울�수�있게�한다.�완전히�부수거나�일부만�부술�수�있게�한다.�띄운�인프라는�지속적으로�업데이트�한다.
Provisioner�(Johanna)
서버�&�인프라�On�Cloud
설정
Template
서버�&�인프라�On�AWS
설정
Template
Provisioner�(Johanna)
Subprocess
Provisioner�(Johanna)
Template
VPC
Subnet
IGW
NAT�GW
Network�Template
Internet gateway
VPC NAT gateway
Provisioner�(Johanna)
Template
EC2
RDS
S3
Lambda
EC2�Template
RDS�Template
S3�Template
Lambda�Template
Provisioner�(Johanna)
설정
Template
Provisioner�(Johanna)
설정B
Template
설정A
어떤�성과가�있었나요?
경제적인�비용으로�인프라를�운용한다.�고객에게�커스텀�해주고�돈을�번다.�좋은�Provisioning�교본이�된다.
앞으로�개선해야�할�것은?
문서화가�제대로�안되어�있다.�일부분은�더�자동화가�필요하다.�추상화가�덜되어�있다.�서비스�화가�덜되어�있다.
도와주세요!�
이슈,�로드맵�https://github.com/HardBoiledSmith/tiamat�
핵심�프로젝트�https://github.com/HardBoiledSmith/johanna�
Fork�&�PR�언제든�환영합니다.
여기계신�분들에게…
HB�Smith는�Python을�이용하여�API�개발자를�위한�API�테스트/모니터링�서비스를�만들고�있습니다.�
아래�링크로�신청�부탁드려요!��무료계정을�드립니다!�
http://bit.ly/2w6nNpG�
OST�운영중입니다.�“#스타트업�#파이썬�#서버�#고민나눠요”�에서�만나요!�12일�오후�2시�208A�PSF룸�입니다.
감사합니다!