SW/DevOps

DevOps : 사례, 예시

얇은생각 2019. 11. 11. 07:30
반응형

유저 스토리 워크숍

유저 스토리 워크숍을 통해서 개발해야 할 내용. 즉, 제품 백로그 아이템을 식별할 수 있습니다. 이 과정에서는 사람들 간의 아이디어 교환, 소통 등의 협업을 통해서 제품에 담고자 하는 기능과 우선순위를 정리합니다. 포스트잇을 활용해서 자신의 생각을 표현하고 내용을 간략하게 정리합니다.

그리고 다른 사람들에게 설명하면서 사용자가 요구하는 기능의 구체적인 사용 사례, 흐름까지 스토리로 도출합니다. 앞서 도출한 내용들은 도구를 활용하여 추적 관리할 수 있습니다.

아틀란시아사의 지라라는 도구를 사용하여 백로그 아이템을 등록할 수 있습니다. 에자일 개발에 있어 가장 대중적으로 사용하는 상용 소프트웨어 중 하나입니다. 실제 기업 환경에서는 모든 것을 다 오픈소스 소프트웨어로 사용할 수는 없습니다. 특히 계획 단계 활동은 개발자가 아닌 많은 사람과 협업이 이루어지기 때문에 사용자들에게 익숙하고 편리함을 제공할 수 있는 기능, 그리고 쉽게 지원을 받을 수 있는 도구가 필요합니다. 따라서 상대적으로 다른 활동과 비교하여 상용 소프트웨어를 많이 사용하게 됩니다.

 

스프린트 수행 및 일감 추적 관리

스크럼에서 실제 개발을 위해서는 2주에서 1개월 주기로 반복하는 활동을 스프린트라고 합니다. 단거리 질주라는 뜻의 스프린트처럼 스프린트 기간 중에는 긴박하게 목표를 향해서 질주하듯이 개발을 진행합니다. 해야 할 일감, 진행 중인 일감, 해결된 일감, 그리고 완료된 일감 등 계획한 내용이 어떻게 진행되는지 추적, 관리합니다.

 

도메인 주도 설계

도메인 주도 설계는 업무 중심으로 소프트웨어를 설계하고 개발하는 방식입니다. 업무를 중심으로 업무 담당자와 개발자들 간 공통의 언어와 개념을 맞추고 설계와 개발을 진행하는 방식입니다. 따라서 다양한 이해관계자들 간의 아이디어 교환, 소통 등이 협업으로 이루어집니다. 이벤트 스토밍을 통해서 참석자들이 자유롭게 의견을 교환하고 수용하면서 팀원의 의견이 반영된 최종적으로 설계 결과를 얻을 수 있습니다. 

 

전술적 설계

전술적 설계에서는 설계의 전체적인 큰 그림을 잡고 이를 바탕으로 개발해야 할 마이크로서비스를 식별합니다. 앞서 전략적 설계의 결과를 가지고 구체적인 클래스들을 식별하고 모델링하는 작업입니다. 모델링 된 결과가 어떻게 표현되는지 UI와이어 프레임과 함께 설계하기도 합니다.

사용자 스토리 진행을 모두 다 반영할 수 있는지 모델을 지속적으로 개선해 가면서 개발팀의 구체적인 일감을 정의해 나갑니다. 포스트잇과 화이트보드에서 설계한 내용을 별도로 다이어그램을 그리지 않고 바로 코딩한 다음에 소스코드 역공학을 통해서 다이어그램을 자동으로 생성하여 활용합니다. 이를 통해서 설계와 코딩의 갭과 시간을 줄일 수 있습니다. 또한 모델과 코드를 신속하게 리펙토링 하는 데 도움이 됩니다.

 

Saas 구현 패턴

다음은 사스 구현의 한 가지 예를 설명 드리겠습니다. 다양한 환경에 배포하더라도 하나의 코드가 기반이 되어야 합니다.
예를 들면 웹이든 모바일이든 채널이 다르더라도 하나의 소스 코드로 배포할 수 있어야 합니다.

마찬가지로 개발 환경이든 스테이징 환경이든 프로덕션 환경이든 구분 없이 하나의 소스 코드가 유지되어야만 하며, 이를 위해서는 환경설정 등의 정보는 코드와 분리하여 관리해야 합니다. 이것이 분리되지 않으면 채널별, 상황별, 코드 관리 요소가 커지면서 간단한 수정도 제대로 할 수 없는 어려움에 직면하게 됩니다.

 

통합 DevOps 환경

컨테이너 플랫폼

통합 데브옵스 환경입니다. 클라우드ZCP라고 하는 컨테이너 플랫폼입니다. 컨테이너 기반으로 로드 밸런싱, 오토 스케일링 등의 서비스 운용 환경을 제공하며 모니터링, 로깅, 지속적 전달 배포 등 다양한 에드원 서비스를 제공합니다.

 

컨테이너 플랫폼 제공 서비스


제공되는 서비스를 조금 더 살펴보면 플랫폼 기반의 자동화된 애플리케이션 관리를 위한 지속적 통합 배포 서비스, 그리고 다양한 자원의 모니터링, 로깅 관리를 하는 서비스등이 있습니다.

데시보드를 통한 플랫폼 구성 자원 관리를 할 수 있는 서비스 등을 제공합니다.

지속적 통합, 전달, 배포를 위하여 젠킨스를 사용하고 있으며 무 중단 배포를 위한 블루그린 배포, 롤링 업데이트를 적용 할 수 있습니다. 

반응형