[클라우드/쿠버네티스] MSA, DevOps

    728x90
    반응형

    출처

    1) Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스

     

    DevOps

    1) Development와 Operation의 합성어. 개발팀과 운영팀 간의 소통, 협업 및 톻합을 강조하는 개발 환경이나 문화

    2) 실리콘 밸리를 중심으로 유행하여 전세계에 퍼지고 있는 현재 IT분야에서 가장 진보된 소프트웨어 개발 문화 또는 방법론

    3) CI/CD, 모니터링 및 로깅 등의 도구와 프로세스를 통해 DevOps는 소프트웨어 라이프사이클의 각 단계를 개선시킴

    4) DevOps를 실현하기 위한 수단으로서 MSA가 등장하게 됨

     

     

    MSA (Micro Service Architecture)

    1) 애플리케이션을 여러 개의 작은 독립적인 서비스로 나누는 아키텍처 패턴

    2) 애플리케이션 로직을 각자 책임이 명확한 작은 컴포넌트들로 분해하고 이들을 조합해 솔루션으로 제공

    3) 각 컴포넌트는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포됨

    4) 각 서비스는 특정 기능을 제공하고 독립적으로 배포, 확장, 관리
    5) 애플리케이션을 유연하게 만들어주며, 기존의 모놀리식 애플리케이션과는 달리 각 서비스를 개별적으로 관리

    6) 각 서비스 별 DB를 따로 가지게 됨

     

     

    DevOps Workflow

    1) 소프트웨어 개발 및 운영을 효율적으로 관리하기 위한 일련의 프로세스와 활동을 의미

    2) Collaborate, Build, Test, Deploy, Run 단계로 구성되어있음

      -Collaborate: 팀원들은 함께 작업하고 소통. 코드를 공유하고 버전 관리를 위해 협업 도구를 사용(GitLab, GitHub)

      -Build: CI도구(Jenkins)를 사용하여 자동화된 빌드 프로세스를 설정하고 소스 코드 변경 사항을 정기적으로 빌드(Maven, Gradle)

      -Test: 자동화된 테스트 스위트를 실행하여 소프트웨어의 기능적 및 비기능적 요구 사항을 검증(JUnit)

      -Deploy: 지속적 배포(CD, ArgoCD) 도구를 사용하여 자동화된 배포 프로세스를 실행. 안정적인 배포를 위해 롤백 기능을 구현하고 배포 중에 발생하는 문제를 처리

      -Run: 배포된 소프트웨어를 운영하고 모니터링하는 단계(OpenStack, Kubernetes)

     

    출처: DEVOPEDIA(https://devopedia.org/devops)

     

    출처: DEVOPEDIA(https://devopedia.org/devops)

     

    728x90
    반응형

    댓글