프로그래머스 데브코스 웹 풀사이클 17주차 - 3

geun·2024년 3월 6일
0

데브코스

목록 보기
62/79
post-thumbnail

웹 개발 파이프라인

파이프라인 자동화 도구들

  • 컨테이너 가상화 및 클러스터 운용
    Docker + Kubernetes
  • 소프트웨어 개발 파이프라인 자동화 서버
    Jenkins
  • 구성 관리 자동화
    Ansible
  • 소프트웨어 버전 관리
    GitHub
  • 그 외
    빌드 도구, 단위 테스트 프레임워크, 정적 코드 분석기, 인수 테스트 프레임워크 등

컨테이너화

응용 프로그램, 설정 파일, 라이브러리, 그리고 이들 사이의 의존성 관계를 한 군데 묶어 관리

  • 소프트웨어 개발 및 배포의 효율과 안정성을 향상시킴
  • 하이퍼바이저에 의한 가상 기계의 대체 및 보완 방식으로 각광받고 있음
  • 시스템 의존성이 최소화되어 소프트웨어 시스템의 이식이 용이해짐
  • 예측 가능하고 유연한 소프트웨어 실행 환경을 제공하여 클라우드 컴퓨팅 인프라에서 활용도가 높음

지속적 통합 파이프라인 (CI Pipleine)

  • 리포지토리에 코드 커밋이 발생할 때마다, 빌드, 단위 테스트, 정적 분석등을 행함

자동 인수 테스트

  • Docker와 Jenkins을 결합하여 인수 테스트 환경을 만들고 테스트 수행

가상화

  • 컴퓨팅 자원의 추상화를 일컫는 광범위한 용어
  • 물리적인 컴퓨팅 자원의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 자원과 상호 작용하는 방식으로부터 감추는 기술
  • 컴퓨터 안에 또 다른, 가상의 컴퓨터가 존재하도록 하는 기능

가상화의 이점

시스템 측면

  • 시스템 이용률 향상
  • 설정의 구성과 복원이 용이

비즈니스 측면

  • 자본 및 운영 비용 절감
  • 다운 타임 최소화(또는 제거)
  • 비즈니스 연속성 및 재해 복구 향상
  • 데이터 센터 관리 간소화

우리의 관심

  • 개발한 소프트웨어의 배포, 테스트, 구성 관리등에 통일된 환경 제공
  • 소프트웨어 통합/인도 프로레스의 자동화에 용이

서버 가상화 기술의 진화

가상 기계 기반

  • 하이퍼바이저 이용
  • Type1 : 네이티브 또는 베어메탈형 : 전가상화, 반가상화
  • Type2 : 호스트형

컨테이너 기반

  • 호스트 OS의 컨테이너 기술 이용

컨테이너 사용의 이점

  • 가상 기계 기반의 대체 또는 보완 방식으로 각광받음
  • 소프트웨어 개발 및 배포의 효율, 안정성 향상

Docker

  • 이미지 : 실행 가능한 컨테이너를 만들기 위한 거푸집
  • 컨테이너 : 도커가 실행하는 격리된 환경과 그 내부

도커 이미지

  • 응용을 실행하는 데 필요한 모든 파일들과 그것을 실행하는 방법을 한데 묶어놓은 것
  • 상태를 저장하지 않는 방식(stateless) 네트워크로 전송, 레지스트리에 저장, 이름 및 버전 저장 가능
  • 계층화되어 있다는 특징을 갖고 있으며, 어떤 이미지로부터 다른 이미지를 만드는 것이 가능

도커 컨테이너

  • 이미지의 실행 인스턴스
  • 하나의 이미지로부터 여러개의 컨테이너(인스턴스)를 만들어 동일한 응용을 여러 개 실행할 수 있음(각각은 독립되어 있음)
  • 상태를 저장하는 방식(stateful) 컨테이너를 사용하면서 상태를 변경할 수 없음,
  • 컨테이너가 소멸하면 상태 또한 소멸함

도커 명령어

  • docker run <이미지 이름> : 이름이 주어진 이미지를 로컬 또는 레지스트리에서 가져다가 컨테이서 생성 후 실행
  • docker ps, docker ps -a : 현재 실행 중인(-a : 중단된 것도 포함하여) 컨테이너들의 정보 조회
  • docker images : 로컬 컴퓨터에 가지고 있는 이미지들의 정보를 조회
  • docker stop <컨테이너 이름/ID> : 실행중인 컨테이너의 실행 중단(컨테이너가 사리지진 않음)
  • docker rm<컨테이너 이름/ID> : 컨테이너 삭제
  • docker rmi <이미지 이름/ID> : 이미지 삭제

이미지 생성 자동화

Dockerfile

  • 계층 구조를 이용하여 도커 이미지를 만드는 절차를 기술하는 파일(text)
  • FROM [--platform=<platform><image>[AS<name>]
  • RUN<command>
  • ENRTYPOINT["executable","param1,"param2"]

이미지 빌드 명령어

docker build [OPTIONS] PATH | URL | -

바인드 마운트

  • docker run -v<호스트 경로>:<컨테이너 경로> <이미지>

도커 볼륨 이용

  • 볼륨 생성 명령어
  • docker volume create <볼륨의 이름>

0개의 댓글