본문 바로가기
클라우드/클라우드 기초

클라우드에서 배워야할 오픈소스 및 스택에는 무엇이 있을까?

by meow0110 2024. 5. 15.

*해당 포스팅은 취업 준비생 입장에서 직접 모아 정리하여 알아본 자료입니다.

*2025년 기준자료입니다. 기업에서 요구하는 오픈소스 및 스택이 무엇인지를 통해 어떤 업무를 할지, 또 어떠한 기술을 더 익혀야할지 알기 위해 정리한 내용입니다.

*잘못된 내용, 분류가 잘못된 내용에 대해서 알려주시면 감사합니다.

*간혹 오픈소스가 아닌 유료 소스들이 포함되어있을 수 있습니다. 

 

컨테이너

■ Kubernetes : 쿠버네티스는(Kubernetes) 컨테이너 오케스트레이션* 플랫폼으로, 컨테이너화된 애플리케이션을 배포, 확장, 관리하기 위한 오픈 소스 도구입니다. 간단히 말해 컨테이너화된 애플리케이션을 쉽게 배포하고 관리하기 위한 도구이죠. 여기서 컨테이너란 애플리케이션과 그에 필요한 모든 것(코드, 라이브러리, 런타임 등)을 포함하는 패키지입니다. 

■ Docker : 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트 입니다. 도커는 일반적으로 도커 엔진(Docker Engine) 혹은 도커에 관련된 모든 프로젝트를 말합니다.

■ Rancher : 모든 공급자에서 클러스터를 배포하고 실행할 수 있는 Kubernetes 관리 도구입니다.

■ OpenShift : 컨테이너 기반 소프트웨어의 배포 및 관리를 위한 레드헷의 제품이다. 

■ OKD (이전 명칭: OpenShift Origin) : 쿠버네티스를 실행하는 데 필요한 패키지 소프트웨어 구성 요소의 커뮤니티 프로젝트입니다. OKD는 Red Hat OpenShift의 업스트림 프로젝트로, 애플리케이션의 지속적인 개발 및 배포를 위해 최적화되었습니다.

■ CRI-O : Kubernetes 용 Open Container Initiative (OCI) 컨테이너 런타임이다. CRI-O는 오픈 소스 커뮤니티 중심으로한 컨테이너 엔진으로 Kubernetes 에서 주로 사용되었던 Docker 를 대체하는 것에 목적이 있습니다.

■ etcd(엣시) : 분산 시스템을 계속 실행하는 데 필요한 중요한 정보를 보관하고 관리하는 데 사용되는 분산 오픈소스 키-값 저장소입니다.

■ ContainerD : 원래 Docker 엔진을 위한 하위 계층 런타임 관리자로 만들어졌습니다. containerd의 가장 흔한 사용 사례는 Docker 엔진과 OCI runc 실행기 사이의 계층으로 사용되는 경우입니다.

 

 

 

모니터링

■ DATADOG : 애플리케이션, 인프라, 클라우드 환경에 대한 다양한 모니터링 및 보안관리 솔루션 제공

Grafana : 데이터를 시각화 하여 분석 및 모니터링을 용이하게 해주는 오픈소스 분석 플랫폼. 다양한 시스템의 대시보드 템플릿을 받아 쉽게 구축을 할 수 있다.

■ Elastic search : 아파치 Lucene를 바탕으로 개발된 분산 검색엔진. RESTful 웹 인터페이스를 가지고 있음. JSON을 통해 데이터를 주고 받음. 로그 분석, 전체 텍스트 검색, 보안 인텔리전스, 비즈니스 분석 및 운영 인텔리전스 사용 사례에 일반적으로 사용되었습니다.

■ Prometheus : 오픈소스 모니터링 시스템. 개발자는 웹, 서버, DB 등 다양한 시스템의 상태를 쉽게 분석할 수 있고 특정 조건이 발생하면 경고를 보내게 하여 미리 장애를 예방할 수도 있다.

 

 

 

데이터

■ Snowflake : 클라우드 기반의 자체 관리형 데이터 플랫폼으로, 유연한 데이터 저장, 처리 및 분석 솔루션 제공

■ Apache Spark : Apache Spark는 빅 데이터 워크로드에 사용되는 오픈 소스 분산 처리 시스템입니다.

■ Open Telemetry : 원격 분석 데이터를 위한 단일 개방형 표준과 클라우드 기반 애플리케이션에서 데이터가 모니터링되고 분석할 수 있도록 데이터를 수집하고 내보내기 위한 기술을 생성합니다.

■ redis : 데이터베이스,캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 오픈 소스(BSD 라이선스), 인메모리 데이터 구조 저장소 입니다

■ Apache hudi : 증분 데이터 처리를 간소화하는 오픈 소스 데이터 관리 프레임워크입니다. 레코드 수준의 삽입, 업데이트, 업서트, 삭제 작업이 훨씬 세밀하게 처리되므로 오버헤드가 줄어듭니다.

