DevOps: 정의 및 중요한 이유

게시 됨: 2022-03-11

IT 효율성을 개선하기 위한 확실한 방법은 없지만 DevOps는 무시하기 힘든 결과를 가져왔습니다. 이름에서 알 수 있듯이 DevOps는 조직이 더 빠르고 효율적으로 제품을 개발할 수 있도록 지원한다는 목표와 소프트웨어 개발 및 소프트웨어 운영 원칙을 결합합니다. 예를 들어, TIAA-CREF는 400억 달러 규모의 비즈니스가 DevOps 원칙을 사용하여 상당한 개선을 이루었습니다. TechBeacon과 TIAA의 최고 디지털 책임자인 Scott Blandford와의 인터뷰에서는 TIAA가 투박한 레거시 소프트웨어 및 시스템에서 개발 생산성을 4배 향상시킨 "애자일 기반 DevOps 접근 방식"으로 어떻게 이동했는지 설명합니다. 업데이트가 훨씬 더 빨리 출시되고 "IT는 사용자 기대에 부응하기 시작하면서 수년 동안 무너진 신뢰를 되찾았습니다."

2017년 DevOps 현황 보고서의 결과에 따르면 DevOps 원칙을 사용하는 고성능 조직과 그렇지 않은 조직 간의 현저한 차이가 있습니다. 보고서에 따르면, 고성능 조직은 낮은 성과보다 훨씬 더 높은 소프트웨어 배포 빈도(46배 더 자주), 훨씬 더 빠른 변경 리드 타임(440배 더 빠름), 훨씬 더 낮은 소프트웨어 변경 실패율(5배 더 낮음)을 가지고 있습니다. 상대방.

이러한 상당한 이점에도 불구하고 DevOps는 너무 자주 오용되거나 오해되는 중요하고 비교적 새로운 기술 개념의 전형적인 예입니다. 많은 사람들에게 이 아이디어는 모호한 상태로 남아 있으며 DevOps의 기본 정의조차 이해하기 어려운 것으로 판명될 수 있습니다.

이러한 명확성의 부족은 DevOps 원칙을 구현하려는 조직과 팀에 잠재적으로 부정적인 영향을 미쳐 전략적 혼란을 야기하고 DevOps가 촉진해야 하는 속도와 효율성을 방해할 수 있습니다. IBM의 DevOps 엔지니어는 InfoWorld에서 게시한 기사에서 다음과 같이 말했습니다. 어떤 문제를 해결할 가치가 있는지."

소프트웨어 개발과 운영이 더욱 밀접하게 연결되고 기업이 클라우드 인프라에 점점 더 의존하게 됨에 따라 경영진과 프로젝트 관리자는 경쟁력을 유지하고 팀이 최대한의 성과를 낼 수 있도록 DevOps를 유창하게 개발해야 합니다.

DevOps는 또 다른 막연한 유행어가 아니라 제품과 비즈니스를 극적으로 개선할 수 있는 잠재력이 있는 중요한 개념으로 생각해야 합니다. 상대적으로 비기술적인 독자를 대상으로 하는 이 기사는 무엇보다도 DevOps가 무엇인지 정확히 명확히 하는 것을 목표로 합니다. 그런 다음 이 기사에서는 특정 예를 사용하여 DevOps 원칙이 제대로 수행되었을 때 어떻게 보이는지, DevOps가 귀하와 귀하의 조직에 중요한 이유를 탐구할 것입니다.

엔지니어, 문화 및 관행의 한 유형으로서의 DevOps

데브옵스란? Toptal이 게시한 이전 기사에서 Demir Selmanovic은 "DevOps는 문화, 사고 방식이며 IT 전체의 일부입니다."라고 썼습니다. 그는 DevOps가 조직이 IT 기능 전반에 걸쳐 속도와 효율성을 최적화할 수 있도록 하는 관행이라고 덧붙였습니다.

클라우드 인프라에서 가장 큰 역할을 하며 그에 따라 상당한 DevOps 전문성을 개발한 Amazon Web Services도 비슷한 정의를 사용하여 “DevOps는 애플리케이션과 서비스를 제공하는 조직의 능력을 향상시키는 문화적 철학, 관행 및 도구의 조합입니다. 빠른 속도로: 기존 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 더 빠른 속도로 제품을 발전시키고 개선합니다."

"DevOps 사람들은 기본적으로 시스템 관리와 ​​소프트웨어 개발 모두에 관심을 갖고 그들의 기술을 결합하여 둘 다에 대한 통합되고 더 나은 접근 방식을 만들기로 결정한 사람들입니다."

