마이크로 서비스
마이크로 서비스란?
마이크로 서비스란 수천 개의 독립적인 웹 표준, 프로그래밍 언어, 데이터베이스 플랫폼, 현대 소프트웨어 개발 수명주기에서 개발자 툴로 확인되는 웹 서버 구성 요소를 의미합니다. 전통적인 관점에서 볼 때, 대기업은 한때 하나의 IT 회사에서 하드웨어와 소프트웨어 기술을 통합하는 서비스 중심 아키텍처(SOA)에 중점을 두었습니다. 마이크로 서비스의 경우, 독립적인 개발 회사나 오픈 소스 커뮤니티의 클라우드 소프트웨어 애플리케이션과 웹 서버에서 지원되는 수천 개의 다양한 구성 요소가 있습니다. IT 부서는 대규모 퍼블릭 클라우드 데이터 센터에서 서로 분리된 여러 멀티 테넌트 환경에 걸쳐 운영 환경에서 마이크로 서비스를 관리하는 새로운 철학이 필요했고, 이를 해결하기 위해 서비스 메시 기술에 기반한 SDDC 표준을 갖춘 가상화 솔루션을 폭넓게 도입했습니다. 마이크로 서비스는 클라우드 데이터 센터의 웹 서버에서 코드를 구축하고 운영하기 위한 기반 또는 기본 구성 요소, 플랫폼, 프레임워크를 형성합니다.
관련 주제
모놀리식 아키텍처와 마이크로 서비스 아키텍처 비교
- 모놀리식 아키텍처: IBM 메인프레임 시대와 기존에 기업 IT를 Microsoft Windows 운영 체제가 독점하던 시기에서 유래했습니다.
- 마이크로 서비스: 오픈 소스 커뮤니티, 외부 개발자, 독립적인 프로그래머들이 가장 많이 사용되는 웹 서버 플랫폼의 기본 기능을 확장하는 코드를 개발하는 스타트업에서 출발했습니다. 현재 대표적인 IT 기업의 대다수가 자체적인 마이크로 서비스를 출시하고 오픈 소스 프로젝트에 기여함으로써 고유한 기반을 갖춘 보다 폭넓은 시장의 여러 분야와 팀에 걸쳐 표준이 도입되고 있습니다. 마이크로 서비스는 클라우드 애플리케이션을 위한 오픈 소스 코드 솔루션을 통해 동일한 개발자 혁신 원칙에 따라 운영되고 있지만, 독자적인 마이크로 서비스도 흔히 사용되고 있습니다.
마이크로 서비스의 이점
- 혁신 가속화: 비즈니스와 스타트업은 소프트웨어 애플리케이션을 위한 새로운 기능을 개발하는 데 필요한 경우 모놀리식 아키텍처를 사용하는 것보다 신속하게 시장에 혁신을 가져올 수 있습니다. 웹 및 모바일 애플리케이션을 사용하는 고객은 새로운 기능을 요구합니다. 혁신적인 기술은 대중의 수용과 기업의 도입을 통해 자금을 확보합니다. 새로운 마이크로 서비스를 도입하여 첨단 프로그래밍과 개발을 유지하는 것은 대규모 IT 기업과 스타트업 모두에게 유리합니다.
- 데이터 센터 자동화 수준 향상: 개발자들은 작업에 특정한 플랫폼이나 표준을 사용하는 것을 선호하며 여기에는 마이크로 서비스를 통해 웹/모바일 애플리케이션의 프로그래밍 언어와 데이터베이스를 지원하는 것도 포함됩니다. 마이크로 서비스는 데이터 센터 자동화 수준을 향상할 수 있는 API와 같이 스크립트화된 프로세스를 통해 연결됩니다.
마이크로 서비스 작동 방식
마이크로 서비스는 주로 기본 운영 체제, 네트워크, 데이터 센터 관리 플랫폼에서 제공하는 것 이상으로 웹 서버에서 사용 가능한 기능을 확대하는 방식으로 작동합니다. 일부 마이크로 서비스는 프로그래밍 언어 플랫폼과 데이터베이스 프레임워크와 같이 웹 서버 스택을 확장한 것입니다. PHP 및 MySQL 애플리케이션을 개발하려면 LAMP 플랫폼 지원을 사용하여 웹 서버 환경을 구성해야 합니다. 마이크로 서비스 기반 솔루션은 주로 Microsoft, Oracle, IBM, 기타 클로즈드 소스 배포 분야의 대규모 IT 기업이 제공하는 서비스 중심 아키텍처와 경쟁합니다. 대기업은 이제 PHP, Python, Ruby-on-Rails, Java, C++, ASP.net 등의 언어로 작성된 여러 애플리케이션을 운영 환경에서 함께 또는 동시에 지원해야 합니다. 또는 데이터 센터에서 멀티 테넌트 하드웨어에 있는 가상 머신을 통해 여러 데이터베이스 프레임워크를 운영할 수 있습니다. 웹 서버는 스트리밍 미디어, API 통합을 위해 또는 독자적인 분석 유틸리티 추가를 통한 커스텀 확장을 지원하도록 구성되어야 합니다. 이러한 모든 외부 및 오픈 소스 서비스를 함께 추가하면 일반적인 운영 환경의 웹 서버에 수천 개의 마이크로 서비스를 배포한 것과 같은 효과를 지니며, 이는 퍼블릭 클라우드 서비스 환경에서 수많은 가상 머신을 통해 대규모로 확장됩니다.
마이크로 서비스의 역사
Web 2.0 시대 이후 기업 IT에서 현재 에코시스템과 모범 사례가 반영된 소프트웨어 개발 환경을 개념화하는 새로운 방식이 필요하게 됨에 따라 마이크로 서비스라는 용어가 본격적으로 사용되었습니다. 웹 및 모바일 애플리케이션 개발에 마이크로 서비스를 사용하면서 데이터 센터 관리자의 기업 운영 지원 업무가 더욱 복잡해졌습니다. 기업은 이제 필요한 모든 소프트웨어와 데이터 센터 솔루션을 위해 Oracle, IBM, Microsoft와 계약하던 데서 벗어나 비즈니스 용도에 맞는 엔터프라이즈급 솔루션을 제공하는 수많은 오픈 소스 코드 프로젝트가 존재하는 환경을 탐색해야 합니다. 업체별로 버전이 충돌하는 다양한 웹 표준이 존재합니다. 동일한 기능을 지원하는 많은 프로그래밍 언어와 데이터베이스가 존재합니다. 개발 팀마다 선호하는 툴과 프로그래밍 방식이 다릅니다. 통합된 기업 IT 부서에서 클라우드 시대의 이러한 복잡성을 모두 관리하기 때문에 전 세계 수많은 복잡한 조직의 전문적인 소프트웨어 개발에 마이크로 서비스를 지원해야 할 필요가 발생했습니다.
마이크로 서비스 아키텍처에 대한 이해
마이크로 서비스 아키텍처를 이해하는 가장 좋은 방법은 웹 서버 스택 내 소프트웨어 계층을 상상해 보는 것입니다. 웹 서버 운영 체제는 Windows, Linux 또는 BSD일 수 있습니다. ㄸ네트워크에 데이터 센터 관리와 로드 밸런싱을 위한 툴이 있습니다. 웹 서버로는 Apache, IIS, NGINX, Caddy, Tomcat 등을 선택할 수 있습니다. 다음으로는 PHP, ASP.net, Python, Ruby, Perl, Java, Go 등 설치된 프로그래밍 언어 지원 계층입니다. 다음은 MySQL, MSSQL, PostgreSQL, MongoDB 등 데이터베이스 프레임워크 계층입니다. Varnish, Redis, CDN, 최적화 유틸리티 등 캐싱 유틸리티 계층도 있습니다. 다른 지원 계층으로는 엣지 서버, 서버리스 플랫폼, AI/ML 통합이 있습니다. 퍼블릭 클라우드 에코시스템에서는 상호 운용성, 라우팅, 통신을 지원하기 위해 서비스 메시에서 관리되어야 하는 수천 개의 마이크로 서비스가 동시에 운영됩니다.
서비스 중심 아키텍처(SOA)와 마이크로 서비스 비교
서비스 중심 아키텍처(SOA)는 보통 단일 벤더에서 제공하거나, 확고하게 정립된 산업 수요를 충족하기 위해 배포할 수 있는 하드웨어 및 소프트웨어 솔루션 패키지를 포함합니다. SOA는 다양한 배포 또는 제품 모델을 통해 데이터 센터, 웹 서버, 스택 계층을 지원합니다. SOA는 벤더를 통해 독자적인 솔루션과 오픈 소스 솔루션의 두 가지 형태로 모두 제공됩니다. 클라우드 데이터 센터와 사내 프라이빗 데이터 센터는 네트워킹 장비와 광섬유 통신을 서로 다른 방식으로 관리합니다. 현재 소프트웨어 개발 분야의 혁신을 위해서는 마이크로 서비스가 필요합니다. 심지어 가장 큰 규모의 기업도 민첩한 프로그래밍 팀이 제품 지원에 수천 개의 브랜드나 도메인을 포함할 수 있는 시장에 새로운 웹/모바일 애플리케이션을 출시할 수 있도록 지원하기 위해서는 마이크로 서비스를 도입해야 합니다. 레거시 기업 소프트웨어의 현대화 및 컨테이너화를 위해 마이크로 서비스가 필요한 경우가 많습니다.
VMware 마이크로 서비스 관련 제품, 솔루션, 참고 자료
소프트웨어 정의 스토리지란?
VMware 소프트웨어 정의 스토리지는 비즈니스 및 애플리케이션 요구 사항에 부합하는 단순하면서도 지능적인 스토리지 데이터 센터 아키텍처입니다. 지금 자세히 알아보십시오.
클라우드 서비스 정의
클라우드 서비스 정의 모범 사례를 통해 서비스 중심 및 비즈니스 기반 운영 모델의 기반을 확립하십시오.
가상화란?
가상화는 모든 규모의 비즈니스에서 IT 비용을 절감하면서 효율성과 대응력을 높일 수 있는 가장 효과적인 방법입니다.
프로젝트 중심과 서비스 중심의 차이점
오늘날 IT 조직에서는 작업을 관리하기 위한 구조로 "프로젝트"를 사용합니다. 서비스 중심 운영을 통해 프로비저닝 속도를 향상하고 비용을 절감할 수 있습니다.
엔터프라이즈 클라우드 제품군
엔터프라이즈 클라우드 제품군은 하이브리드 클라우드를 관리하고 셀프 서비스 프로비저닝을 제공하는 통합 제품 모음입니다.
서비스 정의 및 관련 가상 Endpoint 구축
퍼블릭 클라우드에서 서비스 어플라이언스의 서비스 정의와 가상 Endpoint를 구축하려면 NSX Manager API를 사용해야 합니다.