마이크로서비스는 최신 소프트웨어를 개발하는 아키텍처 접근 방식입니다. 각 핵심 기능 또는 서비스는 독립적으로 구축 및 배포되는 관련 비즈니스 컨텍스트를 나타냅니다. 마이크로서비스는 애플리케이션을 개발 및 유지보수하는 데 민첩성을 제공하고 레거시 소프트웨어 개발에 따른 모놀리식 접근 방식의 대비를 나타냅니다. 오늘날 애플리케이션 현대화는 곧 마이크로서비스를 의미한다고 할 수 있습니다.
마이크로 서비스에 대한 자세한 내용은 모놀리식 아키텍처, 마이크로 서비스 아키텍처 도입 고려사항, 통신 메커니즘, 12팩터 배포 방법론, Kubernetes의 배포, 데이터 지속성, 서비스 메시, 마이크로 서비스 설계를 위한 모범 사례 등을 알아봅니다.
지속적인 통합과 지속적인 배포를 지원하여 서비스용 Blue-green 배포 모델을 지원함으로써 새로운 기능 출시 시간을 단축할 수 있습니다.
서비스당 컨테이너 또는 데이터 플랫폼을 독립적으로 확장하여 해당 기능의 요구를 충족합니다.
전체 응용 프로그램에 영향을 주지 않고 독립 서비스를 교체하거나 폐기합니다. 개별 서비스 오류는 전체 응용 프로그램을 손상시키는 것이 아니라 성능 저하로 인해 정상적으로 처리됩니다.
Oracle Cloud Infrastructure(OCI)에서 마이크로 서비스를 구축하는 방법을 알아봅니다.
데이터 중심 마이크로서비스의 중요한 측면은 다양한 데이터 유형을 배포하고 컨테이너에서 여러 데이터베이스를 지원하며 자율 관리 기능을 제공하는 데이터 관리 플랫폼을 배포하는 것입니다. OCI의 Oracle Autonomous Database는 지능적인 데이터 기반 마이크로 서비스를 구축하기 위한 간편한 배포를 제공합니다.
애플리케이션 현대화를 위해 여러 기술을 통합하여 최적의 멀티 클라우드 마이크로 서비스 기반을 구축해야 합니다. Oracle LiveLabs에서는 Oracle의 도구 및 기술에 액세스하여 다양한 실습과 워크샵을 실행할 수 있습니다. 이 워크샵에서는 Oracle과 함께 개방형 기술을 사용하여 배포 유연성을 제공하는 보다 간단한 아키텍처를 구축하는 방법을 보여줍니다. Oracle LiveLabs에서 Autonomous Database, Helidon, Micronaut, MicroTx, WebLogic Server, Java, Docker, Kubernetes, Istio Service Mesh 등 OCI에서 사용할 수 있는 클라우드 및 하이브리드 구성요소를 사용하여 마이크로서비스를 구축합니다. 마이크로서비스 여정을 시작하기 위해 일체형 엔터프라이즈 앱을 현대화하거나 이 경로를 이미 시작한 경우 단순화할 수 있는 실습이 여러 개 있습니다.
이 Oracle LiveLab는 최신 개발 스택으로 데이터 아키텍처의 단순성을 강조하는 GrabDish이라는 모바일 식품 배달 애플리케이션을 구축합니다. 관계형, 텍스트, 공간, 그래프 및 메시징 시스템을 위한 별도의 시스템을 통해 전통적으로 업계에서 람다 및 카파 아키텍처로 채택된 특수 용도의 데이터베이스의 복잡성과 대조적으로, Oracle Converged Database를 사용하여 데이터 기반 마이크로서비스를 구축하는 단순성이 뛰어납니다. 이 실습은 새로운 마이크로 서비스를 설계하기 위해 개발자와 설계자를 위해 제작되었습니다. 또한 DBA가 애플리케이션 현대화 프로젝트에서 Oracle Database의 역할을 이해할 수 있도록 도와줍니다. Autonomous Database, 도커 컨테이너가 있는 Kubernetes 클러스터, Oracle Advanced Queuing and Transactional Event Queues 및 Helidon은 Kiali, Jaeger, Prometheus 및 Grafana로 설정된 추적 및 모니터링과 함께 관계형, JSON, 공간 및 그래프 데이터로 작동하는 Java, Node.js 및 Python 마이크로서비스를 표시하는 데 사용됩니다. 서비스 패턴(예: 이벤트 소싱, CQRS 및 SAGA)이 설명됩니다.
마이크로서비스 아키텍처가 인기를 얻고 있기 때문에 개발자는 각 마이크로서비스가 일반적으로 자체 데이터베이스 또는 기타 리소스를 보유하므로 데이터 일관성과 관련된 문제를 겪는 경우가 많습니다. MicroTx는 트랜잭션에 참여하는 다양한 데이터베이스의 상태에서 일관성을 유지하기 위한 트랜잭션 조정 마이크로서비스를 제공합니다. MicroTx는 XA, LRA(장기 실행 작업) 및 TCC(시도 확인/취소)와 같은 여러 분산 트랜잭션 프로토콜을 지원합니다. Java, node.js, C/C++ 및 PL/SQL과 같은 다언어 마이크로서비스 간 분산 트랜잭션을 지원합니다. 이 LiveLab에서 개발자는 샘플 애플리케이션에 사용되는 다양한 마이크로서비스에서 데이터 일관성을 달성하는 방법을 알아볼 수 있습니다.
마이크로서비스를 위한 완전한 개방형 플랫폼
애플리케이션 현대화를 위해 여러 기술을 통합하여 최적의 멀티 클라우드 마이크로서비스 기반을 구축해야 합니다. Oracle LiveLabs에서는 Oracle의 도구 및 기술에 액세스하여 다양한 실습과 워크샵을 실행할 수 있습니다. 이 워크샵에서는 Oracle과 함께 개방형 기술을 사용하여 배포 유연성을 제공하는 보다 간단한 아키텍처를 구축하는 방법을 보여줍니다. 도매 마이크로서비스 플랫폼 스택에 있는 OCI, Autonomous Database, Helidon, Micronaut, Weblogic, Java, Docker, Kubernetes, Istio Service Mesh에서 사용할 수 있는 클라우드 및 하이브리드 구성요소를 사용하여 Oracle LiveLabs에서 마이크로서비스를 구축합니다. 모놀리식 엔터프라이즈 앱을 현대화하여 마이크로서비스 여정을 시작하거나, 이 패스를 이미 중단한 경우 단순화할 수 있는 실습이 여러 개 있습니다.
서버 미사용 - 데이터 저장소에 영구 상태가 필요하지 않고 작업이 즉시 실행됩니다(불러서 스타일 잊음). 람다 함수 및 API 게이트웨이를 예로 들 수 있습니다.
API 기반 - 마이크로 서비스는 API 게이트웨이와 같은 REST API를 사용하여 서로 통신합니다. 각 마이크로서비스에는 API 정의가 있습니다.
비동기 마이크로 서비스 - 느슨한 커플링은 Oracle Advanced Queuing 또는 Apache Kafka와 같은 대기열 또는 스트리밍 소프트웨어를 통해 비동기 메시징으로 구현됩니다.
워크플로우 작업 - 비즈니스 플로우(루프에 사람이 있음)도 장기 실행 트랜잭션을 나타냅니다. 예를 들어, Camunda, Zeebe 또는 temporal.io 플로우와 같은 BPMN 프레임워크가 있습니다.
자동화된 워크플로우 - Apache Airflow 및 Argo(CNCF)와 같이 자동화된 방식으로 간단한 워크플로우로 실행되는 작업(루프에 사람이 없는 작업)입니다.
데이터 기반 데이터 아키텍처는 일반적으로 Oracle 통합 데이터베이스 또는 특수 용도의 데이터베이스와 같은 영구 저장소를 사용하여 운영 및 의사 결정을 위해 앱의 데이터 사용을 촉진합니다.
클라우드 네이티브 - CNCF 구성요소 및 OCI 서비스와 같이 클라우드용으로 전적으로 개발된 애플리케이션입니다.
Hybrid cloud microservices - 고객의 데이터 센터(전용 클라우드) 및 퍼블릭 클라우드 전반에 걸쳐 작동하는 마이크로 서비스(예: Kubernetes/서비스 메시)로 프라이빗 클라우드 및 퍼블릭 클라우드 전반에 걸쳐 조정(클라우드 버스팅 사용 사례).
다중 클라우드 마이크로 서비스 - Kubernetes/서비스 메시를 통해 2개 이상의 퍼블릭 클라우드 및 프라이빗 클라우드에서 작동하는 마이크로 서비스로 여러 클라우드에서 통합관리(위험 완화를 제공하고 단일 퍼블릭 클라우드에 대한 잠금 방지)
마이크로서비스는 애플리케이션 현대화와 동의어이며, 모든 애플리케이션 개발을 위한 방향입니다. 하지만, 마이크로 서비스 아키텍처로의 여정을 더욱 효율적으로 만드는 몇 가지 고려 사항이 있습니다.
기계로 번역된 페이지입니다.