성공적인 DevOps 전략을 구현하는 방법은 무엇입니까?
게시 됨: 2022-06-29소개
DevOps는 소프트웨어 개발자와 IT 운영 직원 간의 협업을 강조하는 개발 전략입니다. 그러나 DevOps를 구현하는 데는 단순히 팀이 함께 작업하도록 요청하는 것 이상의 것이 있습니다.
DevOps라는 용어는 "DevOps의 아버지"라고도 알려진 Patrick Debois가 2009년에 만들었습니다. 프로세스는 다음과 같은 주요 단계로 구성됩니다.
- 계획
- 생성/코드화
- 짓다
- 테스트
- 풀어 주다
- 배포
- 운영하고
- 감시 장치
다음은 DevOps를 성공적으로 구현하는 데 필요한 사항과 이를 위한 다양한 전략에 대한 안내입니다.
한 번에 모든 것을 하려고 하지 마십시오
DevOps를 처음 시작할 때 압도되기 쉽습니다. 세상에는 많은 정보가 있으며 어디서부터 시작해야 할지 막막할 수 있습니다. 작게 시작하여 점차적으로 작업하는 것이 좋습니다.
먼저 자동화, 모니터링 및 최종 사용자와의 커뮤니케이션이 용이한 영역을 선택합니다. 이렇게 하면 초기에 성공을 더 쉽게 보여주고 비즈니스의 다른 영역에 대한 추진력을 구축할 수 있습니다. 예를 들어 배포를 자동화하거나 모니터링 도구를 설정하는 경우 웹 응용 프로그램 또는 컨테이너화된 응용 프로그램(예: Docker) 배포와 같은 것으로 시작하는 것이 좋습니다. 이러한 유형의 서비스는 일반적으로 데이터베이스와 같은 다른 유형의 시스템보다 종속성이 적기 때문에 조직 전체에서 DevOps 사례를 구현하는 진행 상황을 측정할 수 있는 테스트 사례가 더 쉬운 경향이 있습니다.
할 수 있는 일을 할 수 있을 때
가장 먼저 해야 할 일은 팀이 필요한 도구를 사용하도록 하는 것입니다. 사용 가능한 것으로 시작하고 더 편안해지면 더 많은 기능을 추가하십시오. 한 번에 모든 것을 하려고 하지 마십시오. 자신에게 맞는 한두 가지를 찾은 다음 다음으로 넘어갑니다.
자동화 활용
DevOps의 목표는 속도를 높이고 비용과 인적 오류를 줄이며 품질을 개선하는 것입니다. 그래서 자동화가 중요하다고 생각합니다. 자동화는 상황에 따라 다른 것을 의미할 수 있지만(자동화된 테스트와 지속적인 통합이 두 가지 일반적인 예임) 일반적으로 특정 작업을 수행하기 위해 소프트웨어를 사용하는 것을 말합니다. 즉, 개발 및 생산 프로세스에 참여하는 사람이 줄어들어 비용을 절감하는 동시에 품질을 향상시키는 동시에 속도를 높일 수 있습니다.
기존 도구로 시작하여 맞춤형 솔루션 개발
맞춤형 솔루션을 개발하는 것보다 기존 도구로 시작하는 것이 더 쉬울 수 있습니다. 이제 막 시작했다면 신속하게 시작하고 실행할 수 있도록 도와주는 여러 오픈 소스 프로젝트와 클라우드 서비스가 있습니다. 예를 들어:
- DevOps 자동화 프레임워크 Jenkins Stack: 전체 소프트웨어 개발 수명 주기를 관리하는 오픈 소스 프로젝트입니다. 여기에는 CI(지속적 통합) 및 CD(지속적 배포)를 위한 도구와 코드 테스트, 빌드, 패키징 및 배포와 같은 기타 일반적인 DevOps 작업을 위한 도구가 포함됩니다. Linux 및 macOS를 포함한 여러 운영 체제를 지원합니다.
- Elasticsearch: 많은 서버에서 실시간으로 대량의 비정형 데이터에 대한 전체 텍스트 검색 기능을 제공하는 Apache Lucene 기반 검색 엔진입니다. Netflix 또는 PayPal과 같은 많은 회사에서 사용하므로 수평적으로 확장할 수 있는 기능(필요할 때 더 많은 인스턴스를 추가함) 때문에 해당 엔터티 내에서 발생하는 모든 트랜잭션을 매우 빠르게 인덱싱할 수 있습니다.
당신의 문화와 잘 어울리는 도구로 시작하세요
DevOps 여정을 시작할 때 모든 것을 한 번에 변경할 수는 없다는 점을 이해하는 것이 중요합니다. 문화, 프로세스, 사람 또는 기술을 강제로 변경할 수는 없습니다. DevOps 및 Agile 개발의 목표와 일치하지 않으면 성공을 방해할 것입니다.
이러한 요소를 오늘날의 비즈니스 방식에 맞지 않는 고정된 틀에 맞추려고 하는 대신 Agile 방법론을 채택하는 소프트웨어 팀을 위해 특별히 설계된 도구를 찾고 시간이 지남에 따라 팀의 기능이 성장함에 따라 성장할 여지를 허용하십시오. .
협업에 집중하고 가능한 한 최고의 두뇌를 확보하세요.
그러나 이러한 자원을 찾고 고용하는 것은 쉽지 않습니다.
다행히도 도움을 받을 수 있는 몇 가지 훌륭한 옵션이 있습니다.
- 이미 DevOps를 구현한 다른 회사의 도움을 받으십시오. 그들은 이미 어려운 교훈 중 일부를 배웠고 자신의 경험을 바탕으로 조언을 줄 수 있습니다.
- 스스로 DevOps의 모든 것을 배울 시간이 없다면 컨설턴트도 좋은 선택이 될 수 있습니다. 그들은 어떤 질문을 하고 어디에서 답을 찾아야 하는지 아는 경향이 있습니다. 또한 다른 회사의 직원(일상 업무에 집중할 수 있음)보다 더 가능성이 높습니다. 왜냐하면 그들은 지식 공유만이 아니라 돈에 의해 동기가 부여되기 때문입니다.* GitHub와 같은 오픈 소스 커뮤니티는 이후에 추가 리소스를 제공합니다. 협업을 통해 함께 작동하는 방법을 배웁니다.* 외부 컨설턴트를 사용하는 대신 다른 사람의 전문 지식을 추가로 원하는 경우 교육 과정이 또 다른 옵션이 될 수 있습니다.* The Phoenix Project와 같은 책은 한 회사가 DevOps를 성공적으로 구현한 방법에 대한 내부 견해를 제공합니다. 그들은 종종 멀리서 관찰하는 것보다 직접 구현하는 데 관여한 개인이 작성합니다.
자동화된 모니터링 및 보고
자동화된 모니터링 및 보고는 DevOps의 핵심 사례입니다. 소프트웨어의 품질을 향상시키려면 프로덕션에서 얼마나 잘 수행되는지 측정할 수 있어야 합니다. 개발자는 문제를 신속하게 식별할 수 있도록 코드를 모니터링해야 합니다. 또한 이 데이터를 수집하고 프로덕션 환경에서 실행될 때 애플리케이션에 무슨 일이 일어나고 있는지 이해할 수 있는 분석 도구를 구현하기 위한 전략이 필요합니다.

