도커/쿠버네티스
왜 DevOps를 해야하는가
- 소프트웨어의 개발과 운영의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화
- 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다
if)개발자가 한명이라면?

if)개발자가 두명이라면?

if)v3

if)v4

if)v5

개발과 배포는 생각보다 복잡하다

개발자가 100명이라면?

서비스 자체가 복잡해진다면?

그런데 ..



- 우리팀이 느끼는 문제나 문화에 대응하는 것이지 그냥 좋은거래서 쓰고 이러면 안된다.

DevOps엔 어떤 방법이 있나요?


git

- 자동화 = 시간 절약 = 효율 증가
- 측정 = 빠른 분석 = 효율 증가
- 공유 = 팀원 지식 습득 = 효율 증가
- 축적 = 패시브 스킬 = 효율 증가

서버를 관리한다는 것?
서버를 관리한다는건 서버의 상태를 관리한다는 것

- 20년전쯤엔 자체 서버를 운영
- 이후 설정관리, 가상머신, 클라우드, PaaS, 도커, 쿠버네티스, 서비스 메시 등장

- 한 서버에 여러개 상태를 세팅하기 위한 가상머신
- 근데 서버 이미지 공유나 느리거나 한 문제 등장

- 그래서 등장한게 클라우드
- AWS, Google, Cloud, Azure …
- 하드웨어 파편화 문제 해결
- 상태관리에 대한 새로운 접근
- 그치만 서버 운영의 문제는 여전히 그대로 남아있음


- 코드만 주면 서버 배포까지 알아서 해주는 Platform as a Service
- 일반화된 방법을 제공하므로 원하는 형태의 배포를 하긴 어려움

- PaaS를 잘 사용하다가? 한계에 다다랐을때 Cloud로 변경하는 방식
근데 게임체인저가 등장

기존은?

도커는







- 도커가 좋긴한데.. 컨테이너가 너무 많으면 관리가 힘든데 ..?

도커 배포는 ?



- 버전도 이렇게 하나하나씩 바꿔줘야함
- 롤아웃/롤백에 손이 많이감
- 롤아웃은 새로운 버전을 배포
- 롤백은 다시 이전 버전으로 가는 것
서비스 검색은?

- 이렇게 서비스마다 로드밸런서로 관리를 해줘야 한다.
서비스 노출은?

- 마찬가지로 컨테이너 하나하나 넣다 뺐다 해야됨
그래서 등장한게?


- 서버의 어디에서 더 여유가있는지를 알아서 봐줌

- 만약에 하나의 서비스에 장애가 생기면? 알아서 새로운 서비스 하나를 만들어서 돌려줌

- 배포 관리하는 스케쥴링 서비스
- APP1이 잘 돼서 하나 더 파야되면?




