본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

2017년 최고의 오픈소스 소프트웨어 : 클라우드 컴퓨팅 소프트웨어

OSS 게시글 작성 시각 2017-10-12 07:23:29 게시글 조회수 5181

2017년 10월 11일 (수)

ⓒ ITWorld
Jonathan Freeman, Martin Heller, Andrew C. Oliver,Serdar Yegulalp | Australian Reseller News


컨테이너, 마이크로서비스, 서비스로서의 기능(Function as a Service) 등은 분산 시스템, 서비스 메시, “코드로서의 인프라(Infrastructure as a Code)”로 이루어진 가볍고 빠른 데브옵스의 신세계이지만 복잡하다는 인상을 팍팍 풍긴다. 다행스러운 것은 구글, 리프트(Lyft), 우버 등의 똑똑한 엔지니어들이 까다로운 문제를 해결하고 코드를 공유하고 있다는 점이다.



도커
도커(Docker)는 리눅스에 손쉬운 OS급 가상화를 가져왔고 패키징을 비롯한 훌륭한 기법을 추가했다. 도커가 차기 가상화 물결의 지배자로 떠오르는 듯 했던 상황은 바뀌었다. 쿠버네티스(Kubernetes)가 대형 클라우드 구축에 널리 채택되고는 있지만 그 외의 목적에는 여전히 도커가 기본이다. 가장 손쉬운 방식이기도 하다. 노트북에 컨테이너를 몇 개 생성해서 다른 사람들과 공유하고자 한다면 특히 그렇다. 어떤 것을 선택해야 할지 확실하지 않고 어느 쪽이든 사용 경험이 많지 않다면 도커를 선택하는 것이 좋다.


쿠버네티스
쿠버네티스는 여러 컨테이너를 그룹으로 만들어 애플리케이션을 구성하는 컨테이너 클러스터를 실행하는 방안을 제공한다. 배치, 업데이트, 롤백을 간소화하고 고가용성일 뿐만 아니라 퍼블릭 클라우드와 프라이빗 클라우드 사이에 멀티 컨테이너 애플리케이션을 이전할 수 있게 해 준다. 쿠버네티스가 실행되는 곳이라면 어디에서든지 동일한 컨테이너 패턴을 재배치할 수 있기 때문이다. 불과 3년만에 쿠버네티스는 새로운 애플리케이션 스택의 핵심 요소로 자리 잡았으며 기세가 누그러질 조짐이 전혀 없다.


콥스
콥스(Kops, Kubernetes Operations)는 클라우드 인프라 상에 프로덕션 쿠버네티스 클러스터를 프로비저닝 하기 위한 명령줄 도구이다. 불과 몇 개의 명령으로 쿠버네티스 클러스터를 비교적 수월하게 프로비저닝 및 유지 관리할 수 있다. 현재, 유일하게 지원되는 클라우드 서비스 업체는 AWS이지만 구글 클라우드 엔진(Google Compute Engine)과 VM웨어(VMware) v스피어(vSphere)는 알파 단계이며 다른 플랫폼은 준비 중이다.


모비와 리눅스킷
모비(Moby)와 리눅스킷(LinuxKit) 프로젝트는 개발자들에게 자신만의 컨테이너 시스템을 구축할 수 있는 구성요소로 이루어진 일종의 “레고 세트”를 제공한다. 모비는 컨테이너 런타임, 편성 툴킷, 기타 코어 시스템 구성요소를 제공하며 모두 OCI 호환 컨테이너로 제공된다. 리눅스킷은 최소한의 비상태(stateless) 리눅스 배포판을 구축하기 위한 것이다. 단, 지속형 스토리지는 연결할 수 있다. 결과적으로 얻어지는 이미지는 하이퍼바이저를 통해 모든 주요 OS에서 부팅 및 테스트 가능하며 주요 클라우드 환경 어디에서나 실행할 수 있다.


해시코프 테라폼
해시코프(HashiCorp)는 개발자의 골칫거리를 해결해 주는 고급 소프트웨어를 늘 생산해 왔다. 테라폼(Terraform)은 인프라 배치를 자동화한다. 따라서 데이터센터 또는 클라우드에서 서버 클러스터와 다계층 애플리케이션의 설정과 구성을 위한 스크립트를 작성할 수 있다. 유닉스) 셸 스크립트가 단일 시스템에서 디바이스, 사용자, 서비스를 생성할 수 있는 것과 비슷하다. 컴퓨트, 스토리지, 네트워크, DNS와 같은 지원 서비스 일체를 반복 가능하고 일관성 있는 방식으로 프로비저닝 및 결합할 수 있다.


