Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MSA and Open Source SW

MSA and Open Source SW

MSA의 중요성과 적용방안, 오픈소스SW기술에 대한 중요성 설명

SKT Container Solution

April 29, 2022
Tweet

More Decks by SKT Container Solution

Other Decks in Technology

Transcript

  1. www.osckorea.com 1 DevOps, Cloud, Cloud Native, Opensource 상관 관계 ▪

    IT 현대화 & 디지털 전환(DT ; Digital Transformation)를 위한 용어 개념 데브옵스 (개발/운영 방법론) 클라우드 네이티브 (어플리케이션 기반의 기술/환경) 클라우드 (인프라 기반의 기술/환경) 오픈소스 (핵심/중심 환경 기술)
  2. www.osckorea.com 2 클라우드 네이티브(Cloud Native) 란? ▪ “클라우드”와 “클라우드 네이티브”는

    다릅니다. ▪ 어플리케이션은 특정 클라우드 제공자에 비 종속적인 “클라우드 네이티브”향으로 개발해야합니다. + + 서비스 중단없이 민첩한 시스템 변경 시스템의 이식성과 운영의 유연성 확보 신속한 애플리케이션 개발 & 배포 ► 전세계 개발자들의 집단 지식으로 급성장하고 있는 “오픈소스”를 활용해야만, 어플리케이션의 클라우드 호환성, 운용성, 이식성을 제공하는 진정한 클라우드 네이티브 환경을 만들 수 있습니다. MSA※ 전환 오픈소스기반 컨테이너 통합 관제 오픈소스기반 데브옵스 오픈소스기반 클라우드 ► 특정 클라우드 제공자들은 자체 개발한 기술 위주의 서비스(Lock-in)를 제공합니다. • • • 클라우드 네이티브 ≠
  3. www.osckorea.com 3 MSA와 현대화된 어플리케이션 전환이란? ▪ 거대하고 복잡한 어플리케이션

    구조를 마이크로 단위의 작고 민첩한 구조로 분리/분산 설계하여, 민첩한 대응이 가능한 현대화/디지털화의 전환을 도와줍니다. MSA 전환 데이타베이스 사용자 화면 ❖ 시스템 중단없이 기능 업데이트를 빠르게 개발, 배포, 적용 가능 ❖ 일부 기능 장애 발생시에도 전체 서비스는 안전 일부기능 장애 시, 전체 시스템 장애/불능 일부기능 장애 시, 전체 시스템/서비스 정상 작동 비즈니스 처리부 데이터 처리부 사용자 화면 데이타베이스 장애 발생 하나로 구성된 어플리케이션 수많은 조각으로 쪼개진 어플리케이션 장애 발생 - 독립적 장애 - 빠른 정상 복귀
  4. www.osckorea.com 4 컨테이너(Container)와 통합관제란? ▪ MSA 전환은 민첩한 서비스 혁신을

    제공하지만, 그에 따른 대용량 분산구조의 신속하고 완벽한 통합 관제가 필요합니다. ▪ 분산된 MSA 구성 요소(컨테이너)가 점점 작아지고 개수 증가 ▪ 수많은 구성요소(컨테이너)의 개별관리를 위한 관리자 작업량 및 관리 비용 증가 수많은 구성요소(컨테이너)를 쉽게 배포/관리해주는 통합관제 기술 필요 MSA 어플리케이션 구조 - 컨테이너의 집합 (수많은 조각으로 쪼개어서 구성) MSA 전환 기존 어플리케이션 (하나로 구성) 컨테이너 : 작은 어플리케이션 조각
  5. www.osckorea.com 5 데브옵스(DevSecOps) 란? ▪ IT시스템 개발(데브;Dev)과 운영(옵스;Ops)의 민첩한 대응을

    위해 데브옵스는 현대화/디지털화의 중요 방법론입니다. 개발부서(데브; Dev) 개발과 운영이 독립된 IT 조직 구조 - 조직내의 "개발" 과 "운영" 부서가 담을 쌓고 부서의 이익만을 이기적으로 추구하는 구조, 협업과 소통 거부/불가능 ❖ IT프로세스 효율화로 IT의 혁신적인 지원 속도 증가 개발과 운영을 같이하는 데브옵스 IT 조직 구조 - IT시스템의 개발과 운영을 통합함으로써, 비즈니스에 대한 IT의 지원 속도를 높이기 위한 방식 데브옵스 전환 (DevSecOps) ❖ 개발 → 배포까지의 소요시간 단축 운영부서(옵스; Ops)
  6. www.osckorea.com 6 MSA = “클라우드 네이티브” + “오픈소스” + “쿠버네티스”

    ▪ 초분산형 구조인 MSA는 쿠버네티스(Kubernetes) 플랫폼을 중심으로, 독립적인 컨테이너(Container)간의 API Transaction을 통해 “오픈소스 기술 스택 추상화”, “클라우드 네이티브 기반의 이식성/호환성 확보”, “민첩한 서비스 배포”, 등을 제공합니다. MSA 클라우드 네이티브 환경의 MSA 방법론 전통적인 기업의 IT인프라 구조인 '모놀리식'구조의 단점을 해결하기 위한 초분산형 구조 전통적인 기업의 IT인프라 구조인 '모놀리식'구조 하나의 서버에 모든 내용이 들어가있는 구조 Monolithic 모놀리식 구조의 문제점을 해결하기 위한 인프라의 컨테이너화 기술 등장 초기형태의 컨테이너 관리 도구로 현재는 쿠버네티스에 자리를 내어줌 Container Docker 다양한 오픈소스 기술
  7. www.osckorea.com 7 MSA 환경 구성(Inner & Outer)과 현실적 Guideline Agile한

    MSA 환경 구성 Microservice Architecture 구성 Guide by Gartner 100% Opensource 기반으로 구체화한 Service Framework MSA 환경 설계 MSA 설계 개발 환경 구성 개발자 Guide CI/CD 체계 구축 공통기능 지원 개발자 기술 지원 MSA 공통 Service Inner Architecture (Domain Specific) Outer Architecture CI/CD Pipeline Monitoring Storage 관리 Container 관리 분석 / 설계 FE / BE 개발 성능 Test 검증 및 Test Project Management Application 개발 Customer / Prime Integrator ▪ MSA 개발 환경에는 독립적인 컨테이너(Container)간의 자동 CI/CD를 위한 Inner 환경과 Application 개발의 독립적인 분리 개발 환경을 위한 Inner 환경으로 구성
  8. www.osckorea.com 8 MSA 환경 구성(Outer) 설계 및 구축 사례 ▪

    오픈소스기반의 MSA Outer 환경(incl. Module) 설계 예제 – 맞춤형 MSA 환경 설계 일반 기술지원 Enterprise 기술지원 OpenMSATM Standard Offering (OSS) Enterprise Addons K8s SLA K8s Security & Observability DevSecOps Linux SLA FinOps SRE & Chaos Engineering Identity Module 사용자 관리 접근제어 SSO 인증/인가 Container Orchestration Module K8s Version 관리 Node Pool 관리 Cluster 관리 Workload 관리 접근권한 관리 Catalog CLI & GUI 설정 관리 사용자 관리 인증 관리 정책 관리 Dashboard CI/CD Module Repository 관리 Registry 관리 Build/배포 자동화 Version/변경 관리 Persistence Module 분산 Cache 관계형 DB Storage Module 분산 Storage Object Storage Block Storage Longhorn Observability Module Metric Monitoring Log/수집 관리 Trace 관리 Dashboard / 시각화 API Module API Portal API 설계 API 게이트웨이 API Lifecycle 관리 API Key 관리 API 사용 분석 Infrastructure Layer Bare Metal
  9. www.osckorea.com 9 MSA 환경 구성(Outer) 설계 및 구축 사례 ▪

    오픈소스 기술 스택 구성도 – 사례 Ops (Preview) Users API Server Rancher Server NodePort POD A (F/E) POD B (B/E) Redis Cache NODE A POD A (F/E) POD B (B/E) NODE B POD A (F/E) POD B (B/E) NODE C v.1 v.1 v.2 Monitoring K8S System Self-Signed Certification Let’s Encrypt CA Certification Logging Tracing Ops Dev gitlab.서비스명 .도메인.com harbor.서비스명 . 도메인.com nexus.서비스명. 도메인.com Library repo, Proxy GitOps SYNC Deploy Images (Blue&Green) Source Check Build, Update manifest Dockerizing, Push Image Push/Pull Sources Ops Distribute Images K8S Cluster (RANCHER) 9
  10. www.osckorea.com 10 MSA 환경 구성에 대한 추가 고려 사항 ▪

    MSA 환경내의 “수많은 독립적인 컨테이너(Container)간의 복잡한 Transaction” + “컨테이너(Container)와 DB 간의 Transaction”에 대한 안정성, 보안성, 성능 확보 등이 필요합니다. 보안 취약성 진단 SDLC(Software Development Lifecycle)에 걸쳐 유입되는 Opensource Library에 대한 취약성 점검 Container 보안 진단 Pipeline 및 Runtime 상의 Container 보안 취약점 점검 K8s Infra 취약점 진단 K8s 환경내 Infra 취약점을 중심으로 보안성과 가시성 관련 진단 장애 진단 Chaos Engineering 기법을 통해 각종 Resource 장애를 유도하여 구성상 오류를 점검하여 대규모 장애요소 사전 방지 성능 진단 Production 환경 수준의 부하를 자동으로 생성하여 성능 Issue를 사전에 점검 비용 진단 불필요한 Resource나 과도한 Resource 사용을 진단하고 최적화 방안 제시 클라우드 네이티브 기반 MSA 운영
  11. www.osckorea.com 11 클라우드 네이티브는 오픈소스 기반의 MSA 환경 ▪ 진정한

    클라우드 네이티브에는 어플리케이션이 클라우드를 위해 만들어져야 합니다. ▪ 빠른 혁신을 주도하는 오픈소스를 기반으로 데브옵스 환경에서 MSA로 설계되어야 합니다. 클라우드간의 어플리케이션 이식성/호환성 민첩한 데브옵스 환경의 필요성 클라우드 네이티브를 위한 어플리케이션 MSA화 집단지식으로 인한 오픈소스의 빠른 혁신 클라우드 환경에서의 탄력적인 오픈소스 활용
  12. www.osckorea.com 12 오픈소스 성장과 시장 가치 ▪ 조사기관(5개사) MSA시장 규모

    + 파생 매출 = 약 30조원~60조원 https://www.mordorintelligence.com/industry-reports/cloud-microservices-market • 클라우드 기반의 마이크로서비스 시장 분석 대상 1. Component(Platform, Service) 2. 기업 규모(중소, 중견, 대기업) 3. 산업군(금융, 소매, eCommerce, 제조, 통신, IT, Healthcare 등) 4. 국가/지역 • 좌측의 시장 조사 내역 ► 조사기관 : IBM, Microsoft, aws, TATA, salesforce ► 연구대상기간 : 2018~2026 ► 가장 빠른 성장 시장 : 아시아태평양 ► 연평균성장률 : 21.7% • 시장 조사 의견 - 클라우드 마이크로서비스 시장은 2020년 831.45백만달러(1조506억3,447만원) 이었고 2026년까지 27억136만달러(3조3,734억 5,836만 8,000원)으로 예상됨, - 기업의 쿠버네티스 도입율이 증가함에 따라, 기업들은 단순한 도입이 전부가 아니고, 모든 측면(프로세스, 툴, 아키텍처 등)에서의 변화가 필요하다는 것을 인식함 - 쿠버네티스는 기업을 전반적인 변화를 촉진시킴.