둘 다 이미 관련 분야에 정통한 청중에게 유용한 정의이지만, 기술 배경이 덜 광범위한 경영진에게는 너무 추상적일 수 있습니다. 실제로 DevOps의 정의를 둘러싼 혼란 중 일부는 종종 엔지니어 유형, 일련의 관행 및 문화로 동시에 참조된다는 사실에서 비롯됩니다. DevOps는 이러한 각 요소를 포함하지만 먼저 개별적으로 고려하는 것이 좋습니다.

DevOps 엔지니어의 모습으로 시작하기 위해 이전에 IBM과 Hewlett Packard에서 DevOps 원칙을 적용한 경험이 있는 소프트웨어 개발자인 Martin Chikilian은 간단하고 구체적인 용어로 설명합니다. 시스템 관리와 ​​소프트웨어 개발 모두에서 두 분야에 대한 통합되고 더 나은 접근 방식을 만들기 위해 기술을 결합하기로 결정했습니다."

그들은 서버, 네트워크 및 회사가 보유한 기타 유형의 인프라 시스템을 유지 관리할 수 있을 뿐만 아니라 소프트웨어 개발을 통해 해당 시스템을 적극적으로 반복하고 개선할 수 있습니다. Chikilian은 또 다른 방식으로 "DevOps 담당자는 소프트웨어 개발의 기초를 활용하여 자신과 회사가 인프라를 처리하기 위한 더 나은 도구를 구축할 수 있도록 도울 수 있는 사람입니다."라고 말했습니다.

Amazon이 말했듯이 "문화 철학의 조합"은 소프트웨어 개발자와 인프라 또는 소프트웨어 운영, 전문 지식을 가진 사람들이 사용하는 접근 방식의 조합을 의미합니다. 이러한 관행 사이의 전통적인 장벽을 허물면서 DevOps 문화는 조직이 개발자와 인프라 전문가가 제공하는 고유한 강점을 활용할 수 있도록 지원합니다. DevOps 원칙을 성공적으로 구현하려면 이러한 다양한 유형의 엔지니어를 격리하는 회사의 "문화와 사고 방식의 변화가 필요합니다." Emily Dowdle이 2016 Nordic API Platform Summit에서 설명했듯이 장벽을 제거하면 개발자와 인프라 전문가 사이에 때때로 존재할 수 있는 자연적인 마찰을 완화하고 보다 친근하고 협력적인 작업 환경을 조성하는 데 도움이 됩니다.

간단히 말해서 DevOps는 오류가 발생하기 쉬운 인간 상호 작용을 포함하는 복잡한 수동 프로세스를 테스트, 측정 및 쉽게 확장할 수 있는 계측 접근 방식으로 변환하는 것입니다.

DevOps 실무자와 문화가 어떤 모습인지에 대한 이해로 무장하면 DevOps가 실천으로 의미하는 바가 더욱 분명해집니다. 간단히 말해서 DevOps는 오류가 발생하기 쉬운 인간 상호 작용을 포함하는 복잡한 수동 프로세스를 테스트, 측정 및 쉽게 확장할 수 있는 계측 접근 방식으로 변환하는 것입니다. 예를 들어 개발자가 비즈니스 사용자가 피드백을 제공할 수 있는 환경을 만들고자 하는 경우 개발자가 DevOps 팀에서 생성한 명령을 실행할 수 있는 자동화된 프로세스를 시작할 수 있습니다. 인프라 팀에 전달), 일관되고 테스트된 방식으로 관련 작업을 수행하여 예상 결과에 신속하게 도달하고 협업을 가능하게 합니다.

DevOps를 포괄적으로 정의하려면 일종의 엔지니어, 문화 및 관행으로서 그것이 의미하는 바를 이해해야 합니다. 이러한 관점에서 DevOps가 의미하는 바를 살펴보았으므로 이제 성공적으로 구현되었을 때 DevOps가 어떻게 보이는지 탐구하는 것이 중요합니다.

DevOps 툴킷

앞서 언급한 문화적 변화(소프트웨어 개발자와 인프라 전문가를 사일로로 만드는 회사에서 협업을 포용하는 회사로 이동) 외에도 기업은 DevOps에 중요한 여러 특정 관행과 도구를 이해해야 합니다. 다음은 그러한 관행 중 가장 중요한 세 가지(유일한 것은 아니지만)입니다.

