DevOps란?

2024. 12. 20. 23:00·Project/Cloud

저번 글에서 클라우드에 대한 내용을 다루었는데, 클라우드가 뭔지 대충 알았으니 직접적인 프로젝트 주제인 DevOps에 대해 찾아보았다..!! 이번에 DevOps 내용들을 정리하면서 CI/CD에 대해 추가적으로 찾아보았고 이해에 큰 도움이 되었던 것 같다!!


DevOps란?

DevOps란 Development와 Operations의 합성어로 개발과 운영이 통합된 환경을 의미

https://distillery.com/blog/what-is-devops/

위의 사진은 DevOps를 검색하면 많이 보이는 Lifecycle인데, 사진들마다 조금씩 내용이 다르다는 것을 볼 수 있음

⇒ 이는 조직의 목표에 따라 달라지기 때문

DevOps의 등장 배경 (왜 개발과 운영을 합치게 되었지?)

DevOps는 2000년대 후반 IT 업계에 등장하였으며, 소프트웨어 개발과 운영의 분리로 인한 여러 문제를 해결하기 위해 애자일(Agile) 방법론과 함께 발전

💡 개발과 운영이 분리된 환경에서 생긴 문제는 뭐지?
일반적인 개발 운영 체계는 개발팀에 의해 개발이 끝나면, 시스템은 테스트를 거쳐서 운영팀에 이관되고, 운영팀은 해당 시스템을 배포 및 관리 운영하는 체계이다. 이때 운영팀에 이관된 시스템은 개발팀이 일절 관여하지 않게 되고, 운영팀에 의해서 유지된다.
때문에 소통 단절로 인한 프로젝트 진행 속도 저하, 긴급 수정사항 발생 시 느린 대처와 같은 상황이 발생하고, 이러한 문제들이 생기는 과정에서 개발팀과 운영팀 간의 갈등도 생기게 된다.

 

애자일(Agile) 방법론이란, 본래 소프트웨어 개발 방법론 중 하나로 서비스 기능 테스트-릴리즈-피드백-기능 추가 및 개선사항 반영 과 같은 짧은 주기를 빠르게 반복하는 방식

⇒ 이는 또 다른 기존 개발 방법론인 Waterfall과 반대되는 개념으로, Waterfall은 비교적 긴 주기로 프로젝트 계획을 세우고, 전체 기능이 모두 구현된 완성품을 한 번에 내놓는 방식

DevOps는 개발과 운영의 협업을 촉진함과 동시에 애자일(Agile) 방법론을 바탕으로 빠른 피드백과 유연한 개발 프로세스를 강조함

DevOps의 장점

  • 개발팀과 운영팀의 협업 및 커뮤니케이션
    • 기존에 개발팀과 운영팀 사이의 분리된 환경으로 갈등이 생겼던 문제를 해결
  • 지속적인 통합과 배포(CI/CD)를 통한 품질 향상 및 시장 변화에 신속한 대응
  • 자동화
    • 시간 절약과 인적 오류가 감소되는 등의 효율성이 극대화
  • 지속적인 모니터링으로 개선점을 찾아내는 피드백

DevOps 도입절차

  1. 현재 프로세스 분석
    • 기존 시스템을 분석하여 문제점을 파악
  2. 목표 설정
    • 조직의 목표와 일치하는 DevOps 도입 목표 설정 ⇒ DevOps 도입의 방향성 제시
  3. 기술 적용
    • IT 인프라 현황에 적절한 CI/CD 도구를 선택 (AWS, Azure 등)
  4. 최적화
    • DevOps 도입 후에도 지속적인 개선 과정을 통해 최적화

CI/CD란?

지속적인 통합과 배포를 통해 애플리케이션 개발 단계를 자동화하여 고객에게 보다 짧은 주기로 서비스를 제공하고 개선하는 방법

 

CI(Continuous Integration) =  지속적인 통합

  • Code를 통합하는 과정에서 개발자들의 커뮤니케이션 후 Github와 같은 소스 저장소에 저장됨
  • Build 과정을 통해 실행 가능한 패키지 형태로 만들어짐
  • Test 과정을 통해 실행 파일의 동작 여부를 점검

위와 같이 지속적인 통합을 하게 될 경우, 빠른 버그 해결과 소프트웨어의 품질이 향상되며, 새로운 소프트웨어 업데이트를 검증 및 릴리스하는 데 시간이 절약된다는 장점이 존재

 

CD(Continuous Delivery / Continuous Depolyment) = 지속적인 배포

  • Release/Deploy를 진행 (Test에서 문제가 없을 경우)
  • Operate
  • Monitor

위와 같은 파이프라인을 통해 진행된다면 개발자는 언제든 즉시 배포가 가능해짐

 

기업마다 이러한 CI/CD 순서와 내용들은 조금씩 다르며 해당 내용은 이 유튜브 영상에서 참고하여 작성하였다.

CI/CD 도구들

대표적인 오픈소스 CI/CD 도구들은 아래와 같다.

Code

  • Git
  • Eclipse
  • Jira

Build

  • Maven
  • Apache Ant
  • Gradle

Test

  • Se
  • Junit

Release

  • Jenkins
  • Bamboo

Deploy

  • Ansible
  • Terraform
  • Puppet
  • CHEF
  • Saltstack

Operate

  • Nagios
  • Splunk
  • Sensu
  • New Relic
  • Elastic Search

 

 

 

 

참고문헌 

https://aws.amazon.com/ko/devops/what-is-devops/

https://zhfvkq.tistory.com/90

https://www.elancer.co.kr/blog/detail/739

https://bcho.tistory.com/815?category=502863

https://www.youtube.com/watch?v=onOy7WiguMI

https://www.ibm.com/kr-ko/topics/application-lifecycle-management

'Project > Cloud' 카테고리의 다른 글

파이프라인 Security에 집중한 DevOps 구현 - VPC + 서브넷 생성 (3)  (2) 2025.01.27
파이프라인 Security에 집중한 DevOps 구현 - CodeBuild + ECR 생성 (2)  (0) 2025.01.27
파이프라인 Security에 집중한 DevOps 구현 - 아키텍처 개요 (1)  (1) 2025.01.26
무중단 배포란?  (0) 2025.01.12
클라우드란?  (2) 2024.12.05
'Project/Cloud' 카테고리의 다른 글
  • 파이프라인 Security에 집중한 DevOps 구현 - CodeBuild + ECR 생성 (2)
  • 파이프라인 Security에 집중한 DevOps 구현 - 아키텍처 개요 (1)
  • 무중단 배포란?
  • 클라우드란?
Pandyo
Pandyo
판됴의 성장 스토리 'ㅅ'
  • Pandyo
    dyostory
    Pandyo
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • Kategorie (36)
      • Web (1)
        • Web Hacking (10)
        • 언어 (2)
        • 개발 (5)
        • DataBase (2)
      • Cloud (1)
        • CloudGoat (1)
        • 실습 (0)
      • Project (11)
        • Cloud (11)
      • Wargame (4)
        • Dreamhack (1)
        • CTF (1)
        • Wargame site (2)
  • 링크

  • 태그

    WebHacking
    Fargate
    배포 방식
    Injection
    jws
    API
    template
    vulnerability
    devops
    buildspec.yml
    JWT
    canary release
    DBMS
    file
    cloudgoat
    Web
    Rolling Update
    Token
    Internet GateWay
    CI/CD
    ecs
    graphql
    Blue/Green
    Route Table
    무중단배포
    AWS
    target group
    Cloud
    XML
    NoSQL
  • hELLO· Designed By정상우.v4.10.0
Pandyo
DevOps란?
상단으로

티스토리툴바