본문 바로가기

DevOps

[DevOps] DevOps란? (2/2)

 

PDCA 사이클

PDCA 사이클이란 사업 활동에서 생산 및 품질을 관리하는 방법입니다.

업무를 Plan(계획) -> Do(활동) -> Check(평가) -> Act(개선)의 4가지 단계로 개선하고,

개선된 상태에서 또 다시 Plan(계획)으로 되돌아간 후 계속적으로 개선을 실시합니다.

 

DevOps의 도입 또한 이 PDCA로 수행할 필요가 있습니다. 

DevOps에서 PDCA 사이클을 수행하기 위한 방법 중에 애자일 기법이 사례 중 하나입니다.

개발물의 구축과 시험, 각각의 결과에 대한 피드백까지 계속적으로 실행하는 방법은

개발물의 품질을 높이기 위해 PDCA 사이클을 구현한 것이라고 볼 수 있습니다.

이외에도 개발과 운용의 커뮤니케이션, 다양한 정보에 대한 모니터링 등 계속적인 개선을 PDCA로 수행하고 있습니다.

 

 

다시 한번 정리해보면, DevOps에서는 개발과 운용이 긴밀히 연계하고 다양한 방법과 문화를 도입하여,

상품이나 서비스 개선에 걸리는 시간을 단축하고, 신속하게 비즈니스 요구에 대응하는 것이 필요합니다.

개발과 운용의 연계를 보조하기 도구를 형성하는 요소는 다음과 같습니다.

 

추상화

모든 리소스는 어떠한 플랫폼 차이도 흡수하고, 전문성과 복잡성을 절감하는 것

 

자동화

추상화된 리소스 이용의 자동화를 가능하게 하고, 전문성이나 개발과 운용을 하는 인적 부담을 줄여주는 것

 

공통화

공통의 버전 관리 시스템, 커뮤니케이션 도구를 이용하여 정보를 가시화하고 개발과 운용의 긴밀한 관계를 구축하는 것

 

지속적 통합

개발과 운용의 개발, 구축 방법의 통일화로 개선 속도를 비약적으로 신장하는 것

 

모니터링

리소스 정보를 일원화하여 가시화하고 개발과 운용이 긴밀하게 협력할 수 있는 관계를 구축하는 것

 

이러한 요소를 통하여 프로젝트의 전문성과 복잡성을 최대한 배제하고 오버헤드를 줄일 수 있으며, 정보를 가시화하는 것이 가능해집니다.

또한 개발과 운용 모두 같은 정보를 가지고 있고 자동화나 지속적 통합으로 프로젝트의 시간을 줄일 수 있습니다.

다음으로 개발과 운용의 연계를 지원하는 문화를 형성하는 요소는 다음과 같은 것들이 있습니다.

 

목적 의식

개발, 운용이 함께 서비스를 키워서 신속하게 비즈니스 요구에 부응하는 공통의 목표를 가지고 연계하기 쉽게 하는 것

 

공감대

개발과 운용이 서로의 팀 감정을 없애고, 관계를 긴밀히 하는 것

 

자율적 사고

개발과 운용이 자율적으로 움직이면서 공통의 목표 달성에 근접하는 것

 

그렇다면 이러한 요소들을 갖춘 DevOps는 프로젝트에 대해 어떠한 효력을 발휘할 수 있는지 알아보겠습니다.

 

우선, 특정한 사람에게 크게 의존하지 않게 합니다.

특정한 사람만이 아는 부분이 있거나, 한 사람이 없으면 팀이 곤란한 상황에 처하는 것은

DevOps의 개발과 운용 간 긴밀한 연계에 있어서 저해 요인이 됩니다.

 

다음으로는 팀 간에 오버헤드를 감소시킵니다.

전문적인 팀(서버팀, 스토리지팀 등)으로만 구성된 조직은 팀 간의 소통에 있어서 오버헤드(문서 작성 등)가 생깁니다.

개발팀과 운용팀의 연계는 이러한 오버헤드를 제거하고 서로의 작업을 알게 된 상태에서

서비스 개선을 진행시키는 관계를 목표로 합니다.

 

다음으로는 품질을 높일 수 있습니다.

예를 들면, 개발팀이 운용팀에게 이야기하지 않고 서비스에 어떠한 기능을 포함시켰다고 했을 때,

서버의 부하가 급격하게 증가하여 서비스가 동작하지 않게 되었다고 하였을 때,

운용팀은 이 사실을 모르기 때문에 해결하는데 많은 시간이 걸리게 됩니다.

개발팀과 운용팀이 함께 새로운 서비스를 Relase하는 시점과 내용, 그리고 영향 범위 등을 파악하여 모니터링 했다면

위와 같은 문제가 생기지 않았을 것입니다.

 

'DevOps' 카테고리의 다른 글

[DevOps] IaC (Infrastructure as Code)  (0) 2020.06.30
[DevOps] DevOps란? (1/2)  (0) 2020.06.29