충남대학교 컴퓨터공학과의 "실전코딩" 강의를 필기한 내용입니다.
이 문서는 보관이 목적이고, 관리되지 않습니다. 따라서 잘못된 정보가 포함되어 있거나 순서가 뒤죽박죽일 수 있습니다.
DevOps
- 개발자는 개발만, 서버관리는 관리자만 이렇게 하는 전통적인 팀 구성이 아닌
- 개발자가 서버관리와 배포까지도 관여하는 그런 구조를 의미한다
Functional Team
- 기획, 개발, 데베, 디자인, 인프라(물리서버) 등등 팀이 명확하게 구분되어 있고 그 팀은 그 팀이 맡은 역할만 하는 구조
장점
- 고용이 쉽다 - 한가지만 잘하는 사람을 뽑아도 되니까 + 개인의 능력을 측정하기도 쉬우니까 인사고과도 쉽다
- 지금 서비스의 유지보수가 아니라 새로운 큰 서비스를 런칭한다는 등의 큰 프로젝트에는 목표가 팀마다 같기 때문에 효율적으로 운용된다 - 큰 프로젝트의 경우 효율적이다
단점
- Silo Effect : 약간 팀 간 서로의 사정을 모르니까 서로간 사이가 안좋아지고 소통이 잘 안될 수가 있다 - 단합이되는게 아니고 서로 이기적 관계가 될 수 있다 - 작은 유지보수의 경우 비효율적이다
Product-based Team(Agile Organization)
- 팀을 기능 위주로 구성하는게 아닌 서비스 위주로 구성하는 것
- Product Owner : 더 나은 서비스가 되기 위해서는 어떤것들이 필요한지 등등의 생각을 하는 사람
- Dev Manager : 스크럼 마스터. 애자일 팀 안에서 애자일 사이클이 잘 돌아갈 수 있도록 관리해주는 역할
- 이런 사람들하고 개발자, 디자이너, DBA, 인프라 전문가 들이 하나의 서비스를 위해 다 같이 모여서 일하는 구조
- 하나의 서비스를 일으키기 위해 다같이 모여서 단합하는 분위기이다
- 물론 개인의 주 업무는 있지만 이것만 하는게 아니고 디자이너가 html도 가능하면 이사람도 같이 돕던가 하는 식으로 다양한 업무를 겸직하게 된다
- 이런 주 업무가 아닌 일을 soft skill라고 하는데 이런 스킬의 역량이 필요하다는 점에서 고용, 능력측정 등이 어려운 면이 있다
- 그리고 다른 서비스 팀과는 여전히 단절되어 silo effect가 아예 없어지지는 않는다
Cloud Computing
- 컴퓨터를 필요한 만큼 쓰고, 사용한 만큼 돈내는 구조
- 여기서 컴퓨터는 물리적 컴퓨터가 아니고 가상의 컴퓨터를 말한다
종류
- Infrastructure - Iaas : 컴퓨터만 띡 주는거 - 환경은 내가 다 설정해야 된다
- 개발환경까지 다 제공해주는거
- SaaS : 완성된 서비스를 하나 제공하는거 - 웹메일같은거
장점
- Agility : 리소스를 세팅하기가 쉽고 안쓰는거 지우기도 편하다?
- Elasticity : 스케일링이 쉽고 빠르다
- Cost : (잘만 사용하면) - 가격을 절감할 수 있다
- Deploy globally : 서비스를 개시하는데 물리적 지역의 제약이 없다 - 미국서버를 열라면 미국에 가야되는데 클라우드를 이용하면 그럴리가 없다