운영 팀은 모든 것이 일상적으로 원활하게 실행되도록 해야 하므로 인프라를 모니터링해야 합니다. 즉, CPU 사용량, 디스크 공간 사용량, 네트워크 대역폭 사용량 등에 대한 메트릭을 수집하고 응용 프로그램에서 발생하는 모든 문제를 기록하여 즉시 해결할 수 있습니다.
비즈니스는 향후 개발 시간 및 유지 관리 비용(지속적인 지원 포함)과 같은 비용과 관련하여 각각의 새로운 기능이 얼마나 많은 수익을 가져오는지 측정하여 수익을 모니터링해야 합니다. 이러한 유형의 메트릭을 정확하게 측정할 수 있는 기능을 통해 조직 내 또는 여러 조직의 팀이 하나의 프로젝트에서 함께 작업할 수 있습니다(예: 마이크로서비스 사용) 더 큰 그림을 고려하지 않고 기술적인 부채 감소에만 집중하기 보다는.”
고객에게 정보를 제공하세요. 고객은 놀라움을 좋아하지 않을 수 있습니다.
조직에서 전체 웹 응용 프로그램에 대한 새 코드 기반을 구현하고 있다고 가정해 보겠습니다. 이것이 최종 사용자에게 영향을 미치고 변경 사항에 놀라면 좋아하지 않을 것임을 알고 있습니다.
그들에게 경고하고 변경 사항을 준비할 시간을 주거나, 적용할 때까지 기다렸다가 무슨 일이 일어났는지, 왜 그런 일이 일어났는지, 그리고 그들이 변경 사항에 익숙해지도록 도울 수 있는 방법을 설명할 수 있습니다.
사용자에게 정보를 제공하는 한 가지 방법은 사람들이 새 도구를 사용하는 방법에 대한 지침과 프로덕션에 출시된 후 이러한 기능을 사용하여 얻을 수 있는 이점에 대한 팁이 포함된 캘린더 초대장을 보내는 이메일 캠페인을 사용하는 것입니다(예: 새로운 검색 기능이 있을 것입니다).
작게 시작하고 자동화하고 진행 상황 모니터링 및 최적화
DevOps를 구현하는 가장 좋은 전략은 작게 시작하여 자동화하고 시간이 지남에 따라 진행 상황을 모니터링하는 것입니다.
작게 시작: 관리 가능한 범위로 시작할 때 추진력을 구축하는 것이 더 쉽습니다. 부서나 조직 전체를 한 번에 처리하려고 하면 감당하기 힘들고 불가능하다고 느낄 수 있습니다. 회사 전체에 DevOps를 한 번에 구현하려고 하는 대신 한 번에 하나의 프로젝트 또는 팀에 집중하세요.
자동화: 개발 프로세스의 일부를 자동화하는 데 도움이 되는 많은 도구(Jenkins 또는 TeamCity와 같은 지속적 통합 서버)가 있지만 프로덕션용 백업 설정과 같이 아직 사용할 수 있는 기존 도구가 없는 것이 있을 수 있습니다. AWS CloudFormation 템플릿의 서버—그러므로 다른 작업을 진행하기 전에 이러한 항목이 자동화 계획에 포함되어 있는지 확인하십시오!
시간 경과에 따른 진행 상황 모니터링: 지표를 마련하면 관련된 모든 사람(자신 포함)이 시간이 지남에 따라 상황이 얼마나 잘 진행되고 있는지 평가할 수 있으므로 완전 자동화를 향한 여정의 각 단계에서 필요에 따라 조정할 수 있습니다!
결론
이제 DevOps가 조직에서 어떻게 작동하는지 더 잘 이해하셨기를 바랍니다. 살펴보았듯이 DevOps 팀은 초기 전환을 한 후 시작하고 계속 진행하는 데 도움이 되는 유용한 리소스와 도구로 가득합니다. 성공적인 구현의 핵심은 이미 알고 있는 것으로 시작하여 완벽해질 때까지 반복하는 것입니다. 이렇게 하면 예산을 초과하지 않고 팀에 새로운 책임을 부과하지 않고도 효과적인 DevOps 전략을 구현할 수 있습니다!
주요 이미지: DevOps 의 워크플로: 출처: Pease, 2017.
저자 약력:
Priya는 시장 조사 분야에서 약 7년의 경력을 가지고 있습니다. 현재 그녀는 전 세계 최고의 B2B 미디어 퍼블리셔 중 하나인 콘텐츠 전략가인 Valasys Media에서 어시스턴트 매니저로 일하고 있습니다. 그녀는 고객을 위해 여러 개인화된 보고서를 준비했으며 시장 세분화, 청중 클러스터 분석 및 인바운드 방법론에 대해 많은 연구를 수행했습니다. 그녀는 여러 프로젝트에서 정부 기관 및 기업체와 함께 일했습니다. 그녀는 다양한 관심을 가지고 있으며 문제 해결에 대한 데이터 기반 접근 방식을 믿습니다. 그녀는 과학 학위를 취득했으며 마케팅, 과학, 데이터 과학 및 통계를 제외한 삶에 관한 모든 것에 대해 광범위하게 글을 씁니다. 그녀는 더 높은 현실과 우리가 이해하는 것보다 삶에 항상 더 많은 것이 있다고 굳게 믿습니다. 그녀는 영적인 삶의 방식을 믿고 요가와 명상을 실천하는 심령 치료사이자 타로 전문가입니다. 글을 쓰지 않을 때는 음악이나 요리를 즐기는 그녀를 볼 수 있습니다.