[Docker] 시스템 기초 지식
본격적으로 도커를 학습하기 전 필요한 지식들을 정리하자.
도커는 리눅스의 기능을 사용한 기술이기에 리눅스 기초 지식도 따로 공부해야 한다.
하드웨어
물리적인 요소로 서버 장비 본체나 데이터센터의 설비를 의미한다. (컴퓨터 본체, 데이터센터 등)
네트워크
시스템의 사용자가 원격으로 액세스 할 수 있도록 서버들을 연결하기 위한 요구사항이다.
운영체제
하드웨어나 네트워크 장비를 제어하기 위한 기본 소프트웨어로 리소르와 프로세스를 관리한다. (윈도우, Unix 등)
미들웨어
운영체제와 업무 처리를 수행하는 애플리케이션 사이에 들어가는 소프트웨어이다. (데이터베이스 서버, 웹 서버 등)
MAC 주소
48비트의 주소로 앞 24비트는 네트워크 부품의 제조업체를 식별하는 번호이고, 뒤의 24비트는 제조업체마다 중복되지 않도록 할당한다. (OSI 2계층에서 사용된다)
IP 주소
네트워크에 연결된 장비에 할당되는 식별 번호로, IPv4가 보급돼있다. (193.122.13)
사내 네트워크에서는 프라이빗 주소를 사용하고 인터넷과의 경계에 글로벌 주소와 프라이빗 주소를 변환하는 장비를 설치해서 운용한다. (IPv4의 고갈을 피하기 위해서이다)
Linux 커널
운영체제의 코어가 되는 부분으로, 메모리 및 프로세스 관리 등 애플리케이션을 제어하기 위한 기본적인 기능을 가진 소프트웨어이다.
NAT
프라이빗 IP 주소가 할당된 클라이언트가 인터넷상에 있는 서버에 액세스 시 NAT라우터는 클라이언트의 프라이빗 IP 주소를 NAT가 가진 글로벌 IP 주소로 변환해서 요청을 송신한다. (1 : 1)
NAPT
프라이빗 IP 주소와 포트 번호도 함께 변환한다. (1 : N)
IP 마스커레이드라고 부르기도 한다.
이전까지는 자사에서 데이터센터를 보유해 시스템 구축부터 운용까지 모두 수행하는 온프레미스 형태로 시스템을 이용하는 경우가 많았지만, 클라우드의 등장으로 인터넷을 경유해 다른 회사의 데이터센터를 빌려서 사용하는 퍼블릭 클라우드 형태와 프라이빗 클라우드 형태로 시스템을 이용하는 경우가 증가하고 있다.
트래픽을 예상하기 힘든 경우 시스템을 단기간에 쉽게 증설시킬 수 있는 클라우드 형태로 시스템을 이용하는 편이 합리적이고, 특수한 요구사항이 있거나 보안에 민감한 데이터를 다루는 경우 온프레미스 형태로 시스템을 이용하는 편이 합리적이다.
주어진 상황에 알맞는 형태를 사용하자.
클라우드 형태로 시스템을 사용하는 경우에도 인스턴스의 셋업 공정은 필요하다.
이 때 코드를 사용해서 인프라를 구축을 자동화하면 작업 실수를 줄일 수 있어 편리하다.
애플리케이션의 코드를 수정할 때 마다 테스트를 실행해 확실하게 작동되는 코드를 유지하는 방법을 Continuous Integration이라고 부른다.
CI의 목적은 애플리케이션의 품질 향상이고, 수행되는 테스트를 자동화하는 도구로 Jenkins, Gitlab 등 여러 가지가 있으니.. 적절하게 사용하도록 하자.
CI를 사용하면 여러 명의 개발자가 애플리케이션을 개발할 때 서로 작성한 내용을 main에 merge시 충돌을 줄일 수 있고, 테스트를 통해 제대로 merge됐는지 확인할 수 있어 좀 더 안정된 코드를 작성할 수 있게 된다. (코드 통합)
애플리케이션을 모두 제작하고 배포했는데 사용자들이 원하는 기능을 추가하지 못한 경우를 생각해보자.
이미 배포했는데.. 다시 애플리케이션을 수정해서 또 배포해야 되는 상황이 발생한다.
이를 회피하기 위해 모든 기능을 한 번에 만드는 대신, 기능을 추가할 때 마다 제품 환경에 배포하고 사용자들의 피드백에 기초해 다음에 개발할 기능을 결정하는 방식인 Continuous Delivery가 도입됐다.
'DevOps > Docker && Kubernetes' 카테고리의 다른 글
[Docker] Dockerfile 프로젝트 배포하기 (2) | 2023.12.06 |
---|---|
[Docker] Docker Compose (0) | 2023.03.24 |
[Docker] 도커 파일 시스템과 볼륨 (0) | 2023.03.09 |
[Docker] 도커 활용하기 (0) | 2023.03.08 |
[Docker] 도커와 컨테이너 기술 (0) | 2023.03.07 |
댓글
이 글 공유하기
다른 글
-
[Docker] Docker Compose
[Docker] Docker Compose
2023.03.24 -
[Docker] 도커 파일 시스템과 볼륨
[Docker] 도커 파일 시스템과 볼륨
2023.03.09 -
[Docker] 도커 활용하기
[Docker] 도커 활용하기
2023.03.08 -
[Docker] 도커와 컨테이너 기술
[Docker] 도커와 컨테이너 기술
2023.03.07