soowanlog

DevOps 본문

DevOps

DevOps

개발자솬
DevOps

DevOps

개발자솬 2024. 3. 14. 16:53
728x90
반응형
  • DevOps란?

개발(Development)과 운영(Operations)의 합성어로 SW 개발과 IT 운영 사이의 커뮤니케이션, 협업, 자동화, 통합을 강조하는 문화와 방법론을 의미합니다.

전통적으로 SW 개발과 IT 운영은 서로 다른 영역으로 처리되어 왔지만 DevOps는 이러한 구분을 없애고 두 영역 간의 협력과 통합을 강조하고 있습니다.

 

DevOps는 자동화를 통해 반복적이고 기계적인 작업들을 자동으로 처리하여 인간의 실수를 최소화하고 작업 효율성을 향상합니다.

자동화된 테스트는 코드의 안정성과 신뢰성을 검증하며 지속적인 통합과 지속적인 배포를 통해 신규 코드 변경사항을 자동으로 운영 환경에 배포합니다.

  • DevOps의 핵심 원칙

- 자동화(Automation) :

반복적인 작업과 프로세스를 자동화하여 개발 및 배포 과정을 빠르고 효율적으로 만듭니다.

특히 자동화된 테스트를 통해 코드의 안정성과 신뢰성을 검증할 수 있습니다.

자동화된 테스트는 개발자들에게 빠른 피드백을 제공하여 문제를 빠르게 발견하고 수정할 수 있도록 돕습니다.

 

- 협력(Collaboration) : 

DevOps에서는 개발팀과 운영팀 간의 소통과 협력을 강화하여 문제를 빠르게 해결하고 SW 개선을 지속적으로 수행합니다.

이를 위해 Figma, Slack 등 여러 도구들을 사용하여 팀 간의 원활한 소통과 지식 공유를 촉진합니다.

 

- 코드화된 인프라(Infrastructure as Code, IaC) :

인프라를 코드로 관리하여 인프라 변경을 추적하고 관리합니다.

자동화된 인프라 관리는 확장성과 일관성을 보장하며 SW 배포와 운영에 있어 인프라 구성을 효율적으로 처리할 수 있습니다.

 

- 지속적인 통합(Continuous Integration, CI)  :

개발자들이 작성한 코드 변경 사항들을 지속적으로 병합하고 자동화된 빌드 및 테스트 프로세스를 통해 지속적으로 통합하는 방식입니다.

이를 통해 높은 품질을 유지하여 빠르게 배포할 수 있습니다.

 

- 지속적인 배포(Continuous Deployment, CD) :

CI를 거친 코드 변경 사항들이 자동으로 실제 운영 환경으로 배포되는 방식을 말합니다.

이를 통해 개발팀과 운영팀 간의 협업 비용이 줄어들고 새로운 기능을 사용자에게 빠르게 제공할 수 있습니다.

 

- 모니터링 및 로깅(Monitoring and Logging) :

애플리케이션 및 인프라의 상태를 지속적으로 모니터링하고 로그를 수집하여 시스템 동작을 추적하고 문제를 진단하는 것은 중요합니다.

이를 통해 시스템의 가용성을 높이고 문제를 신속하게 해결할 수 있습니다.

  • DevOps의 주요 목표

- 빠른 SW 배포 :

DevOps는 CI/CD를 통해 새로운 기능과 버그 수정을 빠르게 사용자에게 제공합니다.

이를 위해 개발팀과 운영팀은 형렵하여 코드 변경 사항들을 자동으로 테스트, 빌드하고 운영 환경으로 자동으로 배포합니다.

이러한 방식으로 개발 주기를 단축하고 사용자의 요구에 신속히 대응할 수 있습니다.

※ CI/CD 파이프라인

코드 체크아웃, 빌드, 테스트 및 배치를 자동화하는 툴.
Jenkins는 이 카테고리에서 가장 인기 있는 오픈 소스 툴.

 

- 안정성과 신뢰성 확보 :

DevOps는 자동화된 테스트와 모니터링을 통해 SW의 안정성과 신뢰성을 유지합니다.

자동화된 테스트와 모니터링을 통해 시스템 장애를 최소화 하고 사용자에게 신뢰성 있는 서비스를 제공할 수 있습니다.

※ 테스트 자동화 프레임워크

단위, 통합, 기능, 보안 테스트 등을 자동화하기 위한 SW 툴, 라이브러리 및 베스트 프랙티스가 포함.
이들 중 일부는 AI를 사용하여 코드 변경사항에 대한 응답으로 테스트를 자동으로 재구성 함.
유명한 오픈소스 테스트 자동화 프레임워크에는 Selenium, Appium, Katalon 등이 있음.

※ 모니터링 툴

시스템 문제를 식별하고 해결하는데 도움을 줌.
오픈 소스 모니터링 툴에는 Datadog, Nagios, Prometheus 등이 있음.

 

- 자동화 :

DevOps는 자동화를 통해 인간의 개입을 최소화 하고 일관성과 정확성을 보장합니다.

이는 시스템을 안정적으로 유지하고 개발팀과 운영팀이 더 많은 시간과 노력을 문제 해결에 집중할 수 있도록 도와줍니다.

 

- 협업 강화 : 

DevOps는 개발팀과 운영팀의 경계를 허물고 지식과 경험을 공유하며 공동의 목표를 이루기 위해 협업합니다.

또한 보안, 품질, 데이터 분석 등 다양한 역할의 팀들과 협력하여 애플리케이션의 품질과 기능을 향상하고 새로운 기능을 개발합니다.

※ 협업 소스 코드 저장소

여러 개발자들이 동인한 코드 베이스에서 작업할 수 있도록 허용하는 버전 제어 코딩 환경.
코드가 저장소로 Commit될 때 자동으로 다음 단계로 이동할 수 있도록 코드 저장소는 CI/CD, 테스트 밑 보안 툴과 통합 되어야 함.
오픈 소스 코드 저장소에는 Github, GitLab 등이 있음.

참    고    자    료

- 데브옵스(DevOps)란? | 테크원

 

- DevOps란? | IBM

728x90
반응형