본문 바로가기
💻 개발/인프라

모던 서버 기술 관련 배경 지식 이해

by 컴쏘 2023. 6. 1.

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