오픈FaaS
서버리스 컴퓨팅과 FaaS(Funtion as s Service)에 뛰어든다면, 특정 클라우드 서비스 업체에 록인되기 쉽다. 아마존이나 구글, 마이크로소프트 애저는 모두 경쟁적으로 서버리스 컴퓨팅 서비스를 제공한다. 그러나 이들은 모두 자체 기준에 맞게 작성할 것을 요구한다. 유연성이 희생된다는 의미이다. 오픈FaaS(OpenFaaS)는 쿠버네티스 및 도커 스웜(Docker Swarm)을 위한 서버리스 프레임워크이다. 클라우드 서비스 업체 선택의 유연성을 유지하는 동시에 모든 프로그래밍 언어와 리눅스 또는 윈도우 컨테이너를 활용해 서버리스 기능을 생성한다.


엔보이
엔보이(Envoy)는 에지 및 서비스 프록시로, 플러그 가능한 필터 체인 모델을 갖추고 HTTP 7계층 필터링을 지원한다. 다양한 시나리오, 즉, HTTP/2 gRPC 프록싱 및 몽고DB(MongoDB) 필터링, 속도 제한 등에 사용될 수 있다. 엔보이의 로드 밸런싱 지원 기능에는 일관적인 서비스 탐색, 차단(circuit breaker), 재시도, 구역 인식 로드 밸런싱 등이 포함된다. 엔보이는 현재 C++ 11에서 별도 프로세스(OOP: out-of-process)를 실행하는 서비스 메시로 구현된다.


예거
예거(Jaeger)는 마이크로서비스 기반 아키텍처를 모니터링하기 위한 오픈트레이싱(OpenTracing) 호환 분산 추적 시스템이다. 고(Go), 자바, 파이썬, Node.js 클라이언트, 쿠버네티스 및 오픈시프트(OpenShift)용 템플릿을 갖추고 있다. 예거는 서비스/엔드포인트 개별 확률로 일관적인 업프론트 샘플링을 사용한다. 예거의 백엔드 구성요소는 고(Go)와 그 UI에서 구현되며, 카산드라(Cassandra) 또는 일래스틱서치(Elasticsearch)를 백엔드 스토리지 플러그인으로 사용할 수 있다.


링커드
링커드(Linkerd)는 투명한 서비스 메시이다. 서비스 탐색, 로드 밸런싱, 오류 처리, 기기화를 투명하게 추가하고 전 서비스간 통신으로 라우팅함으로써 최신 애플리케이션을 안전하고 온전하게 만드는 것이 목적이다. 링커드는 투명한 HTTP/gRPC/쓰리프트(Thrift)/Etc 프록시 역할을 하며, 대개 작성 언어와는 관계 없이 최소한의 구성으로 기존 애플리케이션 안에 적용할 수 있다. 메소스(Mesos), 쿠버네티스와 같은 지정 환경을 포함한 여러 가지 서비스 탐색 백엔드 및 일반 프로토콜과 사용할 수 있다.


집킨
집킨(Zipkin)은 분산 추적 시스템으로, 마이크로서비스 아키텍처에서 지연 문제를 해결하기 위해 필요한 타이밍 데이터 수집에 도움을 준다. 애플리케이션들은 집킨에 타이밍 데이터를 보고하도록 구성된다. 집킨 UI는 각 애플리케이션을 거쳐 간 추적 요청의 개수를 보여 주는 종속성 다이어그램을 제공한다. 지연 문제 또는 오류를 해결하는 중이라면, 애플리케이션, 추적 길이, 주석 또는 타임스탬프를 기준으로 모든 추적을 거르거나 분류할 수 있다.


올리스
올리스(Awless)는 AWS CLI의 대안으로, 보다 단순한 문법과 강력한 기능 향상을 제공한다. 명령어를 함께 연결하는 템플릿 파일이나 간단한 스크립트를 통해 리소스를 쉽게 생성, 업데이트 또는 삭제할 수 있다. 가명(Alias)를 지원하며, 자동 완성 기능을 제공해 지능적인 기본값을 입력하고 리소스 생성 도중에 누락된 변수가 있으면 알려준다. 심지어는 오프라인에서 질의 가능한 AWS 리소스의 로컬 RDF 그래프와 이전 상태로 돌아가는 데 사용할 수 있는 운영 로컬 로그를 유지한다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지



[원문출처 : http://www.itworld.co.kr/slideshow/106658]

맨 위로
맨 위로