Account 로그인
Jump to section

쿠버네티스 기반 Spring

URL 복사

Red Hat® OpenShift®는 쿠버네티스 네이티브 Spring 및 Spring Boot 애플리케이션을 개발하고 실행하기에 가장 좋은 방법입니다.

Spring Framework는 분산형 마이크로서비스아키텍처를 기반으로 애플리케이션을 구축하는 데 가장 많이 사용되는 Java 프레임워크 중 하나입니다. Java 기반 애플리케이션을 위한 Spring의 프로그래밍 및 구성 모델은 개발자가 특정 배포 환경에 불필요하게 연결하지 않고도 애플리케이션 수준 비즈니스 로직에 집중할 수 있도록 하는 '배수관' 역할에 중점을 둡니다. 그런 다음 Spring Boot는 애플리케이션을 쿠버네티스컨테이너로 손쉽게 배포할 수 있는 독립 실행 가능한 애플리케이션으로 손쉽게 패키징하고 구성하도록 지원합니다.

쿠버네티스 네이티브 Spring

대부분의 기존 Java 프레임워크와 마찬가지로 Spring은 쿠버네티스와 같은 플랫폼에 기반하는 컨테이너에서 실행되고 있다는 것을 기본적으로 '인지'하지는 못합니다. Spring Framework에는 Spring Boot, Spring Cloud, Spring Web을 비롯해 서비스 검색, 부하 분산, 요청 라우팅 등을 수행하는 많은 기타 구성 요소와 같이 분산형 애플리케이션을 더욱 쉽게 구축하고 배포할 수 있는 많은 구성 요소가 포함되어 있습니다. 쿠버네티스를 활용하면 이러한 작업의 많은 부분을 기본 컨테이너 플랫폼에 위임하여, 기반 플랫폼과 더욱 효율적으로 통합되는 애플리케이션을 생성할 수 있습니다. 이렇게 최적화된 코드 경로를 사용하여 Spring 애플리케이션을 구축하는 것이 Spring과 쿠버네티스를 결합해 강력한 성능을 실현하는 핵심 요인입니다.

Spring 애플리케이션은 쿠버네티스와 쿠버네티스에 배포된 기능을 활용하여, 효율적인 쿠버네티스 기반 개발을 지원하는 데 필요한 클라우드 서비스를 제공할 수 있습니다. 여기에는 특히 메시지 큐, 데이터베이스, 퍼시스턴트 스토리지, 캐싱 등과 같은 서비스가 포함됩니다.

서비스 레지스트리

마이크로서비스 아키텍처는 호스트의 수와 주소를 항상 예측하거나 미리 정적으로 구성할 수는 없는 프라이빗, 하이브리드 또는 퍼블릭 클라우드에서 개별 서비스의 동적 확장을 의미하는 경우가 많습니다. 쿠버네티스에서 서비스 복제 및 확장은 핵심 기능입니다. 즉, 클라이언트가 캐시를 유지하고 서비스 레지스트리 자체의 장애를 설명할 필요가 없습니다. 예를 들어, Netflix Ribbon(종종 Spring 애플리케이션과 함께 사용)은 코드 변경 없이 서비스 레지스트리 대신 쿠버네티스를 사용하도록 선언적으로 구성할 수 있습니다.

부하 분산

Spring 애플리케이션에서 스테이트리스 서비스에 대한 클라이언트 호출의 경우 고가용성(HA)은 서비스 레지스트리에서 서비스 조회와, 사용 가능한 인스턴스 간 부하 분산이 필요함을 의미합니다. 쿠버네티스는 호출의 부하가 분산되고 적절한 인스턴스로 리디렉션되는 단일 서비스 주소를 제공합니다. 쿠버네티스 클러스터 내에서 서비스 이름은 이 클러스터 IP 주소로 확인되며 로드 밸런서에 연결하는 데 사용할 수 있습니다. 외부에서의 호출이나 라우터를 거치는 호출이 바람직하지 않은 경우 서비스에 대해 외부 IP 주소를 구성할 수 있습니다.

내결함성

고도로 분산된 마이크로서비스의 특성으로 인해 원격 호출의 수가 증가하는 데 따른 원격 호출의 실패 위험은 더 높습니다. 과거에 서킷 브레이커와 같은 내결함성 패턴을 구현하는 부담은 개발자의 몫이었습니다. 그러나 서비스 메쉬를 구현하는 Istio와 같은 프로젝트는 이러한 부담을 완화하고 클러스터에서 실행되는 Spring 서비스 운영을 더 강력히 제어할 수 있습니다.

외부 구성

외부 구성 관리 솔루션은 애플리케이션의 이식성을 높이고 외부 변경 사항에 대한 경직성을 낮추는 데 사용되는 구성 파일, 커맨드라인 인수, 환경 변수라는 일반적인 조합에 대한 대안을 제공할 수 있습니다. 쿠버네티스 ConfigMap은 개별 속성과 같은 세분화된 정보, 또는 전체 구성 파일이나 JSON Blob과 같은 개괄적인 정보를 저장하는 데 사용할 수 있습니다. @ConfigProperty와 같은 주석을 사용하여 별도의 구성을 유지하면서 Spring 애플리케이션에 액세스할 수 있도록 컨테이너에 구성 데이터를 주입하는 메커니즘을 제공합니다.

분산 추적 및 애플리케이션 메트릭

