DevOps란 무엇인가?
Source: Dev.to
소개
온라인에서 “What is DevOps?”를 검색하면 복잡한 정의가 많이 나옵니다.
이 글에서는 DevOps를 처음부터 차근차근 설명합니다.
DevOps = Dev (Developers) + Ops (Operations).
이는 팀이 다음을 할 수 있게 도와주는 문화, 프로세스, 그리고 도구들의 집합입니다:
- 소프트웨어를 더 빠르게 구축
- 소프트웨어를 제대로 테스트
- 소프트웨어를 안전하게 배포
- 문제를 신속하게 해결
- 싸우지 않고 협업
DevOps는 이전에 거의 소통하지 않던 두 팀 사이의 다리와 같습니다.
DevOps 이전
- 개발자가 코드를 작성 → 운영팀에 넘김
- 운영팀은 코드가 작동하지 않는다며 거절
- 개발자는 “내 환경에서는 작동한다”라고 답변
- 결과: 지연, 논쟁, 느린 릴리즈
DevOps 도입 후
- 양 팀이 처음부터 협업
- 라이프사이클 전반에 자동화 도구 사용
- 마지막에 놀라움이 없음
- 더 빠른 릴리즈, 버그 감소
주요 장점
- Automation – 수작업을 줄여줌
- Fast delivery – 업데이트를 빠르게 배포
- Continuous testing – 버그를 조기에 발견
- Monitoring – 시스템을 항상 감시
- Team collaboration – 하나의 팀처럼 작업
인기 도구
- Git / GitHub
- Docker
- Jenkins
- Kubernetes
- Terraform
- Ansible
- AWS / Azure / GCP
이 도구들은 코드부터 서버, 배포까지 모든 과정을 자동화하는 데 도움을 줍니다.
DevOps 워크플로우
- Plan – 무엇을 만들지 결정
- Code – 애플리케이션 작성
- Build – 실행 파일 생성
- Test – 버그 확인
- Release – 배포 준비
- Deploy – 서버에 배포
- Monitor – 지속적인 감시
- Feedback – 학습하고 개선
이 사이클은 지속적으로 반복됩니다.
예시: 음식 배달 앱
- 개발자가 새로운 기능 추가
- CI/CD 파이프라인이 자동으로 앱을 테스트
- Docker가 애플리케이션을 패키징
- Kubernetes가 프로덕션에서 컨테이너 관리
- 모니터링이 API가 느려지면 팀에 알림
이 설정으로 업데이트를 매주 문제 없이 릴리즈할 수 있습니다—DevOps가 완벽히 작동하는 사례입니다.