5. DevOps와 Full Cycle Developer
• 내가 만든것을 잘 관리하려면?
1. 회사에서 Ownership을 부여해야 한다.
2. 서비스를 주도적으로 이끌 수 있는 능력이 있어야 한다.
•개발 사이클에 대한 이해
•적절한 도구 선택
•확장성
•생산성
6. DevOps와 Full Cycle Developer
• 개발 사이클
• 반드시 제품 수준이 아니더라도 해보는게 중요함.
• 개발자 + 운영자 + DevOps 지식 필요
• 이전
• 개발 후 QA에 넘긴다.
• QA 후 운영에 넘긴다.
• Full Cycle Developer
• 개발하고 테스트 코드를 작성하면서 운영을 위한 자동화를 고려한다.
Dev OpsDevOps
Full Cycle Developer
7. DevOps와 Full Cycle Developer
• 적절한 도구의 선택
• Scaling through developer tools
• 각 부분의 Specialist 가 확장성과 생산성을 갖춘 도구를 만든다.
9. HBSmith를 소개합니다.
•RPA(Robotic Process Automation) 전문 팀 입니다.
•자동화를 통해서 조직의 생산성을 향상시키고 더 많은 일들을 할 수 있게 돕고 있습니다.
•반복적인 QA를 자동화 봇으로 대체하는 솔루션을 제공 중 입니다.
•조직, 생산성, 자동화, QA에 대해 이야기 나누고 싶으신 분들은 hello@hbsmith.io로
연락 주세요.
10. 평범한 스타트업이 Full Cycle Developer라고?
No Money
No Specialist
Only Generalist
스타트업의 Full Cycle Developer
11. 스타트업의 Full Cycle Developer
모든 팀원이 개발, QA, 운영을 함께 합니다.
우린 스타트업 이니까요.
그래서 개발 사이클을 잘 알고 있습니다.
12. 스타트업의 Full Cycle Developer
처음부터 개발과 운영을 아는 사람만 뽑나요?
아뇨, 그럴 돈이 없습니다.
일반 개발자를 뽑아서 함께 성장 중 입니다.
14. 스타트업의 Full Cycle Developer
• 스타트업의 개발자 A
• 서버 개발자
• Django Girls Daejeon을 만드신 분
• 인프라는 초보
15. 스타트업의 Full Cycle Developer
• 개발자에게 인프라를 가르치는 방법
• AWS로 가르치세요.
• 좋은 Document
• 많은 Reference
• 만들기도 쉽고 삭제 하기도 편해요.
16. 스타트업의 Full Cycle Developer
• AWS 공부 순서 - 1
• 서비스 이해하기
• Web Console에서 클릭, 클릭
• Core
• Managed Service
AWS Elastic Beanstalk Amazon RDSAmazon VPC S3
AWS Lambda Amazon Simple Email
Service (SES)
Amazon CloudWatchAmazon Simple
Notification Service
Amazon Simple Queue
Service
17. 스타트업의 Full Cycle Developer
• AWS 공부 순서 - 2
• 직접 구축해보기
• IaC 권장
• 자연스럽게 document를 읽고 더 고민하게 한다.
• 이 parameter는 왜 있는걸까?
• 이 parameter의 기능은 무엇일까?
• 이 resource와는 어떤 관계가 있는거지?
• 이렇게 바꿔보면 어떻게 될까?
18. 스타트업의 Full Cycle Developer
• 활발한 커뮤니티
• 유즈케이스 등 다양한 정보 공유
• 발표 기회
• 네트워킹
19. 스타트업의 Full Cycle Developer
• 운영 방법
• 정보를 공유한다.
• Log, Metric 등
• 같이 해본다.
• 코드 통합은 어떻게 할지?
• DB가 수정 됐을때 어떻게 Patch 할지?
• 이 부분이 날 번거롭게 하는데 어떻게 자동화 할까?
21. 스타트업의 Full Cycle Developer
• 도구의 선택 - 생산성과 확장성
• 다들 바빠서 도구 만들 시간이 없습니다.
• 그냥 AWS 사용합니다.
• AWS + IaC 로 개발 사이클을 많이 자동화 했습니다.
22. 스타트업의 Full Cycle Developer
• 도구의 선택 - 기록
• Atlassian 사용합니다.
• TiDD(Ticket Driven Development)
• No Ticket, No Commit
• 현재 어떤일 하고있는지
• 어떤 맥락에 의해서 이 작업을 하는지
• Burndown Chart를 통한 sprint 회고
23. 스타트업의 Full Cycle Developer
• 도구의 선택 - 기록
• 기록할 수 있는 모든것을 기록해서 문서로 공유 합니다.
• POC 결과
• 세팅 메뉴얼
• 사내 정보
• 문서만 보고 재현 가능하도록 작성
27. Full Cycle Developer 와 AWS
Server
OS
Middleware
Application
Server
OS
Middleware
Application
Server
OS
Middleware
Application
AWS AWS &
Provisioning
Network Network Network
AWS CLI로 Infra를 생성하고 Python script로
Application 영역까지 Provisioning 한다.
30. Full Cycle Developer 와 AWS
• local 개발환경
AMI
AWS Lambda Amazon Simple Email
Service (SES)
Amazon CloudWatchAmazon Simple
Notification Service
Amazon Simple Queue
Service
AMI AMI
DB Server Web
S3
31. • CI / CD
Full Cycle Developer 와 AWS
AWS LambdaAmazon Simple
Notification Service
AWS CodeBuild
Github
Code Review
Static Analysis
Build
Test
Static Analysis
Build
Test
Deploy
Travis-CI
AWS CodeBuild
32. • Daily CD
• EC2를 매일 한번씩 자동으로 교체 합니다.
Full Cycle Developer 와 AWS
New Elastic BeanstalkEvent AWS CodeBuild
Old AWS Elastic Beanstalk
Amazon Route 53
swap
cname