DevOps

 

DevOps는 소프트웨어 개발(Dev)팀과 운영(Ops)팀이 더 빠르고 안정적으로 소프트웨어를 빌드, 테스트 및 릴리스할 수 있도록 두 팀 간의 프로세스를 자동화하는 일련의 과정입니다.

DevOps

DevOps의 개념은 지금까지 상대적으로 사일로된 환경에서 일해 온 팀 간에 협업 문화를 구축하는 것입니다. 이를 통해 깊은 신뢰감을 쌓고, 소프트웨어 릴리스 속도를 높이고, 크리티컬 이슈를 빠르게 해결하고, 미리 계획하지 않은 업무를 더 잘 관리할 수 있는 등의 혜택이 보장됩니다.

the right DevOps tools

DevOps는 개발과 운영 팀 간의 협업과 의사소통을 지원하는 문화적인 변화입니다. 이 변화를 위해 협업과 자동화를 돕는 다양한 도구들이 존재합니다. 이러한 도구들은 결정할때 단계를 나눠서 생각하는 것이 도움이 되며 다음은 Atlassian 솔루션을 기반으로 커브에서 제안하는 DevOps 솔루션을 보여줍니다.


01 계획 PLAN

반복적인 스프린트 계획을 지원하고 이해관계자들의 아이디어, 전략, 요구사항, 로드맵, 문서 등 필요한 정보를 공유하고 의견을 말할 수 있는 도구가 필요합니다.

  • 지원도구 : Jira Software, Confluence, Hipchat
  • DevOps

    Plan


    02 빌드 BUILD

    개발자를 위해 스테이징 혹은 프로덕션 환경을 제공할 수 있어야 합니다. Infrastructure as code를 통해 IT 인프라를 확장하고 제어할 수 있어야 합니다. Pull Request를 통해 코드를 빠르게 리뷰하고 프로덕션에 배포할 수 있어야 합니다.

  • 지원도구 : Bitbucket, Bamboo, Chef, Docker, Puppet, Ansible
  • DevOps

    Build


    03 지속적인 통합

    멀티 브랜치 환경에서 지속적인 통합을 지원할 수 있어야 합니다. 매번 동일하고 엄격하게 충실히 수행되는 자동화된 테스트를 제공할 수 있어야 합니다. 이러한 결과를 알림 받고 리스크를 식별하는데 도움을 줄 수 있는 보고서를 제공할 수 있어야 합니다.

  • 지원도구 : Bamboo, Bitbucket, HipChat, odi test manager, Selenium, Appium
  • DevOps

    Continuous Integration


    04 배포 DEPLOY

    릴리즈의 모든 변경사항, 테스트, 배포 정보를 한 곳으로 확인할 수 있는 대시보드를 제공할 수 있어야 합니다. 배포를 위한 자동화된 프로비저닝과 복잡한 배치를 단계별로 조정하고 배포 환경에 대한 히스토리를 가시화할 수 있어야 합니다.

  • 지원도구 : Jira Software, Bamboo, HipChat, Chef
  • DevOps

    Deploy


    05 운영 OPERATE

    운영 중인 어플리케이션의 건강과 트랜드를 이해하기 위해 서버와 어플리케이션의 모니터링을 할 수 있어야 합니다. 발생한 문제는 빨르게 알림을 받고 팀원들과 커뮤니케이션 할 수 있어야 합니다. 이러한 인시던트, 문제, 변경은 추적할 수 있어야 합니다.

  • 지원도구 : Jira Software, Jira Service Desk, HipChat, HostedGraphite, Nagios, New Relic, Pager Duty, Pingdom, BigPanda, Statuspage
  • DevOps

    Operate


    06 지속적인 피드백

    NPS 데이터, 고객 설문 조사, 버그 보고서, 지원 티켓 및 트윗을 통해 고객은 항상 제품과 서비스에 대해서 말하고 있습니다. 고객의 피드백을 수집하고 분석하고 보고서를 통해 고객이 원하는 제품을 만드는 것이 중요합니다.

  • Hipchat, Jira Service Desk, GetFeedback, Pendo, SurveyMonkey, Hootsuite
  • DevOps

    Continuous Feedback