■ PostgreSQL : 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템의 하나이다. BSD 허가권으로 배포되며 오픈소스 개발자 및 관련 회사들이 개발에 참여하고 있다.

■ Apache HBASE : 하둡 플랫폼을 위한 공개 비관계형 분산 데이터베이스이다. 구글의 빅테이블을 본보기로 삼았으며 자바로 쓰여졌다.

■ Apache hadoop : 하나의 성능 좋은 컴퓨터를 이용하여 데이터를 처리하는 대신, 적당한 성능의 범용 컴퓨터 여러 대를 클러스터화하고, 큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것을 목적으로 하는 분산처리를 위한 오픈소스 프레임워크라고 할 수 있습니다.

■ Apache ICEBERG : 대규모 분석 테이블을 위한 오픈 소스 고성능 형식입니다.

 

 

 

Service Mesh 솔루션

■ Istio : Istio는 Google, IBM, Lyft 등이 개발한 오픈소스 Service Mesh 솔루션이다. Istio는 보안, 모니터링, 트래픽 관리 등 다양한 기능을 제공하며, 프록시 기반 아키텍처를 사용한다. 다양한 클라우드 플랫폼과 호환되며, 컨테이너 기반 애플리케이션과 마이크로서비스를 위한 플랫폼으로 많이 사용됩니다.

■ LinkerD : Linkerd는 Lightbend에서 개발한 오픈소스 Service Mesh 솔루션이다. Linkerd는 경량화된 아키텍처와 온프레미스, 클라우드에서 모두 사용 가능한 특징을 가지고 있다. 프록시 기반 아키텍처를 사용하여 높은 신뢰성을 제공하며, 모니터링 기능을 강화하여 많은 사용자들이 선호한다.

■ Consul : Consul은 HashiCorp에서 개발한 오픈소스 Service Mesh 솔루션이다. Consul은 분산 서비스 구성, 보안, 모니터링, DNS 등 다양한 기능을 제공하며, 다양한 클라우드 플랫폼과 호환된다. 경량화된 아키텍처를 가지고 있으며, 다양한 프로토콜과 통합이 가능하여 많은 사용자들이 선호한다.

■ Gloo Edge : Golang 기반의 쿠버네티스 네이티브 인그레스 컨트롤러이자 클라우드 네이티브 API 게이트웨이 입니다. CRD를 지원하여 손쉽게 설치할 수 있습니다. 서비스 메시 인그레스로 동작하여 Istio를 포함한 모든 서비스 메쉬를 보완할 수 있습니다.

■ Netflix OSS : Netflix Oss 란 Netflix OpenSourceService의 약자로 2014년도에 Netflix에서 MSA 를 발표하면서 생겨나게 되었다.

 

 

 

자동화

■ Ansible : 여러 개의 서버를 효율적으로 관리하기 위해 고안된 환경 구성 자동화 도구이다. 앤서블은 2012년에 출시되었으며, 2013년에 버전 1이 출시된 이후, 레드햇에 인수되어 개발되고 있다. 앤서블은 셰프(chef), 퍼펫(Puppet) 등과 같은 구성 관리 도구의 일종이다.

■ Puppet : 구성 관리 프로세스를 중앙 집중화하고 자동화하기 위한 시스템 관리 도구입니다. Puppet은 소프트웨어 배포 도구로도 사용됩니다. 조직의 전체 인프라에 걸쳐 다양한 애플리케이션과 서비스의 서버 구성, 관리, 배포 및 오케스트레이션에 널리 사용되는 오픈 소스 구성 관리 소프트웨어입니다.

 

 

 

CI / CD

■ Jenkins : 지속적인 통합(Continuous Integration, CI) 및 지속적인 전달(Continuous Delivery, CD)를 지원하는 오픈 소스 자동화 도구입니다. 소프트웨어 개발에서 CI/CD는 개발자들이 애플리케이션의 변경 사항을 빠르게 통합하고, 테스트 및 배포를 자동화하여 품질을 유지하고 소프트웨어를 신속하게 제공하는 데 도움을 줍니다.

■ Argo : 컨테이너 워크플로우 솔루션이다. 컨테이너 기반으로 빅데이타 분석, CI/CD, 머신러닝 파이프라인을 만들때 유용하게 사용할 수 있는 오픈 소스 솔루션으로 개념은 다음과 같다.

■ Spinnaker : 넷플릭스에서 개발하여 오픈 소스화한 멀티 클라우드를 지원하는 Continuous Delivery Platform이다.

 

 

 

네트워크

■ Envoy : Istio에 사용되는 proxy이다. Envoy Proxy는 Lyft 사에서 개발되었으며 오픈소스로 공개되었다.기존 프록시 L4 기능뿐만 아니라 L7 기능도 지원하면서 HTTP 뿐만 아니라 다양한 프로토콜을 지원한다.

 

 

언어

■ node js : 크로스플랫폼 오픈소스 자바스크립트 런타임 환경으로 윈도우, 리눅스, macOS 등을 지원한다. Node.js는 V8 자바스크립트 엔진으로 구동되며, 웹 브라우저 바깥에서 자바스크립트 코드를 실행할 수 있다.

