일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 성수
- 코딩
- 책너두
- DesignPattern
- 독서
- 독서일지
- 상속
- 성수직장인
- IntelliJ
- 개발자
- 성수핫플
- 객체지향
- 클린코드
- 책읽기
- 오브젝트
- 헤드퍼스트디자인패턴
- Java
- 헤드퍼스트
- Linux
- JAVA개발자
- 성수맛집
- JavaScript
- docker
- 주니어개발자
- 깨끗한코드
- 직장인
- 성수볼거리
- 직장인점심
- 객체지향프로그래밍
- 디자인패턴
- Today
- Total
닭발개발
[Docker] 1일차. 2-8pg | 시스템과 인프라, 온프레미스와 클라우드 본문
[Docker] 1일차. 2-8pg | 시스템과 인프라, 온프레미스와 클라우드
D269 2023. 7. 5. 17:37
1일차.
제 1부. 도입편
제 1장. 시스템과 인프라 기초 지식
- 시스템 기반 : 애플리케이션을 가동시키기 위해 필요한 하드웨어나 OS/미들웨어 등과 같은 인프라.
- 이 책의 메인 주제 : Docker : 애플리케이션 실행 환경을 작성 및 관리하기 위한 플랫폼
- 제 1장에서는 Docker를 도입하기에 앞서 알아둬야 할 시스템 기반의 개요와 시스템 기반을 다루기 위해 필요한 인프라 기술의 핵심 내용에 대해 설명한다.
1.1. 시스템 기반의 기초 지식
- 폭포형 모델을 사용한 시스템 개발에서는 애플리케이션 엔지니어와 인프라 엔지니어의 역할이 나눠져 있었다.
- 하지만 클라우드의 등장으로 시스템 개발의 흐름이 크게 바뀌었다. 온프레미스 환경 -> 클라우드 상의 가상 인스턴스
- 클라우드를 구성하는 대부분의 기술은 분산환경에서 가동시킨다.
- 분산환경에서는 인프라 엔지니어가 수동으로 운용(operation) X -> 자동화된 툴로 오케스트레이션(orchestration) 한다.
1.1.1. 시스템 기반의 구성 요소
- 인프라 기술 : 시스템 기반을 다루는 기술
- 시스템에 요구되는 사항 2가지
ㄱ. 기능 요구사항 : 시스템의 기능으로서 요구되는 사항, 시스템이나 소프트웨어에서 무엇을 할 수 있을지
ㄴ. 비기능 요구사항 : 시스템의 성능이나 신뢰성, 확장성, 운용성, 보안 등과 같은 요구사항. 기능 요구사항 이외의 모든 요구사항.
- 시스템 기반의 구성 요소
ㄱ. 하드웨어 : 시스템 기반을 구성하는 물리적인 요소. 서버 장비 전체나 데이터를 저장하기 위한 스토리지, 전원 장치 등이 들어간다.
ㄴ. 네트워크 : 시스템 이용자가 원격지에서 엑세스할 수 있도록 서버들을 연결하기 위한 요구사항. 라우터, 스위치, 방화벽 등과 같은 네트워크 장비나 그것들을 연결하기 위한 케이블 배선도 관리
ㄷ. OS(운영체제) : 하드웨어나 네트워크 장비를 제어하기 위한 기본 소프트웨어. 하드웨어의 리소스나 프로세스를 관리한다.
ㄷ-1. 클라이언트 OS에는 이용자가 사용하기 쉽도록 GUI 기능이나 멀티미디어 기능이 있다.
ㄷ-2. 서버 OS에는 Windows Server, Unix, Linux 등이 있다. 서버 OS는 시스템을 고속 및 안정적으로 가동시키기 위해 필요한 기능으로 특화되어 있다.
ㄹ. 미들웨어 : 서버 OS 상에서 서버가 특정 역할을 다하기 위한 기능을 갖고 있는 소프트웨어를 말한다. 오픈소스 미들웨어는 누구든지 개발에 참가할 수 있다. 시스템 기반을 설계할 때는 어떤 미들웨어를 어떻게 사용할지를 선택하는 것이 중요하다.
1.1.2. 클라우드와 온프레미스
- 온프레미스(on-premises) : 자사에서 데이터센터를 보유하고 시스템 구축부터 운용까지 모두 수행하는 형태
- 퍼블릭 클라우드(public cloud) : 인터넷을 경유하여 불특정 다수에게 제공되는 클라우드 서비스.
- 퍼블릭 클라우드는 자사에서 데이터센터를 보유하지 않으므로 서버나 네트워크 등 인프라와 관련된 초기 투자가 필요 없다.
- 퍼블릭 클라우드의 종류
ㄱ. Iaas : 시스템 기반 부분을 이용하는 서비스. 이용한 시간이나 데이터 양에 따라 요금을 지불하는 형태
- 프라이빗 클라우드(private cloud) : 특정 기업 그룹에게만 제공되는 클라우드 서비스
- 퍼블릭 클라우드는 불특정 다수에 대해 제공, 프라이빗 클라우드는 이용자를 한정
1.1.3. 클라우드가 적합한 케이스
ㄱ. 트래픽의 변동이 많은 시스템
트래픽 양에 따라 시스템 기반의 서버 사양이나 네트워크 대역을 가늠하는 설계를 사이징(sizing)이라고 한다.
사이징이 어려운 시스템은 트래픽 양에 따라 시스템을 단기간에 쉽게 증설시킬 수 있는 클라우드 시스템으로 구성하는 것이 좋다.
* 클라우드의 오토스케일 기능 : 시스템 부하에 맞춰 동적으로 서버 사양이나 스토리지 용량을 쉽게 증설시킬 수 있다. 시스템 용량이 적을 때는 사양을 낮춤으로써 쓸데없는 시스템 투자를 줄일 수 있다.
ㄴ. 재해 대책으로 해외에 백업을 구축하고 싶은 시스템
- 재해나 지진 때문에 데이터 센터가 다운되면 안되니까 해외에서 백업시스템을 가동시켜서 업무를 계속시킬 필요가 있는 시스템을 구축할 때는 온프레미스 환경보다 클라우드가 적합하다.
* 업무 연속성 계획(BCP) : 리스크가 발생했을 때 업무를 중단하지 않거나 업무가 중단된 경우라도 목표로 하는 복구 기간 안에 중요한 기능을 재개시켜서 사업 중다닝 야기하는 리스크를 최소한으로 하기 위해 미리 준비해두는 계획
ㄷ. 서비스를 빨리 제공하고 싶은 시스템
- 신규 서비스를 보다 빨리 제공하고 싶다. 릴리즈까지의 시간을 단축시키고 싶을 때.
- 첨단 기술을 사용한 시스템이나 PoC(개념증명)도 클라우드가 자금 조달면에서 적절하다.
'책책책 책을 읽읍시다‼ ver.개발 > [ 완벽한 IT 인프라 구축을 위한 Docker ]' 카테고리의 다른 글
[Docker] 4일차. 35~48pg | 지속적 인티그레이션, 단위테스트, 컨테이너의 역사, Docker (0) | 2023.07.12 |
---|---|
[Docker] 3일차. 19-34pg | Linux 커널, 미들웨어, 인프라 (0) | 2023.07.07 |
[Docker] 2일차. 9-18pg | 하드웨어, 네트워크, OSI 참조모델, Linux (0) | 2023.07.07 |