[Team Project] DevOps란 ?

YunKwang-You·2021년 10월 21일
3

Team Project

목록 보기
2/2

MSA, Cloud, Container 등 여러 용어에 대해 정리하다가, DevOps도 함께 정리하게 되었다. 생각보다 대다수의 기업이 소프트웨어 개발 주기, 소프트웨어 아키텍쳐에 굉장히 많은 관심이 있는 것을 보니, MSA나 DevOps의 개념적 역할이 크다는 것을 느꼈다.

그래서 DevOps가 무엇일까? 알아보도록 하자.

DevOps: Development + Operations

정말 간단하게는 개발과 운영의 경계를 허물고 통합하고자 하는 문화나 철학을 뜻한다. 고객의 요구사항을 재빠르게 반영하여 의사소통을 돕는 동시에 개발을 진행하는 개념이다. 그렇다면 DevOps는 왜? 등장하게 되었을까.

On-Premise 방식

Cloud 도입 이전 On-Premise 방식에서는 서비스를 배포하기 위해

  1. 서버 장비 구매
  2. 서버 장비 위에 운영체제 설치
  3. 서비스를 운영하기 위한 환경
  4. 서비스 개발
  5. 개발 결과물 배포
  6. 운영

플로우로 서비스가 만들어졌으며 개발팀과 운영팀으로 분리가 되어있었다. 이러한 구조속에서 개발팀과 운영팀은 커뮤니케이션 문제와 수 많은 갈등이 발생했다. 따라서 이를 극복할 수 있는 문화,구조가 필요했고 DevOps라는 개념이 등장하게 되었다.

DevOps의 예시

DevOps는 문화이기때문에 특정한 방법이 없다. 하지만 '개발과 운영의 벽을 허물어 더 빨리 자주 배포하자'는 목표를 잡고 있다. DevOps의 간단한 예시를 제시하고자 한다.

  1. 지속적 통합
  2. 지속적 배포
  3. MSA(Micro Service Architecture)
  4. IaC(Infrastructure As Code)
  5. Monitoring and Logging
  6. 소통 및 협업

여기서 MSA가 다시 등장한다. 현대 기업이나 팀은 협업 방법론에 꽤 중요한 가치를 두고있는 것 같다. 여러 프로젝트를 경험해보고, 협업 시 이러한 구조를 미리 알았더라면 더 성공적으로 프로젝트를 마칠 수 있지 않았을까라는 생각이 든다.

협업/의사소통을 단순히 감정의 교류가 아닌 방법론으로 생각하려는 마음가짐이 필요하다. 앞으로 있을 면접에서의 의사소통/협업 방법에 이러한 간단한 개념을 추가해서 아는 척을 한다면 꽤 좋을 것 같다.

profile
Network Infra Engineer

0개의 댓글