■ OpenJDK : JAVA프로그래밍 언어자체는 GPL라이센스로 '무료' 입니다. 하지만, 자바를 컴파일해주고(JDK), 실행시키는것(JVM)을 도와주는것이 구독형 라이센스로 변경이 되면서 논란이 되었습니다. 결론적으로는, Open JDK는 오픈소스 기반으로 '무료' 입니다.

■ GO : 구글이 빠른 성능과 안정성, 편의성, 쉬운 프로그래밍을 목표로 개발한 범용 프로그래밍 언어입니다.

■ Tyk (타이크) : go 기반의 API Gateway 로 구글 출신의 개발자들이 만든 것으로 유명한 서비스입니다.

■ Jupyter : 오픈소스 (Open source) 기반의 웹 플랫폼으로, 파이썬을 비롯한 다양한 프로그래밍 언어로 코드 작성 및 실행하는 개발 환경을 말한다.

■ Swift : Apple이 개발한 프로그래밍 언어

■ GraphQL : GraphQL은 Facebook에서 개발된 오픈소스 기술로 데이터 질의 (Query + Schema) 언어이다.

■ Gluon : MXNet에 대한 명확하고 간결하며 간단한 Python 인터페이스입니다. 엔지니어는 상징적 구현의 성능상의 이점을 잃지 않고도 신경망을 구축할 수 있는 명령형 코드를 작성할 수 있습니다. Gluon은 명령형 구현에 기반하여 최적화된 기호 코드를 자동으로 생성할 수 있습니다.

■ Rust : 러스트는 모질라 리서치에서 개발한 다중 패러다임, 범용 프로그래밍 언어이다. "안전하고, 병렬적이며, 실용적인" 언어로 디자인되었으며, 순수 함수형 프로그래밍, 액터 기반 병렬 프로그래밍, 명령형 프로그래밍, 객체 지향 프로그래밍 스타일을 지원한다.

■ Python : 고급 프로그래밍 언어로, '인터프리터를 사용하는 객체지향 언어'이자 플랫폼에 독립적인, 동적 타이핑 대화형 언어이다. 

 

 

 

AI, 머신러닝

PyTorch : 딥러닝을 구현을 위한 파이썬 기반의 오픈소스 머신러닝 라이브러리이다.

■ Apache Mxnet : 딥 신경망을 훈련시키고 디플로이하기 위해 사용되는 오픈 소스 딥 러닝 소프트웨어 프레임워크이다. 스케일링을 통한 빠른 모델 트레이닝이 가능하며 유연한 프로그래밍 모델과 다수의 프로그래밍 언어를 지원한다.

 

 

비즈니스 솔루션

■ Freshworks : 고객 관계 관리(CRM), 서비스 데스크, 마케팅 자동화 등, 다양한 클라우드 기반 비즈니스 소프트웨어 솔루션 제공

■ Okta : 클라우드 기반의 통합 ID 관리 및 액세스 관리 솔루션으로 안전하고 편리하게 직원, 고객, 파트너의 ID와 액세스 관리

■ OpsNow : AI기반의 클라우드 운영 관리 플랫폼으로, 기업의 클라우드 자산과 비용을 효율적으로 관리할 수 있도록 지원

■ PortOne : 결제 최적화와 수수료 절감을 위한 멀티 PG 인프라 및 글로벌 확장을 위한 해외 현지 결제 솔루션 제공

 

 

기타

■ CNCF (Cloud Native Computing Foundation) : 클라우드 기반 오픈소스 생태계의 중심

■ OpenStack : 오픈스택은 IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트이다.

■ Apache Active MQ : 완전한 자바 메시지 서비스 클라이언트와 함께 자바로 작성된 오픈 소스 메시지 브로커이다. 하나 이상의 클라이언트나 서버로부터 통신을 조성시키는 엔터프라이즈 기능들을 제공한다.

■ Apache Lucene : 검색을 위한 라이브러리 입니다. 이 라이브러리를 기반으로 하여 Apache Solr 또는 ElasticSearch가 구동됩니다. 그리고 색인과 검색을 쉽게 추가 가능할 수 있도록 합니다.

■ Nginx : 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다.

■ Free RTOS : 대중적인 임베디드 디바이스를 위한 실시간 운영 체제 커널이다. 35개의 마이크로컨트롤러에 포팅되었다.

■ ROS : 로봇 운영체제(ROS,Robot Operating System)는 로봇 응용 프로그램을 개발할 때 필요한 하드웨어 추상화, 하위 디바이스 제어, 일반적으로 사용되는 기능의 구현, 프로세스간의 메시지 패싱, 패키지 관리, 개발환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구를 제공한다.

■ Github : 깃허브는 루비 온 레일스로 작성된 분산 버전 관리 툴인 깃 저장소 호스팅을 지원하는 웹 서비스이다. 깃허브는 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다.