자동화: 효율성 향상은 DevOps의 핵심이며 이는 소프트웨어 개발 및 인프라 유지 관리에서 비교적 느리고 번거로운 프로세스를 자동화함으로써 크게 달성됩니다. Amazon이 인용한 한 가지 구체적인 예는 상대적으로 작지만 빈번한 소프트웨어 업데이트를 자동으로 보내는 관행입니다. 이 방법을 사용하면 이러한 업데이트를 수동으로 수행해야 하는 시스템 관리자의 부담을 덜 수 있습니다. Amazon이 언급했듯이 이 관행은 관리자가 발생할 수 있는 버그를 보다 쉽게 ​​포착하고 수정할 수 있도록 함으로써 소프트웨어 배포의 위험을 줄이는 이점도 있습니다. 자동화는 DevOps의 초석이며 아래에서 논의되는 다른 DevOps 관행에 매우 중요합니다.

지속적인 통합: 기본적인 수준에서 DevOps는 엔지니어와 나아가 전체 팀 간의 긴밀한 협업에 관한 것입니다. 지속적인 통합은 엔지니어가 중앙 위치에서 코드를 공유하고 병합하는 방식을 말합니다. Amazon이 설명하는 것처럼 "과거에는 팀의 개발자가 장기간 고립되어 작업하고 작업이 완료된 후에만 변경 사항을 병합하려고 시도했습니다." 지속적인 통합을 통해 엔지니어는 보다 효율적으로 협업하고 코드를 보다 단편적인 방식으로 개발 및 통합하는 것과 관련된 병목 현상을 피할 수 있습니다.

지속적인 전달: 지속적인 전달은 소프트웨어 제품 변경 사항이 변경되면 자동으로 전달하고 구현하는 방식을 말합니다. 즉, 코드가 이미 중앙 위치에 있는 경우에만 코드 변경 사항을 전체 시스템에 효과적으로 푸시할 수 있다는 점에서 Continuous Integration을 통해 Continuous Delivery가 활성화됩니다. 자동화는 Continuous Delivery에도 중요합니다. 실제로 위에서 언급한 작고 빈번한 시스템 업데이트를 보내는 예도 지속적인 전달의 예로 생각할 수 있습니다. 지속적 전달을 통해 조직은 변경 및 개선 사항을 신속하게 구현할 수 있으며 엔지니어는 다른 복잡한 문제에 더 효율적으로 시간을 집중할 수 있습니다.

적합한 사람 고용

물론 기업은 위의 사례를 성공적으로 구현하기 위해 적합한 엔지니어를 고용해야 합니다. DevOps 엔지니어는 소프트웨어 개발과 시스템 인프라 전문 지식을 결합한 기술 세트를 보유해야 하며 이러한 결합을 찾기 어려울 수 있습니다.

"원시 코드와 아이디어, 전달 및 소비자 간의 마찰을 줄이는 것과 같이 비즈니스가 매일 직면해야 하는 문제 사이의 격차를 해소할 수 있는 것이 중요합니다."

Atlassian의 전 DevOps 엔지니어이자 CloudReach의 시스템 설계자인 Andrea Villa는 시스템 관리, 정보 보안 및 네트워크 분야에서 15년의 경험을 가지고 있으며 DevOps 엔지니어가 성공하려면 광범위한 경험과 지식이 필요하다고 믿습니다.

빌라는 "효과를 발휘하려면 오늘날의 DevOps 엔지니어가 개발자 배경 지식이 있어야 하고 시스템 관리 및 네트워크 지식에 대한 폭넓은 지식이 있어야 합니다."라고 말했습니다. "원시 코드와 아이디어, 전달 및 소비자 간의 마찰을 줄이는 것과 같이 비즈니스가 매일 직면해야 하는 문제 사이의 격차를 해소할 수 있는 것이 중요합니다."

강력한 DevOps 엔지니어 자격을 갖추는 것은 말처럼 쉽지 않으며 그러한 엔지니어를 찾는 것도 마찬가지로 어려울 수 있습니다. 그럼에도 불구하고 DevOps 사례의 기본 도구를 이해하면 조직에서 적합한 인재를 찾고 이러한 사례를 성공적으로 구현하는 것과 관련된 채용 사례를 보다 정확하게 맞춤화할 수 있습니다.

DevOps가 정말로 중요한 이유

DevOps 사례를 사용하면 다양한 이점이 제공되며, 그 중 일부는 효율성, 보안 및 조직 협업 향상을 포함하여 이미 명확하게 설명되어 있습니다. 2017년 DevOps 현황 보고서는 이러한 효율성 증가를 수량화하여 DevOps 관행을 채택한 고성과 조직이 계획되지 않은 작업 및 재작업에 21% 더 적은 시간을 보내고 새로운 작업에 44% 더 많은 시간을 소비한다고 보고합니다.

