마이크로서비스: 마이크로서비스의 정의 및 이점 이해하기

지속적 제공(CD)이란 자동화를 이용해 소프트웨어를 짧은 기간 반복하여 릴리스하는 것을 의미합니다.

무료로 Compass 사용해 보기

Improve your developer experience, catalog all services, and increase software health.

2013년경까지만 해도 기업에서 보통 대규모 코드베이스, 모놀리식 아키텍처를 가진 단일 단위로 애플리케이션을 구축하여 엔터프라이즈 소프트웨어를 만들었습니다. 하지만 소프트웨어가 복잡해지고 클라우드 컴퓨팅이 인기를 얻으면서 이 접근 방식은 실용성이 떨어졌습니다.

서비스형 소프트웨어 제품(클라우드 제공 애플리케이션)의 출현으로 기업은 Amazon Web Services와 같은 공급자를 통해 빠르게 새 서버를 만들고 이중화를 추가할 수 있게 되었습니다. 이를 통해 업그레이드 중에도 서비스를 온라인 상태로 유지할 수 있었고 속도와 민첩성의 새 시대가 열렸습니다. 이에 따라 빠른 업그레이드와 개선에 대한 사용자의 기대가 증가했으며 기업은 이를 충족하기 위해 개발 프로세스를 바꾸었습니다.

기업은 애플리케이션을 더 작고 독립적인 서비스 또는 마이크로서비스로 나누기 시작했습니다. 예를 들어 메시지 수신함을 모놀리식 전자 상거래 플랫폼의 일부로 포함하는 대신 이 기능을 위한 별도의 마이크로서비스를 만들었습니다.

동시에 개발자는 전체 애플리케이션에 위험을 주지 않고 개별 서비스를 수정하고 개선할 수 있도록 더 작고 전문화된 그룹으로 나뉘어 작업하기 시작했습니다. 이 그룹은 종종 직접 작성한 코드 운영에 대한 책임도 함께 맡았으며 이를 DevOps 모델이라고 합니다. 이 변화를 지원하기 위해 프로젝트 관리자는 프로젝트를 더 작고 자주 릴리스하는 것으로 나누는 애자일과 같은 새로운 방법론을 개발하기 시작했습니다.  

마이크로서비스 기반 애플리케이션의 구조에 대해 자세히 알아보려면 계속 읽어보세요. 또한 Atlassian의 Compass가 어떻게 복잡성은 줄이면서 개발자가 이 아키텍처 모델의 이점을 누릴 수 있도록 했는지 확인해 보세요.

마이크로서비스란 무엇입니까?

마이크로서비스는 로직의 한 부분을 담당하는 기능입니다(아래 설명되어 있는 도메인 마이크로서비스 제외). Jira Software처럼 여러 마이크로서비스가 결합되어 분산 애플리케이션을 만듭니다.

마이크로서비스에는 세 가지 유형이 있습니다.

  1. 1

    Domain microservices loosely couple services with related functionality. 

  2. 2

    통합 마이크로서비스는 관련 없는 애플리케이션 간의 상호 작용을 지원합니다. 

  3. 3

    업무 단위 마이크로서비스는 단일 기능을 처리합니다. 

마이크로서비스는 API(애플리케이션 프로그래밍 인터페이스)를 사용하여 서로 상호 작용을 합니다. 개별 서비스에 대한 작업을 하는 개발자는 다른 마이크로서비스의 내부 작업을 배울 수 있으며 이것은 모놀리식 아키텍처와 다른 또 하나의 장점입니다.

마이크로서비스 기반 아키텍처에는 많은 장점이 있지만 복잡성도 높아집니다. 그래서 Atlassian은 기업이 확장하면서 단순화할 수 있도록 Compass를 개발했습니다. Compass는 엔지니어링 산출물에 대한 모든 정보와 팀 차원의 공동 작업을 검색 가능한 중앙 집중식 위치로 모으는 개발자 경험 플랫폼입니다.

마이크로서비스의 주요 원칙

Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components. 

Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.

These attributes make microservices-based distributed applications flexible and easy to maintain.

