본문 바로가기

IT

[DevOps] DevOps 란?

DevOps 란?


1. DevOps?

몇 년 전부터 IT 분야에 종사하거나 관심이 있는 분들은 DevOps라는 말을 한 번쯤은 들어보셨을 겁니다. DevOps는 특별한 소프트웨어 또는 기술이 아니라 문자 그대로 개발(Dev)과 운영(Ops)이 하나로 합쳐져서 프로젝트가 수행되는 "방법론""체계", "문화"입니다. 그러면 왜 갑자기 이런 문화가 유명해지고 강조되고 있을까요?

 

사용자에게 애플리케이션 서비스를 제공하기 위해서는 일반적으로 "기획 - 개발 - 테스트 - 배포 - 운영"의 과정을 거치기 마련이며, 사용자들에게 보다 나은 품질의 서비스를 빠르게 제공하기 위해서는 저 5가지 과정이 정확하고 신속해질 필요가 있습니다. 특히, IT산업이 발전하면서 비즈니스 요구 사항과 시장 상황을 따라잡기 위해 개선은 필수가 된 거죠. 이를 위해 여러 각도의 아이디어가 나왔으며, 그중 대표적인 예는 짧은 주기로 빠르게 반복하자는 "애자일 방법론"이 있습니다.

 

그렇다면 DevOps는 어떤 방식에 집중한 걸까요? 바로 개발 팀과 운영 팀의 경계를 무너뜨렸습니다. 이게 무슨 의미가 있냐는 질문이 있으실 수 있겠지만, 개발 팀과 운영 팀이 분리되어 있으면 애플리케이션에 대한 개발 팀과 운영 팀이 바라보는 시각과 이해도의 차이가 존재하여 협업 및 소통에 장애가 발생하게 됩니다. 이는 실제 현장에서 상상 이상의 부정적인 영향을 미치게 됩니다. 그래서 사람들은 이런 비효율적인 프로세스를 개선하기 위해 개발(Dev)과 운영(Ops)이 함께 갈 수 있는 방식을 찾게 됩니다.

 

그러면 DevOps를 적용하면 구체적으로 어떤 장점이 있는지 알아보겠습니다.

  • 애플리케이션과 인프라 레벨을 전체적으로 고려하며 개발이 이루어진다.
  • 운영과 개발 경계가 없어지면서 고객 피드백 - 개발 - 배포까지의 과정이 신속해진다.

이러한 장점들을 보면 DevOps는 적용하지 않으면 바보가 아닌가 싶기도 하지만, 효율적인 DevOps환경을 적용하려면 신경 써야 할 요소들이 있습니다. DevOps는 결국 최종 산출물까지 도달하는 시간을 절약하고 품질을 끌어올리는 데에 목적이 있습니다. 그러다보니 자연스레 자동화 적용에 대한 필요성이 대두되었고, 개발-테스트-배포 단계에 "CI/CD" 적용을 중요하게 여기기 시작했습니다. 또한, 신속한 기능 제공을 위해 더 작은 단위의 개발을 추구하며 "Micro Service Architecture" 적용을 추구하기도 합니다. 이처럼 DevOps 환경을 구축하기 위해서는 신경써야할 요소들이 많아 "DevOps 엔지니어"라는 포지션이 생겨나기도 했습니다.

2. DevOps 적용

DevOps 방법론은 보통 아래 이미지와 같이 여러 과정들이 순환하는 구조로 표현합니다. 맨땅에서 모든 환경을 구축하려면 너무 힘든 여정이 되겠지만, 다행히도 각 단계 및 전체 프로세스를 지원하는 상용 오픈소스 및 유료 도구들이 존재하여 프로젝트 상황에 맞추어 효율적으로 구축할 수 있습니다. 각 프로세스를 쉽게 구축하도록 도와주는 몇 가지 도구들은 차후 포스팅을 해볼 수 있도록 하겠습니다.

출처: https://mysocialgenie.com/what-is-devops/


연관 게시글

[CI/CD] CI/CD 란?

 

[CI/CD] CI/CD 란?

1. CI (Continuous Integration) CI는 “지속적 통합 (=Continouous Integration)” 의 줄임말입니다. 일반적으로 변경된 코드가 하나의 코드로 통합되기까지는 아래 3단계를 거치게 됩니다. 개발자가 변경한 코

brightchords.tistory.com


참조

 

'IT' 카테고리의 다른 글

[Docker] Docker Swarm 이란?  (0) 2024.02.21
[Docker] Docker 란?  (0) 2024.02.20
[Container] Container Orchestration  (0) 2024.02.19
[Container] Container 란?  (0) 2024.02.18
[CI/CD] CI/CD 란?  (0) 2024.02.12