그러나 더 일반적으로 말하면 DevOps 방식을 성공적으로 구현하면 필수적이면서도 확실히 매력적이지 않은 영역에서 효율성과 실행을 개선함으로써 회사에 지대한 영향을 미칠 수 있습니다.

McKinsey와 Wondersign에서 수석 클라우드 설계자로 일한 12년 이상의 DevOps 경험을 가진 엔지니어인 Fredrik Haard는 이 점을 보다 완벽하게 설명합니다.

Haard는 "훌륭한 DevOps 엔지니어는 데이터 보안, 재해 복구, 완화 및 감사와 같이 조직에서 우선 순위를 지정하지 않을 수 있는 모든 영역에 대한 챔피언이 되어야 하며 책임을 져야 합니다."라고 말했습니다. "DevOps에서 내리는 선택은 회사에 장기적인 영향을 미칠 수 있습니다."

Microsoft는 또한 Cloud + Enterprise 엔지니어링 그룹에서 DevOps 사례를 구현함으로써 이러한 긍정적인 효과를 보았습니다. Microsoft는 최상의 결과를 제공하기 위해 "설계에서 프로덕션 배포에 이르는 전체 개발 수명 주기 동안 긴밀하게 협력할 엔지니어링 및 운영이 필요했습니다."라고 설명합니다. DevOps 문화로 전환하고 DevOps 방식을 사용함으로써 Microsoft는 이전보다 훨씬 빠르게 확장하고 고객에게 고품질 서비스를 제공할 수 있었습니다.

이러한 문제를 해결하고 효율성을 높이는 것은 그 자체로 훌륭하지만 궁극적으로 더 근본적인 목적, 즉 놀라운 제품을 생산하고 더 큰 이익과 고객 만족을 얻는 보다 근본적인 목적을 위한 수단입니다.

DevOps 엔지니어는 회사의 내부 특공대 팀으로 효과적으로 활동할 수 있으며, 아마도 화려하지 않거나 눈에 띄지 않을 수 있지만 회사가 제대로 작동하는 데 절대적으로 중요한 다양한 범위의 문제를 해결하는 데 도움이 됩니다.

이러한 문제를 해결하고 효율성을 높이는 것은 그 자체로 훌륭하지만 궁극적으로 더 근본적인 목적, 즉 놀라운 제품을 생산하고 더 큰 이익과 고객 만족을 얻는 보다 근본적인 목적을 위한 수단입니다. DevOps가 정말로 중요한 이유 중 가장 중요한 이유는 조직이 이러한 각 메트릭을 최대화할 수 있기 때문일 것입니다.

DevOps로 미래에 맞서기

2015년 Andreessen Horowitz 파트너인 Scott Weiss는 DevOps가 “단순한 방법론 그 이상입니다. 현대 프로그래머에게 꼭 필요한 기술이며 점점 더 자체 부서가 되고 있습니다.”

Amazon, Microsoft, Google을 비롯한 다양한 기술 회사가 DevOps 팀을 구성하고 이 분야의 전문 지식을 구축하기 위해 상당한 리소스를 투입함에 따라 이는 사실로 입증되었습니다. Weiss와 다른 주요 기술 업체들은 DevOps를 단순히 일시적인 유행이 아니라 소프트웨어의 미래의 핵심 구성 요소로 보고 있습니다.

산업이 클라우드 인프라에 더 의존하게 됨에 따라 DevOps는 계속해서 특히 중요해질 것입니다. Gartner Research는 2017년 보고서에서 클라우드 서비스 시장이 2020년까지 매년 15% 이상 성장할 것으로 예상했습니다. 이러한 성장을 달러로 표현하기 위해 Forbes가 최근 발표한 기사에 따르면 클라우드 컴퓨팅 시장은 약 2,600억 달러에서 성장할 것이라고 합니다. 2017년에는 약 4,110억 달러로 2020년에는 약 4,110억 달러로 증가합니다. DevOps는 회사가 시스템을 클라우드로 성공적으로 마이그레이션하는 속도에 큰 차이를 만들 수 있습니다. Toptal은 처음부터 DevOps를 사용해 왔으며 이는 초고속 클라우드 회사로서의 성공에 필수적이었습니다.

클라우드 서비스 시장이 빠른 속도로 성장하는 것처럼 DevOps의 중요성도 커지고 있습니다. 에너지, 의료 또는 고등 교육 분야에서 귀사는 DevOps 전문성을 개발해야 합니다. DevOps가 무엇인지, 어떻게 구현되는지, 왜 그렇게 중요한지를 이해하는 것은 앞으로 이 핵심 사례를 사용하는 것에 대해 생각할 때 필수적인 첫 번째 단계를 나타냅니다.