마이크로서비스의 이점

Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build. 

Some other benefits of microservices include:

복원력 및 결함 격리

모놀리식 아키텍처에서는 오류 하나가 애플리케이션 전체에 영향을 미칩니다. 하지만 마이크로서비스는 독립적입니다. 하나의 장애가 애플리케이션의 다른 부분에 영향을 주지 않습니다.

민첩성

애플리케이션을 작은 조각으로 나누면 개발 속도가 빨라집니다. 따라서 팀은 더 빠르게 소프트웨어를 만들고 테스트하고 배포할 수 있습니다.

기술 다양성

개발자는 마이크로서비스를 통해 작업에 적합한 도구와 기술을 선택할 수 있습니다. 이것을 통해 효율성 및 생산성을 높일 수 있습니다.

유지 관리 개선

개별 컴포넌트를 테스트할 수 있어 애플리케이션 전체를 오프라인으로 전환하지 않고도 쉽게 버그를 찾고 수정할 수 있습니다.

복원력 및 결함 격리

모놀리식 아키텍처에서는 오류 하나가 애플리케이션 전체에 영향을 미칩니다. 하지만 마이크로서비스는 독립적입니다. 하나의 장애가 애플리케이션의 다른 부분에 영향을 주지 않습니다.

민첩성

애플리케이션을 작은 조각으로 나누면 개발 속도가 빨라집니다. 따라서 팀은 더 빠르게 소프트웨어를 만들고 테스트하고 배포할 수 있습니다.

기술 다양성

개발자는 마이크로서비스를 통해 작업에 적합한 도구와 기술을 선택할 수 있습니다. 이것을 통해 효율성 및 생산성을 높일 수 있습니다.

유지 관리 개선

개별 컴포넌트를 테스트할 수 있어 애플리케이션 전체를 오프라인으로 전환하지 않고도 쉽게 버그를 찾고 수정할 수 있습니다.

마이크로서비스의 도전 과제

Microservices-based architecture has many benefits, but it also comes with challenges. 

One challenge of microservices is that the independent services generate their logs. This is a disadvantage compared to monoliths' centralized logs, which provide a single source of truth for developers and operations teams. Monitoring and infrastructure management are also more complicated since many moving pieces exist. Testing and debugging are challenging because, unlike monoliths, no integrated development environment (IDE) exists.

Atlassian's Compass can help with all these challenges. Compass facilitates collaboration and allows companies to manage the complexities of distributed architectures as they scale. It does this by bringing the disconnected information together in a central, searchable location.

마이크로서비스 아키텍처는 어디에 사용됩니까?

대규모 소비자 웹 사이트는 종종 수백 또는 수천 개의 마이크로서비스를 사용합니다. 마이크로서비스는 다음과 같은 사용 사례 및 산업에서 특히 유용합니다.

  • 전자 상거래 사이트는 쇼핑 카트, 모바일 앱 및 메시징을 위해 별도의 마이크로서비스를 사용합니다.
  • 금융 기관은 외부 서비스와 통신하기 위해 마이크로서비스를 사용합니다. 또한 사용자 인증 및 거래 표시와 같은 기능을 처리할 때도 마이크로서비스를 사용합니다.
  • 소셜 미디어 플랫폼은 사용자의 뉴스 피드, 메시지, 알림 및 친구 네트워크를 표시하기 위해 마이크로서비스를 사용합니다.

마이크로서비스 관리 모범 사례

