데브옵스(DevOps)
Development + Operations의 합성어
소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 의미한다.
데브옵스 DevOps 엔지니어는 무슨 일을 할까?
소프트웨어를 만드는 조직에는 크게 프로그램을 구현하는 ’개발부서‘와 출시 후에 유지보수를 담당하는 ‘운영부서‘가 있다.
개발부서는 오류가 발생했을 때 버그를 수정하거나, 사용자들의 요구를 반영하여 빠르게 새로운 기능을 제공하고자 할 것이다.
하지만 운영부서는 이와 다르게 서비스의 안정성과 빠른 성능을 유지하는 데 집중한다.
따라서 개발부서는 잦은 업데이트를 통해 서비스를 개선하려고 한다면, 운영부서는 최대한 변화를 최소화하여 현재 잘 작동하고 있는 서비스의 안정성을 확보하는 데 집중한다.
만약, 두 부서가 원하는 것만 하려고 하고 서로 책임을 미룬다면 소프트웨어 출시 또는 업데이트가 늦어질 것이고, 더 빠른 서비스 개선을 원하는 사용자들을 만족시킬 수 없을 것이다.
개발과 운영을 결합하는 마법사, DevOps 엔지니어
DevOps 엔지니어는 개발부터 운영까지 하나의 통합된 프로세스로 묶어내는 역할을 한다.
이 프로세스는 기존의 개발부서, 운영부서들이 수행했던 각각의 업무를 효율적으로 엮고 자동화하여 두 부서 모두의 목표를 달성시키는 역할을 한다.
세상에는 점점 더 많은 서비스가 빠르게 출시되고 있고, 서비스에 대한 사람들의 기대감과 요구는 높아지고 있다. 그런데도 서비스의 오류는 눈 깜짝할 사이에 해결되기를 바란다... 왜 DevOps Engineer가 2022년 미국에서 유망한 직업 4위로 뽑혔는지 이해가 되지 않는가?
데브옵스 DevOps 프로세스에는 어떤 것들이 있을까?
다음으로 DevOps 엔지니어가 수행하는 실제 작업에는 어떤 것들이 있는지 몇 가지만 알아보도록 하자.
자동화
사람은 누구나 실수를 한다. 사람 대신 컴퓨터가 할 수 있는 일은 최대한 컴퓨터 스스로 할 수 있도록 구조화함으로써 휴먼에러를 줄인다.
롤백 🔙
에러가 발생하여 소프트웨어에 문제가 생겼을 때, 이것을 즉시 파악하여 이전에 문제가 없던 버전으로 되돌려 놓도록 프로세스를 구성한다.이전 버전으로 돌려놓는 것을 롤백이라고 한다.
모니터링 🔭
마지막으로 DevOps Engineer는 서비스 개발 단계부터 출시 후 사용자가 이용 중인 서비스를 모니터링하고, 변경 사항들을 모두 기록하여 다른 조직 구성원들에게 공유한다. 이러한 기록들은 서비스가 중단되었을 때 누구든지 이 문제를 진단하고 시스템을 복구하여 운영할 수 있도록 절차를 마련하는 데 사용된다. DevOps Engineer는 이렇게 축적된 기록을 바탕으로 추후 재사용할 프로세스를 발전시키며 효과적인 협업체계를 만들어 낸다.
DevOps는 어느 날 갑자기 새롭게 탄생한 직무, 직종이 아니다. DevOps Engineer는 기존에 존재하던 문제들을 해결하고 빠르게 대처하며 다음에는 이런 문제들을 또 만나지 않기 위한 방법을 찾아내는 전문가이다.
데브옵스의 목적 : 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것
결국, 소프트웨어 제품이나 서비스를 알맞은 시기에 출시하기 위해 개발과 운영이 상호 의존적으로 대응해야 한다는 의미로 많이 사용하고 있다.
데브옵스의 개념은 애자일 기법과 지속적 통합의 개념과도 관련이 있다.
'전공 수업 CS > Software Engineering' 카테고리의 다른 글
[소프트웨어 공학] 클린코드 & 시큐어 코딩 (0) | 2023.01.07 |
---|---|
[소프트웨어 공학] 클린코드와 리팩토링 (0) | 2023.01.07 |
[소프트웨어 공학] 애자일(Agile) (0) | 2023.01.07 |