Server

Karaf에 대해

범데이 2022. 7. 16. 00:27
728x90

1. Karaf란

1.1 Karaf소개

Apache Karaf: The modulith* runtime

(Modulith: 모듈식 모놀리식(모듈리틱) Java 어플리케이션의 개발을 지원하는 기술울 구축하기 위한 환경이다.)

 

Karaf는 가볍고, 강력하며, 기업용으로 준비된 모듈식 런타임이다.

 

어플리케이션에 필요한 모든 에코시스템 및 부트스트래핑 옵션을 제공한다. 사내 또는 클라우드에서 실행된다. 이 모듈식 런타임은 REST-API, 웹, 스프링 부트 등과 같은 여러 프레임워크와 다양한 종류의 응용 프로그램을 지원한다.

 

Apache에서 만든 다형성의 특징을 가진 OSGi(추후 설명) 기반 컨테이너이다. 다형성의 특징을 지녔기 때문에, OSGi, Spring, WAR등.. host가 모두 가능하다. 독립적으로 실행/사용할 수 있으며, bootstrap형식으로도 사용할 수 있다.

 

 

1.2 Karaf 특징

  • 모듈식 런타임

Karaf는 다양한 프레임워크와 기술을 지원하는 모듈식 런타임이다.

 

  • 기업용으로 준비됨

Karaf는 쉘 콘솔, 원격 액세스, hot deployment, 동적 구성 등과 같은 엔터프라이즈급 기능을 제공한다. Karaf프로젝트는 클러스터링, 전체 모니터링 및 알림, 어플리케이션 저장소 등의 추가 기능을 제공한다.

 

  • 클라우드 및 사내 서버

Karaf를 통해 어플리케이션을 어디에서나(Java, 클라우드, 도커 이미지 등 다양한 머신) 실행할 수 있다.

 

 

 

 

2. OSGi란

OSGi(Open Service Gateway initiative)는 운영체제, 플랫폼에 독립적으로 운영되는 미들웨어 프레임워크이다. 또한 표준화된 스펙, 컴포넌트 구조 그리고 분산 네트워크 서비스에 최적화된 컴퓨팅 환경을 제공해주는 서비스 플랫폼이기도 하다.

이의 핵심 개념은 프로그램을 만들 때 하나의 큰 프로그램으로 만들지 않고 여러 가지의 작은 프로그램을 만든 후 이것을 하나로 묶어 내는 것이다. OOP(객체지향프로그램)이 클래스를 모듈화 시키는 것이라고 했을 때, OSGi는 아예 프로그램 자체를 모듈화(OSGi에서는 이것을 번들(bundle)이라고 부른다.) 하고, OSGi 프래임워크에서 이 모듈들을 각각 등록시키고 요청에 따라 실행을 하게 된다.

하나의 프로그램을 개발하는 데 여러 개발자들이 참여하고 또한 이 개발자들이 바뀌고 하다보면 프로그램이 점점 얽히고 이해하기 어려워 지기 때문에 나온 방법이다.

 

 

OSGi의 장점

  • 캡슐화

각각의 모듈이 완전히 분리되어 있으므로 다른 개발자가 개발한 모듈의 코드를 신경 쓸 필요가 없다.(bundle은 아예 jar파일로 컴파일되어 나오기 때문에 소스코드를 직접 보지 않는 한 코드를 볼 수 없다.)

 

  • 멱등성

모듈을 수정할 떄 들어오는 값의 형태(type)와 나가는 값의 형태만 유지되면 코드변경으로 인해 다른 오류가 일어날 걱정을 하지 않아도 된다.

 

 

 

 

3. Karaf의 기타 서비스들

3.1 Karaf 런타임으로 어플리케이션 성능 향상

Karaf는 가볍고, 강력하며, 기업용으로 준비된 모듈식 런타임이다.

어플리케이션에 필요한 모든 에코시스템 및 부트스트래핑 옵션을 제공한다. 사내 또는 클라우드에서 실행된다. 이 모듈식 런타임은 REST-API, 웹, 스프링 부트 등과 같은 여러 프레임워크와 다양한 종류의 응용 프로그램을 지원한다.

 

 

 

3.2 Karaf Cellar를 사용하여 클러스터된 인스턴스를 관리한다.

Karaf 런타임 인스턴스가 여러개 실행중이면? 이러한 인스턴스를 하나로 관리하여 구성, 배포 등을 분산하고 싶다면? Karaf Cellar가 있다. Karaf Cellar는 Karaf를 위한 클러스터링 솔루션이다. 인스턴스 간의 동기화를 통해 여러 인스턴스를 관리할 수 있다.

 

 

 

3.3 Karaf Cave를 이용하여 artifacts 저장소를 관리

Karaf Cave는 OSGi 저장소 규격을 구현한 것이다. Karaf Features Resolver에서 아티팩트의 요구사항과 기능을 처리하는 리소스를 제공하는 데 사용할 수 있다.

 

 

 

3.4 Karaf Decanter를 통해 모니터링, 알림, 및 BAM을 제공.

Karaf와 관련된 모니터링 솔루션이 필요하다면? 애플리케이션을 위한 BAM(Business Activity Monitoring) 플랫폼이 필요하다면? Karaf Decanter는 매우 편리할 수 있다. Decanter는 즉시 사용할 수 있는 모니터링 솔루션을 제공한다. 또한 확장 및 커스터마이징이 가능하다.

 

 

 


#Reference

https://karaf.apache.org/

https://m.blog.naver.com/azure0777/220637857108

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lay126&logNo=220867131862

반응형