지난 몇 년간 개발자들은 마이크로서비스 개발을 위해 수십 개의 필수 모범 사례를 만들었습니다. 아래 몇 가지 예를 살펴보세요.

  • SRP(단일 책임 원칙)에서는 각 모듈 또는 마이크로서비스가 하나의 기능만 가져야 한다고 명시하고 있습니다. SRP CI(지속적 통합)는 프로젝트에 통합하기 전 코드 품질 검사를 자동화한다는 소스 코드 제어 방법론으로, 별도의 QA 프로세스가 필요하지 않아 속도를 높일 수 있습니다. 이 DevOps 모범 사례는 속도를 높이는 데 도움이 됩니다. CI는 자동화된 구축 도구를 실행하여 소프트웨어 배포 준비를 한다는 CD(지속적 제공)보다 우선시됩니다.
  • API 게이트웨이는 마이크로서비스 간 통신을 간소화하고 인증 및 권한 부여를 관리하며 보안을 강화합니다. 마이크로서비스 간 
  • 비동기 통신은 자율성을 유지해 애플리케이션 기능 속도를 저하시킬 수 있는 종속성을 줄여 줍니다. 전체 작업 제거와 같이 문제를 일으키는 변경 사항을 개발자가 구현할 때에는 
  • 마이크로서비스 버전 관리가 중요합니다. 이 방법을 따르면 전환을 원활하게 하고 서비스 중단 가능성을 최소화할 수 있습니다. 

Jira Software로 구동되는 Atlassian의 Open DevOps를 사용하면 팀이 Atlassian과 파트너 도구를 쉽게 자동으로 통합할 수 있으므로 소프트웨어 구축 및 운영에 집중할 수 있습니다.

Compass를 통한 향상된 마이크로서비스 아키텍처 관리

Atlassian의 Compass는 분산 소프트웨어 아키텍처와 팀 공동 작업을 한곳에서 제공하는 개발자 경험 플랫폼입니다. 팀이 작업하는 모든 컴포넌트 및 서비스에 대한 편리한 개요를 제공합니다. 개발자가 원하는 것을 쉽게 찾을 수 있도록 도와주는 소프트웨어 컴포넌트 카탈로그도 포함되어 있습니다.

Compass를 사용하면 쉽게 컴포넌트를 관리하고 소유권을 추적하고 관계를 모니터링할 수 있습니다. 또한 변경 사항도 실시간으로 추적할 수 있습니다.

UI 사용자 지정이 가능하고 내부 및 타사 도구와의 호환성을 갖추고 있어 Compass를 쉽게 개발 환경에 통합할 수 있습니다. Compass로 마이크로서비스 아키텍처를 관리하는 방법과 연결이 끊긴 정보를 통합된 중앙 위치로 모으는 방법을 알아보세요.

마이크로서비스: 자주 묻는 질문

What tools do people commonly use in microservices?

비즈니스에서는 종종 Kubernetes 및 Docker와 같은 컨테이너화 도구를 사용합니다. 마이크로서비스와 클라이언트 사이에서 API 게이트웨이를 자주 사용하기도 합니다. 이 게이트웨이는 인증, 액세스 제어 및 로드 밸런싱과 같은 API 트래픽 기능을 수행합니다.

마이크로서비스는 모놀리식 아키텍처와 어떻게 다릅니까?

모놀리스는 하나의 시스템으로 작동하는 대규모 코드베이스입니다. 업데이트 및 디버깅을 하려면 시스템 가동 중지 시간이 필요합니다. 마이크로서비스 아키텍처는 작고 독립적인 기능 조각으로 이루어진 분산 애플리케이션입니다. 개발자는 애플리케이션 전체를 오프라인으로 전환하지 않고도 이 모듈을 업그레이드하고 개선하고 디버그할 수 있습니다. 이렇게 하면 확장이 단순해지고 개발 속도가 빨라집니다.

마이크로서비스가 DevOps에 어떤 영향을 미칩니까?

DevOps를 이해하고 있는 사용자라면 지속적 통합 및 지속적 제공(DevOps CI/CD 파이프라인)이 DevOps 방법론의 핵심이라는 것을 알고 있습니다. 마이크로서비스의 모듈식 특성은 이 접근 방식과 완벽하게 정렬됩니다. 마이크로서비스는 개발자가 작고 빈번한 릴리스를 빠르게 만들고 테스트하고 배포할 수 있도록 도와줍니다.

Atlassian 커뮤니티에서 더 많은 마이크로서비스 문서를 살펴보고 논의에 참여해 보세요.

맞춤 추천

Compass 커뮤니티

자습서: 컴포넌트 만들기

Compass 무료로 시작하기