Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tiamat - Python으로 만드는 AWS Provisioning Tool

2,355 views

Published on

VM, Docker의 등장으로 OS 단위에서의 Provisioning은 쉬워졌지만 여전히 클라우드 기반 백엔드 시스템 전체의 Provisioning은 힘들고 어렵기만 합니다. 이런 문제를 해결하고자 Python의 장점을 최대한 활용하여 설정정보만 있으면 세계 어느 AWS Region에서도 백엔드 시스템 전체를 Provisioning이 가능한 오픈소스 도구 Tiamat를 만들었습니다. Tiamat를 이용하여 쉽게 인프라 전체를 Build/Destroy/Update 할수 있습니다. https://github.com/HardBoiledSmith/tiamat https://github.com/HardBoiledSmith/johanna

Published in: Software

Tiamat - Python으로 만드는 AWS Provisioning Tool

  1. 1. TIAMAT : Python으로 만드는 AWS Provisioning Tool 윤제상 yoonjs2@hbsmith.io HB Smith Inc. 2017.8.5
  2. 2. 안녕하세요, SW 개발자 윤제상입니다. HB Smith라는 스타트업을 운영하고 있습니다. 블로그: https://medium.com/@yoonjs2
  3. 3. TIAMAT?
  4. 4. TIAMAT [타이마트] (하이마트아님) Dungeon & Dragons 최종보스 머리가 여러개 달린용 Python으로 클라우드 인프라를 관리하는 도구
  5. 5. 백엔드(Backend) 개발자의 삶
  6. 6. IDC 시절엔… 네트워크를 설정합니다. 서버를 사거나 설치합니다. 리눅스를 설치합니다. 여러 스택을 설치합니다. 자 이제 개발해 볼까요?
  7. 7. 클라우드 시대엔… 네트워크를 설정합니다. VM을 띄웁니다. 여러 스택을 설치합니다. 자 이제 개발해 볼까요?
  8. 8. 백엔드(Backend) 개발자의 고통
  9. 9. IDC 시절엔… 네트워크를 설정하는데 며칠 서버를 사거나 설치하는데 며칠 리눅스를 설치하는데 몇시간 여러 스택을 설치하는데 몇시간 자 이제 개발해 볼까요? 까지 최소 며칠
  10. 10. 클라우드 시대엔… 네트워크를 설정하는데 몇시간 VM을 띄우는데 몇분 여러 스택을 설치하는데 몇시간 자 이제 개발해 볼까요? 까지 최소 수시간
  11. 11. 이게 끝이 아님…
  12. 12. 개발서버에 누가 손댔어요? 인프라 문서가 없거나 오래됨 인프라 설치한 개발자가 퇴사/연락안됨 저번에 대충 고쳤더니 또 터짐 …
  13. 13. 더 나은 방법은 없을까요?
  14. 14. 잘하는 사람들에게 배웠습니다. 개발, 검증, 운영으로 환경을 구분하라 => 프로비저닝(Provisioning)하라
  15. 15. DV QA OP 개발 검증 운영
  16. 16. 잘하는 사람들에게 배웠습니다. 인프라를 프로그래밍 해야 한다. => 인프라를 코드로 관리해야 한다. => 인프라를 자동화 해야 한다.
  17. 17. 코드 서버 & 인프라 설정
  18. 18. 코드로 관리하면 뭐가 좋아지나요?
  19. 19. 3R을 달성할수 있게 됩니다 Repeatable = 반복가능 Reproducible = 재현가능 Reliable = 신뢰가능
  20. 20. 3R을 달성할수 있게 됩니다 Repeatable = 언제든 부수고 재건가능 Reproducible = 어느곳 에서든 생성가능 Reliable = 언제든 같은 결과를 보여줌
  21. 21. DV QA OP 개발 검증 운영 코드 Config 개발자 개인별 서버 & 인프라 검증용 서버 & 인프라 Config Config 국가별 운영 서버 & 인프라
  22. 22. 왜 파이썬으로 만들었나요?
  23. 23. 처음엔 Bash로 짰었습니다…
  24. 24. 수천라인 이상의 Bash 코드 = 가독성이 너무 나쁨 = 디버깅은 기대도 할수 없음 = 복잡한 로직 구현이 어려움 점점 더 유지보수가 어렵더라… 아…
  25. 25. 결국 Bash를 버리고 Python으로 재개발
  26. 26. Python으로 바꿨더니 이런 장점이! = 제대로 된 프로그래밍 언어의 모든 장점 = AWS 클라우드와 최고의 궁합 = 저사양 1CPU, 512RAM에도 운영가능 = 강력한 문자열 처리 = 쉬운 모듈화 = 보장된 안정성과 많은 자료 ㅋㅋㅋ
  27. 27. 어떻게 만들었나요?
  28. 28. 인프라를 Template로 찍어낼 수 있게 한다. 완전히 띄우거나 일부만 띄울 수 있게 한다. 완전히 부수거나 일부만 부술 수 있게 한다. 띄운 인프라는 지속적으로 업데이트 한다.
  29. 29. Provisioner (Johanna) 서버 & 인프라 On Cloud 설정 Template
  30. 30. 서버 & 인프라 On AWS 설정 Template Provisioner (Johanna) Subprocess
  31. 31. Provisioner (Johanna) Template VPC Subnet IGW NAT GW Network Template Internet gateway VPC NAT gateway
  32. 32. Provisioner (Johanna) Template EC2 RDS S3 Lambda EC2 Template RDS Template S3 Template Lambda Template
  33. 33. Provisioner (Johanna) 설정 Template
  34. 34. Provisioner (Johanna) 설정B Template 설정A
  35. 35. 어떤 성과가 있었나요?
  36. 36. 경제적인 비용으로 인프라를 운용한다. 고객에게 커스텀 해주고 돈을 번다. 좋은 Provisioning 교본이 된다.
  37. 37. 앞으로 개선해야 할 것은?
  38. 38. 문서화가 제대로 안되어 있다. 일부분은 더 자동화가 필요하다. 추상화가 덜되어 있다. 서비스 화가 덜되어 있다.
  39. 39. 도와주세요! 이슈, 로드맵 https://github.com/HardBoiledSmith/tiamat 핵심 프로젝트 https://github.com/HardBoiledSmith/johanna Fork & PR 언제든 환영합니다.
  40. 40. 여기계신 분들에게…
  41. 41. HB Smith는 Python을 이용하여 
 API 개발자를 위한 API 테스트/모니터링 서비스를 만들고 있습 니다. 아래 링크로 신청 부탁드려요! 무료계정을 드립니다! http://bit.ly/2w6nNpG OST 운영중입니다. “#스타트업 #파이썬 #서버 #고민나눠요” 에서 만나요! 12일 오후 2시 208A PSF룸 입니다.
  42. 42. 감사합니다!

×