도커 정의
- 도커는 서버환경을 감싸서 도커 레벨로 서버를 다룰 수 있도록 한 것
- 서버 이전, 패키지 버전 등 일일이 서버 설정이 불필요
- 단순히 도커를 만들어서, 서버에서 실행하면 된다.
- 이사갈 때 짐 하나하나 옮기는 거 귀찮지 않은가.
이때 내 집을 통째로 뜯어서 옮길 수 있다면? 편하지 않을까. 이런 느낌.
마이크로 서비스
- 서비스가 방대해지면서 하나의 서버에 모아놓으면 특정 기능의 문제로 전체 시스템 장애로 발생
- 서버를 여러 곳으로 분산해놓고, 각각의 기능도 분산해 놓은 후 Rest API 등으로 통신을 해서 전체 서비스 운영
DevOps(개발 50 : 운영 50)
- 운영팀이랑 개발팀이랑 상호 소통이 안돼서 문제 발생
- 그래서 운영팀과 개발이 섞인 DevOps를 만듬
- 운영 + 운영 시스템 효율화/자동화를 프로젝트 목표로 부여
- 개발도 할 수 있고, micro features에 대해서도 빠르게 이해할 수 있음.
자동배포(Dev Ops 하는 일)
- Release System 자동화
- 코드 리뷰, 테스트 자동화
- 서비스 모니터링 시스템
- 이슈 발생 시 자동으로 알람 가게 설정
- 위와같은 자동배포를 하기 위해 도커를 사용
> 각 마이크로 서비스를 도커로 개발
- 사용자가 적을 땐 서버를 2대만 켰다가
많을 땐 자동으로 10대가 켜지도록 한다.
- 쿠버네티스
: 여러 서버에 분산된 micro features를 하나의 서버에서 제어하고 운영하게 한다.
: 초대용량 서비스 유지 보수를 위한 서버 핸들링
- 무중단 배포
- 서버가 24시간 가동되도록 하는 것
- 릴리즈 시 잠깐 서버 멈춰야 하는데 서버 멈추면 사용자가 불편하니까
아예 서버 큰 거 2개 만들고 하나의 서버 멈춰놓고 릴리즈하고, 그 다음에 나머지 릴리즈 하는 것?