docker : 일종의 서버 환경을 감싸서, docker 레벨로 서버를 다룰 수 있음
- 따라서, 서버 이전, 서버 패키지 버전 변경 등 일일이 서버 설정이 불필요
- 단순히 도커를 만들어서, 서버에서 실행하면 됨
웹서비스 개발과 마이크로 서비스
- 모놀리틱 구조 : 하나의 서버에 모든 기능을 넣음
- 1세대 : USER —— INTERNET —- WEB SERVER (Read static HTML)
- 2세대 : USER —— INTERNET —- WEB SERVER (Create request-based HTML from CGI + DB)
- 3세대 : USER —— INTERNET —- WEB SERVER MVC 패턴 기반 프레임워크 활용
- MVC : Model - View - Control 패턴으로 구조화된 프레임워크를 사용, 빠르게 다양한 기능을 제공 → 이것은 분리를 했다고 해도 코드 레벨에서 분리를 한 것이기 때문에 결과적으로는 한 서버에 있다.
- 마이크로 서비스 : 서비스가 방대해짐에 따라, 하나의 서버에 모아놓으면, 특정 기능의 문제로 전체 시스템에 장애 발생
- 여러 서버에 각 기능을 분산해놓은 후, Rest API 등으로 통신을 통해 전체 서비스를 운영
DevOps
서비스 조직 이름이다.
마이크로 서비스 조직은 각 조직이 각각의 세부 서비스를 담당하고, 수시로 릴리즈
기본 서비스 조직
기간별로 개발을 하고 런칭하고, 런칭하기 전에 운영팀에게 기능 설명 … 이런 방식
- 개발팀
- 운영팀
개발팀과 운영팀의 비효율
- 개발팀과 운영팀원들 모두 ‘고객은 빠른 신규 서비스 제공을 원하는데…’
- 고객의 니즈가 수시로 바뀜 → 빠른 업데이트가 필요
- 본래 새로운 기능을 릴리즈하면, 개발팀이 운영팀에 어떻게 운영할지 알려줘야 함
- micro features 라면 많은 기능을 제대로 알려주기 어렵고
- 운영이 잘 안될 경우, 이 부분은 개발팀 역할이 아니므로 운영팀에 제대로 안 알려주는 경우가 많음
- 수많은 micro features를 운영팀이 제대로 이해하고 대응하지 않으면?
- 서비스 다운 또는 비정상 동작으로 고객 경험 극도로 저하
- 수많은 micro features와 수많은 사용자
- 엄청난 트래픽을 버텨낼 시스템과 운영팀 필요
DevOps
- 운영 + 운영 시스템 효율화/자동화 프로젝트를 목표로 부여!
- 개발자가 목표를 가지고 개발을 할 수 있음
- 개발자는 micro features에 대해서도 빠르게 이해할 수 있음(다양한 기술 습득 가능)
- Release System 자동화
- 코드 리뷰, 테스트 자동화
- 서비스 모니터링 시스템
- 이슈 발생시 커뮤니케이션 시스템
마이크로 서비스와 DevOps, 그리고 도커
- 각 마이크로 서비스를 도커로 개발 → 도커 개발
- 초대용량 서비스 유지 보수를 위한 서버 핸들링 필요 (예 : 네트워크 트래픽에 따른 서버 관리) → 쿠버네티스 개발
- 수시 릴리즈 지원하기 위한 배포 시스템
- 개발자가 git에 신규 코드를 릴리즈 하면,
- Jenkins/Travis CI 등으로 서버 자동 재가동 → 배포 자동화
- 수시 릴리즈시, 서비스는 중단되지 않았으면 좋겠음 → 무중단 배포
쿠버네티스/무중단 배포도 결국 도커가 기본이자 핵심, 따라서 도커 기본기를 탄탄히 갖춘 후, DevOps 전문가를 원하면, 추가로 관련 기술을 익히면 됨
초대용량 서비스가 아니면, 본 강의만으로도 간단히 서버 배포/이전 가능
본 글은 인프런 강의 "풀스택을 위한 도커와 최신 서버 기술"에 대해 공부하여 정리한 글입니다.
[강의 링크] : https://www.inflearn.com/course/%EC%84%9C%EB%B2%84%EA%B8%B0%EC%88%A0-%ED%92%80%EC%8A%A4%ED%83%9D-3/dashboard
'개발 > 인프라' 카테고리의 다른 글
ubuntu EC2에 docker 설치하기 (0) | 2023.06.03 |
---|---|
클라우드 서비스(AWS 서버 구축) (0) | 2023.06.01 |
IT 인프라 (3) (0) | 2023.05.28 |
IT 인프라(2) (0) | 2023.05.27 |
IT 인프라 (1) (0) | 2023.05.27 |