용어 정리
다른 도메인을 접할 때 가장 어려움이 큰 부분은 용어에 대한 지식이다. 용어를 알기 전에는 단어 하나하나가 이해되지 않으므로 기술문서를 참고하기 힘들다. 하지만 용어를 알게 되면 이해가 쉬워진다.
- On-Premises
- You Manage
- Networking / Storage / Servers / Virtualization
- O/S / Middleware / Runtime / Data / Applications
- Infrastructure as a Service
- You Manage: O/S / Middleware / Runtime / Data / Applications
- Other Manage: Networking / Storage / Servers / Virtualization
- Platform as a Service
- You Manage: Data / Applications
- Other Manage
- Networking / Storage / Servers / Virtualization
- O/S / Middleware / Runtime
- Software as a Service
- Other Manage
- Networking / Storage / Servers / Virtualization
- O/S / Middleware / Runtime / Data / Applications
- 소프트웨어 솔루션을 원격환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치 및 운영하는 방식
- 클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었기 때문에 이전 또는 전통적인 이라는 단어와 함께 사용됨
- 온프레미스를 구축하는데 시간이 수개월 이상 걸렸고 비용 또한 많이 들어, 퍼블릭 클라우드가 나올 당시에 온프레미스가 모두 사라질 것으로 예상했다.
- 보안적인 이유로 하이브리드 IT 인프라를 구축한다. 비즈니스에 중요하고 보안이 필요한 서비스와 데이터는 온프레미스 환경으로 구축한다. 그리고 덜 중요한 것은 퍼블릭 클라우드 환경을 사용한다.
하나의 큰 어플리케이션을 여러 개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처를 말한다. 애플리케이션을 특화된 기능별로 나누게 되면 자연스럽게 애플리케이션의 추상화가 가능해진다.
장점
- 배포 시간 감소
- QA 범위 최소화
- 변경에 따른 사이드 이펙트 최소화
마이크로서비스 아키텍처와 반대되는 개념이다. 모놀리틱 아키텍처는 한 서비스에 DB, Mail Service, REST API, Web UI가 단일 패키지로 배포하는 것이다. 서비스 복잡도가 증가하면서 모놀리틱 아 키텍처가 가지는 문제점들은 배포 시간의 증가, 부분적 스케일 아웃의 어려움, 안정성의 감소등이 있다.
그리고 어플리케이션을 구헝하는 프로그래밍 언어 또는 프레임워크의 변경이 거의 불가능에 가까운 정도로 어렵다. 그 동안 개발된 방대한 양의 코드를 새로운 언어, 또는 프레임워크로 전환해야 하기 때문에 대부분 시도조차 할 수 없을 것이다.
- IaaS 형태의 클라우드 컴퓨팅 오픈소스 프로젝트
- 아파치 라이센스
- 리눅스 기반의 운용과 개발
- 프로세싱, 저장공간, 네트워킹의 가용자원을 제어하는 목적의 여러 개의 하위 프로젝트로 이뤄짐
- 컴퓨트(Nova)
- IaaS 시스템의 주가 되는 부분인 클라우드 컴퓨팅 패브릭 컨트롤러이다.
- 하이퍼바이저 기술로 KVM, VM웨어, 젠 중 하나를 선택할 수 있다.
- 네트워킹(Neutron)
- 네트워크와 IP 주소들을 관리하기 위한 시스템
- 네트워크가 병목현상에 처하지 않도록 보증
- 네트워크 구성을 통해서 사용자에게 자체 서비스 기능을 제공
- 서버와 트래픽을 분리시키는 VLAN이나 플랫 네트워크를 제공
- 블록 스토리지(Cinder)
- 컴퓨트 인스턴스에 사용할 지속적인 블록 레벨 스토리지 장치들을 제공
- 블록 스토리지 시스템은 블록 장치들을 서버에 작성 / 부탁 / 제거하는 일을 관리한다.
- 다양한 스토리지 플랫폼을 사용한다.
- 아이덴티티(Keystone)
- 사용자들이 접근할 수 있는 오픈스택 서비스들에 매핑되는 사용자들의 중앙 디렉터리를 제공한다.
- 여러 형태의 인증을 지원한다.
- 이미지(Glance)
- 디스크 및 서버 이미지를 위한 검색 / 등록 / 배급 서비스를 제공한다.
- 오브젝트 스토리지(Swift)
- 확장 가능한 여분의 스토리지 시스템이다.
- 오브젝트와 파일들은 데이터 센터 내 서버를 통해 퍼져있는 여러 개의 디스크 드라이브에 기록되며, 데이터 복체 및 무결성을 보장하는 일을 담당한다.
- 서버나 하드 드라이브가 고장나면 오픈스택은 활성화된 다른 노드의 내용물을 클러스터 내의 새로운 위치들로 복제한다.
- 대시보드(Horizon)
- 관리자와 사용자들에게 클라우드 기반 자원 배치의 접근, 제공, 자동화를 위한 GUI를 제공한다.
- 오케스트레이션(Heat)
- 오픈스택 네이티브 REST API와 클라우드포메이션 호환 쿼리 API를 통해 여러 개의 복합 클라우드 애플리케이션들을 조직하기 위한 서비스
- 워크플로(Mistral)
- 사용자는 YAML 기반 워크플로 언어를 이용하여 워크플로를 작성한 다음 REST API를 통해 Mistral에 워크플로 정의를 업로드한다.
- 텔레메트리(Ceilometer)
- 데이터베이스(Trove)
- 일래스틱 맵 리듀스(Sahara)
- 하둡 클러스터를 쉽고 빠르게 제공하기 위한 구성 요소
- 하둡 클러스터를 확장하는 수단을 제공한다.
- 베어 메탈(Ironic)
- 메시징(Zaqar)
- 공유 파일 시스템(Manila)
- DNS(Designate)
- 검색(Searchlight)
- 키 매니저(Barbican)
- 기밀 정보의 스토리지에 보한을 제공 / 준비 / 관리하는 REST API이다.
- 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합
- 클러스터의 구성 요소들은 일반적으로 고속의 근거리 통신망으로 연결된다.
- 서버로 사용되는 노드에는 각각의 운영체제가 실행된다.
- 단일 컴퓨터보다 더 뛰어난 성능과 안정성을 제공
- 클러스터 노드: 프로세싱 자원을 제공하는 시스템
- 클러스터 관리자: 노드를 서로 연결하여 단일 시스템처럼 보이게 만드는 로직을 제공
- 작업 부하 분산(Load-Balancing): 계산 부하 분산
- 높은 가용성(High-Availability, HA): 하나의 노드 장애 시 다 른 노드가 서비스를 이어받음
- 여러 컨테이너의 배포 프로세스를 최적화
- 컨테이너 자동 배치 및 복제
- 컨테이너 그룹에 대한 로드 벨런싱
- 컨테이너 장애 복구
- 클러스터 외부에 서비스 노출
- 컨테이너 추가 또는 제거로 확장 및 축소
- 컨테이너 서비스간의 인터페이스를 통한 연결 및 네트워크 포트 노출 제어
도구들
- Kubernetes(K8s)
- 구글에서 개발하였고, 가장 기능이 풍부함
- 베어 메달, VM환경, 퍼블릿 클라우드 등의 다양한 환경에서 작동
- 컨테이너의 롤링 업그레이드 지원
- Docker SWARM
- 여러 개의 Docker 호스트를 함께 클러스터링하여 단일 가장 Docker 호스트를 생성
- 호스트 OS에 Agent만 설치하면 간단하게 작동하고 설정이 쉬움
- Docker 명령어와 Compose를 그대로 사용가능
- Apache MESSO
- 수만 대의 물리적 시스템으로 확장 할 수 있도록 설계
- Hadoop, MPI, Hypertable, Spark같은 응용프로그램을 동적클러스터 환경에서 리소스 공유와 분리를 통해 자원 최적화가 가능
- Docker 컨테이너를 적극적으로 지원함
- 패브릭 컨트롤러
- 배치, 업그레이드, 환경설정 변경 등의 서비스들을 관리한다.
- 하이퍼바이저
- 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼
- 가상화 머신 모니터 또는 가상화 머신 매니저라고 부른다.
- KVM(Kernel-Based Virtual Machine)
- 리눅스 커널을 하이퍼바이저로 변환하기 위한 가상화 인프라스트럭쳐
- VM웨어
- x86 호환 컴퓨터를 위한 가상화 소프트웨어 공급
- Window OS, Linux, OS X를 지원한다.
- 젠
- IA-32, x86-64, 아이테니엄, PowerPC 970 등의 아키텍처를 지원하는 하이퍼바이저이다.
- LDAP(Lightweight Directory Access Protocol)
- TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜이다.
Last modified 2yr ago