*이 글은 개인의 공부에 대한 기록이 목적이며, 상업적으로 이용하지 않습니다.
아래는 위키백과에서 정의하는 DevOps 이다.
"데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. 데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다."
출처: 위키백과 데브옵스
DevOps의 정의를 읽고, '그래서 DevOps가 어쨌다는건데?' 라는 질문이 먼저 떠올랐다.
쉽게 얘기하면 DevOps는 개발과 운영의 경계를 허물고 개발팀과 운영팀 사이의 협력과 커뮤니케이션을 강화한다고 이해하면 될 것 같다. 즉, 쉽게 말해 개발과 운영이 통합된 개발 환경인 것이다.
DevOps의 중요성을 논하기 전 우선 DevOps가 추구하는 가치와 작동방식, DevOps의 이점을 먼저 알아보면 좋을것 같다.
DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 가치를 추구한다. 그렇기에 기존의 소프트웨어 개발 및 운영 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있으며 이러한 빠른 속도를 통해 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로 경쟁할 수 있다.
DevOps의 작동방식은 AWS의 설명을 가져와봤다. 이해하기 쉽게 아주 잘 정리해 놓은 것 같다.
DevOps 모델에서는 개발팀과 운영팀이 때로는 단일팀으로 병합되어 엔지니어가 개발에서 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 수명 주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발합니다.일부 DevOps 모델에서는 품질 보증팀과 보안팀이 애플리케이션 수명 주기에 걸쳐 개발 및 운영과 좀 더 긴밀하게 통합됩니다. DevOps 팀 전체가 보안을 중점으로 두는 경우는 DevSecOps라고 불립니다. 이러한 팀에서는 DevOps 방식을 사용하여 수동으로 느리게 수행되던 프로세스를 자동화합니다. 또한, 애플리케이션을 안정적으로 빠르게 운영하고 개선하는 데 도움이 되는 기술 스택과 도구를 사용합니다. 이러한 도구 덕분에 엔지니어는 코드 배포 또는 인프라 프로비저닝과 같은 작업을 독립적으로 수행할 수 있으며, 따라서 팀의 작업 속도가 더욱 빨라집니다.
출처: AWS DevOps정의
위의 내용들을 바탕으로 빨라진 작업속도, 개발팀과 운영팀의 통합으로 변경된 서비스를 신속하게 제공, 시스템 안정성, 확장의 용이성, 협업강화, 보안강화 등이 DevOps의 장점으로 볼 수 있을 것 같다.
그렇다면, 결론적으로 현대 IT 문화에서 DevOps는 왜 중요한 것일까?
점점 더 많은 산업 분야에서 IT를 적용하고 있으며, IT 기술은 우리의 삶에 더 깊이 침투하고 있다. IT 종사자뿐 아니라 이제는 일반 사람들도 IT에 대한 지식이 많아지고 있다. 전통적인 소프트웨어 개발 방식으로는 모든 산업분야의 IT화, 그리고 똑똑해지고 더 빠른것을 원하는 사용자들을 감당 할 수 없다. 그렇기에 DevOps로의 변화는 중요하며, 필수적이다.
중요성을 알았으니 이제는 DevOps를 어떻게 적용하는지를 알아야한다. 여러 적용방법 중 아래의 목록을 공부해보려 한다.
1. 지속적인 통합 및 배포(CI/CD)
2. 배포 자동화
3. 마이크로 서비스 아키텍처(MSA)
4. 코드형 인프라