개요 마이크로서비스 아키텍처는 고객의 경험을 높이고 서비스의 민첩성, 성능, 안정성 등을 향상시키는 개방형 아키텍처이다. 마이크로서비스로의 전환은 분산 서비스 환경에서 발생 가능한 트랜잭션에 따른 영향도, 분산 DB 구축에 따른 데이터 처리 또는 더 세분화 하여 서비스 간 동기/비동기 식별부터 DevSecOps 체계를 위한 조직, 문화, 기술의 변화까지 당면 과제들을 맞닥뜨리며 해결과정을 아키텍처에 반영하여, 프로젝트에 적합한 설계 방향을 잡아간다. 여러 당면 과제들이 생겨 나겠지만 프로젝트에서는 오픈 방식에 대해서도 심도있게 고려해야 한다. 전통적인 SI 프로젝트 특성상 빅뱅 방식을 선호하여, 점진적 이행을 추구하는 MSA와 다르게 진행되는 경우가 많다. SI를 통해 프로젝트가 진행되는 경우 대부분 지..
SAGA 패턴은 서비스 별 각 트랜잭션이 단일 서비스 내의 데이터를 갱신하는 일련의 로컬 트랜잭션을 의미한다. 첫번째 서비스의 트랜잭션이 완료되면 두번째 서비스의 트랜잭션이 동작하도록 트리거 되는 방식이라 생각할 수 있다. SAGA 패턴은 크게 두가지 방식으로 구현할 수 있다. Event / Chreography : 각 로컬 트랜잭션이 이벤트를 발생시키고, 다른 서비스가 트리거 하는 방식 Command / Orchestration : 오케스트레이터가 어떤 트랜잭션을 수행할 건지 알려주는 방식 그럼 각 방식에 대해 간단히 살펴보자. Event/Chreography 각 서비스 마다 자신의 트랜잭션을 관리하며 현재 상태를 변경한 후 이벤트를 발생시키고, 그 이벤트를 다른 서비스에 전달하는 방식으로 트랜잭션이 ..
본 포스팅에서는 Spring Boot를 이용한 마이크로서비스 구축과정에 대해 알아보겠습니다. 기존 빅뱅 오픈을 목표로하는 사이트의 경우 모든 애플리케이션의 요구 사항과 설계를 프로젝트 초반에 정의할 것을 요구 (폭포수-Waterfall 개발 방법론)하여 프로젝트가 진행되는 과정에서 발생하는 새로운 요구 사항을 충족하거나 리팩토링할 여지나 개발 초기 단계에서 저지른 실수를 만회하기가 어렵다는 문제가 있습니다. 사실 프로젝트를 진행해 나가면서 새로운 비즈니스 요구 사항은 당연히 발생가능하며, 이해의 차이, 수정 등 끊임없는 변동이 일어나는 프로젝트 초 중반 단계에서 전통적인 워터풀 개발 방식은 다양한 문제를 발생시켜왔습니다. 강한 결합(Tightly Coupled)으로 인해 애플리케이션 컴포넌트를 조그만 수..
본 포스팅에서는 Springframework과 MSA의 관계에 대해 살펴보도록 하겠습니다. Springframework은 자바 기반 애플리케이션을 구축하는 사실상 표준 개발 프레임워크가 되었습니다. Spring은 의존성 주입(Dependency injection)이라는 핵심 개념에 기반을 두고 있습니다. 일반적인 자바 애플리케이션이 각 클래스가 애플리케이션의 다른 클래스와 명시적으로 링크된 클래스로 분해됩니다. 링크는 코드에서 클래스 생성자를 직접 호출하는 것으로, 일단 코드가 컴파일되면 이러한 링크 지점은 변경될 수 없습니다. 이러한 이유로 DI를 활용한 개발 방법으로 다양한 자바 클래스 사이의 매개체 역할을 수행하며 클래스 의존성을 관리하게 되었습니다. 스프링의 기능을 빠르게 추가해 사용성을 높인 덕..
본 포스팅에서는 Kubernetes 기반의 PCF와 RHOCP에 대해 비교하는 시간을 갖도록 하겠습니다.본 시간을 통해 현대 클라우드 플랫폼을 이끌어 나가는 Pivotal사와 RedHat의 Cloud 제품을 비교해 보는 시간을 갖고자 합니다.PCF가 Kubernetes를 지원함에 따라 Pivotal Cloud Foundry (PCF)와 RHOCP (Red Hat OpenShift Container Platform) 간의 차이가 줄어들고 있습니다. 두 플랫폼 모두 응용 프로그램 제공을 위한 코드중심 및 컨테이너중심 방식을 제공합니다. PCF의 코드중심 모델은 성숙했지만 RHOCP는 컨테이너중심 모델을 주도합니다.PCF는 PAS에서 성숙한 Microsoft Windows Server를 지원하며 Pivotal..
본 포스팅에서는 CI/CD를 활용한 MSA Automation에 대해 알아보겠습니다. CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다. 이러한 구축 사례는 “CI/CD 파이프라인”이라 부르며 개발 및 운영팀의 애자일 방식 협력을 통해 지원됩니다. 다만 마이크로서비스에서의 Continuous Integration/Continuous Delivery는 일반 모놀로딕 애플리케이션과 차별점이 있습니다. 바로 Docker가 그 과정에 포함되면서인데요. Docker Image를 활용한 자동 빌드/배포 환경을 구축하고 Cloud 환경에서 어떤게 이용되는지 지금부터 하나씩 차근차근 살펴보겠습니다. CI..
본 포스팅에서는 Orchestration을 관장하는 Managed Container에 대해 알아보겠습니다. 마이크로서비스에서 Managed Container는 많은 개별 마이크로서비스 인스턴스의 실행을 관리하는 플랫폼입니다. 이 플랫폼은 자동화 도구를 이용한 서비스 프로비저닝 (CI/CD) 및 기본 물리적 인프라에 대한 서비스 인스턴스 할당을 관리 할 수 있습니다. 또한 다른 Outer 아키텍처 기능을 구현하는 서비스를 Managed Container 플랫폼에서 호스팅 할 수도 있습니다. 마이크로서비스 아키텍처에서 Managed Container는 Docker 컨테이너, 가상머신, Orchestration Process로 구현되어 있습니다. Managed Container는 인스턴스 관리, 오케스트레..
본 포스팅에서는 Monitoring과 Diagnostics를 관리하는 Telemetry에 대해 알아보겠습니다. 마이크로서비스 아키텍처에서 Telemetry는 발생가능한 이슈를 대비하기 위해 반드시 필요한 요소입니다. 분산 환경내에서는 이슈가 발생할 경우 Root cause를 밝히는데 어려움이 있습니다. 각 서비스별 발생가능한 이슈를 Composition하여 Tracing 해 나가는 다양한 리소스가 필요한 이유입니다. Monitoring, Logging을 포함하여 Alerting 기능과 각 서비스 간 Tracing이 가능한 도구를 제공하여 지속적이고 효과적으로 모니터링하고 이슈에 대응할 수 있도록 하는 것이 중요합니다. 대표적인 제품으로 오픈소스 직접 구현 상용 솔루션 활용 Public Cloud 서비스 ..
본 포스팅에서는 마이크로서비스를 관리 및 운영하는 Service Mesh에 대해 알아보자. 마이크로서비스를 정의하는 여러가지 의미 중 "서비스 기능 자체만 독립적이고 간결하게 구현하고 외부에 API만 노출하는 것" 이라고 할때, Service Mesh는 바로 이 마이크로서비스를 외곽에서 관리 및 운영하는 체계이다. Service Mesh를 구성하는 요소를 살펴보면 Service Discovery, Service Router, Load Balancer, Configuration등이 있다. 즉 Service Mesh는 'API Mediation' 방법 중 하나로서, 컨테이너로 운영되는 마이크로서비스의 API Mediation을 위한 필요한 기술이다. 대표적인 제품으로 오픈소스 직접 구현 상용 솔루션 활용 P..
본 포스팅에서는 MSA External LoadBalancer인 API Gateway에 대해 알아본다. 마이크로서비스 아키텍처, Event-Driven 아키텍처, Hybrid/MultiCloud 등에서 활용되는 애플리케이션은 API의 설계, 구현 및 관리 방식을 변화시키고 있다. API 관리를 담당하는 애플리케이션 관리자는 이러한 API 패턴을 지원하기 위해 API Management Platform을 선택해야 한다. 이와 같은 환경에서 우리는 다음과 같은 과제를 안고 API를 관리해 나가야 한다. - 서비스 메시를 지원하는 컨테이너 관리 플랫폼 사용을 포함하여 마이크로서비스 아키텍처에서 API가 점점 더 많이 제공되고 있다. 이는 유연성을 제공하지만, 복잡한 설계와 구현 및 관리를 요구한다. - Eve..
- Total
- Today
- Yesterday
- openstack token issue
- 오픈스택
- aa
- nodejs
- apache
- 마이크로서비스 아키텍처
- 아키텍처
- 마이크로서비스
- k8s
- MSA
- aws
- git
- node.js
- Architecture
- OpenStack
- TA
- openstack tenant
- Docker
- JBoss
- jeus
- JEUS6
- Da
- kubernetes
- JEUS7
- SA
- wildfly
- SWA
- 쿠버네티스
- API Gateway
- webtob
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |