본문 바로가기
알아두면 손해 없는 정보 저장소

데브옵스란 무엇인가 1

by anothel 2022. 2. 8.

데브옵스: 빠른 서비스 적용을 위해 개발과 운영을 동시에 하는 메커니즘

데브옵스의 정의: 얼른 일 마치고 집에 빨리 가기 위해 만든 술수

소프트웨어 개발 방법론의 하나로, 개발(development)과 운영(operation)의 합성어이다. 개발 담당자와 운영 담당자가 연계하여 협력하는 개발 방법론을 말한다며 두산백과는 얘기하고 있다. 하지만 데브옵스라는 단어의 의미를 딱히 이렇다 하게 정하지 않았다고 위키에서는 말하고 있다. 사실 위에 스스로 내린 정의는 조금 오버한 감이 없이 않아 있는 것 같고, 그나마 진정성이 보이는 의미는 이 정도가 되지 않을까 싶다.

 

 

  • 팀 지원, 팀 간 커뮤니케이션 및 공동 작업, 기술 자동화를 강조하며, 소프트웨어 개발 팀과 IT 팀 간의 프로세스를 자동화하고 통합하는 일련의 관행, 도구 및 문화적 철학(Atlassian)
  • 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상하는 문화 철학, 방식 및 도구의 조합(Amazon)
  • 신속한 고품질 서비스 제공을 통해 비즈니스 가치와 대응력을 향상하기 위한 기업 문화, 자동화, 플랫폼 설계에 대한 접근 방식(RedHat)

 

데브옵스의 보편화

데브옵스의 개념은 애자일 소프트웨어(agile software) 개발과 지속적 통합(Continuous Integration) 등의 개념과 관련이 있다.

 

애자일 소프트웨어 개발 방법은 계획과 문서를 기반으로 개발 모형이나 모델에 따라 앞을 예측하며 개발하는 것이 아니라, 실질적인 코딩을 기반으로 일정한 주기에 따라 계속적으로 프로토타입을 형성하고 필요한 요구 사항을 파악하며 이에 따라 즉시 수정사항을 적용하여 결과적으로 하나의 큰 소프트웨어를 개발하는 적응형(adaptive style) 개발 방법이다.

 

지속적 통합이란 개발 당시의 코드(baseline code)와 개발 완료 후의 차이가 극심하여 통합 시 다양한 변화와 의존성 문제 해결에 개발 시간보다 더 많은 시간이 소요되는 문제를 해결하기 위해, 통합 작업을 초기부터 계속적으로 자주 수행하여 지속적으로 소프트웨어의 품질 제어를 적용하고자 하는 것이다.

 

애자일 소프트웨어 개발에서는 작은 변경을 자주 출시하기 때문에 개발 담당자와 운영 담당자의 협업이 긴밀해야 하며, 이러한 개발 방법의 보급과 함께 데브옵스에 대한 개념도 널리 보편화되었다.

데브옵스의 효과

데브옵스는 개발 프로세스에 대한 철학이자 이러한 방법론을 실현시키는 플랫폼과 툴 셋을 모두 포함하는 포괄적인 개념으로, 데브옵스를 더욱 쉽게 실천하기 위해서 다양한 인프라 구성 관리 자동화 툴을 사용할 수 있다.

 

이 많은 job을 인간이 직접 하나씩 해왔다니 정말 이해할 수가 없다. 과연 어떤 세상에 살고 있는 개발자일까?

 

이러한 경우 자동화된 테스트가 가능하며 자동화된 구성 관리(CM:Configuration Management)를 통해 서버 설정을 자동화할 수 있기 때문에 투입 리소스를 절감할 수 있는 효과를 가져온다.

 

나에게 데브옵스란?

무엇인지 정확히는 모르지만 반드시 해야만 하는 것. 사실 이 정도가 나에게 데브옵스의 의미이다. 애자일을 강조하는 책을 몇 권 읽으며, 아! 소프트웨어 개발은 이렇게 하는 것 이구나를 깨달았고, 그에 거의 상응하는 철학이 데브옵스더라.

 

아울러, 10개 넘는 각 OS에 코드를 업로드해서 빌드 후 테스트를 하고 나서 라이브러리를 패키징 후 다운로드를 해야 했는데 하필 회사에서 GitLab을 사용하고 있었고, 하필 GitLab에 CI/CD를 편리하게 해주는 GitLab Runner가 있었고, 하필 전임자가 만드려고 시도하다가 그만두었던 .gitlab-ci.yml 파일이 있었고, 하필 내가 게으른 편이라서 커밋할 때마다 각 코드를 해당 OS에 업로드 후 어쩌고 저쩌고 하는 각 일련의 작업을 직접 하는 게 싫었으며, 하필 또 새로운 걸 배우는 걸 좋아하는 내가 파이프라인 어떻게 짜면 좋을지 고민해봤다. 그러다 DevOps는 내가 했던 CI/CD를 포함하고 있다는 걸 알게 되었다.

 

나에게 데브옵스는 딱 그 정도일 뿐이다.

 

Resources

DevOps의 정의

https://en.wikipedia.org/wiki/DevOps

https://www.atlassian.com/ko/devops

https://www.redhat.com/ko/topics/devops

https://aws.amazon.com/ko/devops/what-is-devops/#:~:text=DevOps%20is%20the%20combination%20of,development%20and%20infrastructure%20management%20processes.

https://terms.naver.com/entry.naver?docId=2842709&cid=40942&categoryId=32837

https://thedevopsinstitute.com/?page_id=22

Auto DevOps

- https://www.youtube.com/watch?v=KGrJguM361c 

 

728x90