이러한 모든 장점에도 불구하고 마이크로서비스 아키텍처는 분석과 트러블슈팅이 어려울 수 있습니다. 각 비즈니스 요청은 다양한 레이어의 개별 서비스에 대한 호출 및 개별 서비스 간에 여러 호출을 생성합니다. 분산 추적은 모든 개별 서비스 호출을 하나로 묶고 생성된 고유 ID를 통해 비즈니스 요청과 연결합니다. 뿐만 아니라 메트릭을 통해 Spring 애플리케이션은 애플리케이션 수준 데이터를 노출하여 애플리케이션 상태를 세밀하게 검사할 수 있습니다. Jaeger와 같은 추적 툴은 PrometheusGrafana를 포함하는 메트릭 스택과 결합되어 쿠버네티스에서 Spring 애플리케이션의 모니터링과 트러블슈팅을 위한 견고한 기반을 제공합니다.

Spring 애플리케이션이 분산 서비스 컬렉션으로 진화함에 따라 이러한 서비스 간의 통신 및 보안 관리는 더욱 어려워집니다. Red Hat Runtimes와 결합된 Red Hat OpenShift는 Spring 개발자에게 업계를 선도하는 컨테이너 및 쿠버네티스 하이브리드 클라우드 플랫폼에서 규모에 따라 Spring 애플리케이션을 구축하고 관리하는 데 필요한 툴링, 프레임워크 및 네이티브 쿠버네티스 통합을 제공합니다.

Spring 개발자가 Red Hat OpenShift를 사용하면 유용한 점이 많습니다. 여기에는 다음이 포함됩니다.

OpenShift에서 Spring Boot를 사용하면 기존 및 신규 Spring 애플리케이션에 대해 자연스럽게 '쿠버네티스 기반 Spring Boot' 개발자 경험을 얻게 됩니다.

  • Spring 및 Spring Boot를 사용하여 클라우드 네이티브 애플리케이션 구축 지원
  • 기존의 독립 실행형 지원 서비스를 대체하는 쿠버네티스 기능 통합
    • 외부 구성: 쿠버네티스 ConfigMap 및 Spring Cloud Kubernetes와의 통합
    • 서비스 검색: 쿠버네티스 서비스
    • 부하 분산: 쿠버네티스 복제 컨트롤러
    • 자동 재시작: 쿠버네티스 상태 점검 및 Spring Actuator와의 통합
    • 메트릭: Prometheus, Grafana 및 Spring Cloud Sleuth와의 통합
    • 분산 추적: Istio 및 Jaeger 추적 툴 사용
  • Red Hat OpenShift,를 통한 개발자 툴링을 사용하여 새로운 Spring 프로젝트를 신속하게 스캐폴딩하고, 선호하는 IDE에서 친숙한 Spring API에 액세스하고, Red Hat OpenShift에 배포

익숙한 Spring API를 사용하고 Red Hat OpenShiftRed Hat Application Services에서 기본 쿠버네티스 플랫폼 및 서비스의 장점을 누릴 수 있습니다.

Spring 지식을 활용하면 최신 기술을 사용하여 현대적인 애플리케이션을 개발할 수 있습니다.

  • Camel-KKafka를 사용하는 서버리스 Spring 애플리케이션
  • 익숙한 Spring API를 사용하여 Quarkus로 컨테이너 네이티브 Java 애플리케이션 구축
  • Kogito를 사용하는 네이티브 쿠버네티스 비즈니스 프로세스
  • Halkyon을 통해 네이티브 쿠버네티스 API를 사용하여 자연스럽게 Spring 애플리케이션을 생성 및 연결할 수 있도록 쿠버네티스 오퍼레이터 사용

추가 자료

문서

Red Hat OpenShift Operator란?

Red Hat OpenShift Operators automate the creation, configuration, and management of instances of Kubernetes-native applications.

문서

Red Hat OpenShift Serverless를 선택해야 하는 이유

Red Hat OpenShift Serverless는 서버리스 워크로드를 배포 및 관리하기 위해 쿠버네티스를 확장합니다.

문서

Red Hat OpenShift Service Mesh를 선택해야 하는 이유

Red Hat OpenShift Service Mesh는 마이크로서비스 기반 애플리케이션을 일관된 방식으로 연결, 관리, 제어할 수 있게 합니다.

OpenShift의 자세한 내용

제품

Red Hat OpenShift

자동화된 풀스택 오퍼레이션으로 하이브리드 클라우드, 멀티클라우드 및 엣지 배포를 관리하는 엔터프라이즈급 쿠버네티스 컨테이너 플랫폼입니다.

Red Hat OpenShift Data Foundation

컨테이너를 추가 또는 축소하더라도 환경 전반에서 영구적으로 데이터를 저장할 수 있는 소프트웨어 정의 스토리지입니다.

Red Hat Advanced Cluster Security Kubernetes

클라우드 네이티브 애플리케이션을 더 안전하게 빌드, 배포 및 실행할 수 있도록 지원하는 엔터프라이즈 수준의 쿠버네티스 네이티브 컨테이너 보안 솔루션입니다.

Red Hat Advanced Cluster Management Kubernetes

빌트인 보안 정책을 갖춘 단일 콘솔로 쿠버네티스 클러스터와 애플리케이션을 관리합니다.

리소스

교육

무료 교육 과정

Running Containers with Red Hat Technical Overview

무료 교육 과정

Developing Cloud-Native Applications with Microservices Architectures

무료 교육 과정

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Illustration - mail

유용한 콘텐츠 더 보기

Red Hat Shares 뉴스레터를 구독해 보세요(무료).

Red Hat logo LinkedInYouTubeFacebookTwitter

제품

체험, 구매 & 영업

커뮤니케이션

Red Hat 소개

Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.

Red Hat Shares 뉴스레터를 구독하세요

지금 신청하기

언어 선택

© 2022 Red Hat, Inc.