DevOps란?
소프트웨어의 개발(Development)과 운영(Operations)의 합성어
소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다.
소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적
CODE
JIRA
- 애자일 방법론을 얘기할 때 꼭 언급되는 툴이 바로 아틀라시안의 지라(Jira)
- 버그 및 이슈 추적, 프로젝트 관리에 최적화된 프로젝트 관리형 협업툴 지라는 스타트업뿐만 아니라 최근에는 대기업에서도 활발하게 사용하고 있으며, 업무 효율을 높여 경쟁력 있는 조직으로 변화하는데 필수적인 툴로 손꼽히고 있다
GIT
BUILD
maven
gradle
- 빌드 속도가 Maven에 비해 10~100배 가량 빠름
- 의존성이 늘어날 수록 성능과 스크립트 품질의 차이가 심해질 것이다.
- 스크립트 길이와 가독성 면에서 gradle이 우세하다.
- 빌드와 테스트 실행 결과 gradle이 더 빠르다. (gradle은 캐시를 사용하기 때문에 테스트 반복 시 차이가 더 커진다.)
TEST
Selenium
JUnit
대부분 백엔드 (특히 API) 같은 경우에는 JUnit과 같은 훌륭한 유닛 테스트 툴로 테스트를 하면 된다. 그것을 넘어 화면 UI에서 발생하는 시용자 기반 시나리오 테스트를 해야 한다면 아마도 셀레니움 테스트를 피할 수 없을 것이다.
Release
Jenkins
Deploy
docker
AWS
Operate
Kubernates
Monitor
Sensu
CI/CD (지속적 통합, 지속적 전달)
CI : 소프트웨어의 개발과 배포, 운영에 있어서 협업중 개발코드에 대한 변경사항이 지속적으로 통합되고, 관리되는 환경은 매우 중요
CD : 지속적인 서비스 제공, 배포를 의미하는데, 공유레포지토리를 자동으로 Release하며 개발자의 변경사항이 배포 Production에 연결되어 적용되는 환경을 의미함.
CI/CD 자동화를 위한 파이프라인을 구성하고 모니터링을 구성하여 개발자들의 개발방향을 가이드해주어 신속한 배포로 보다 안정적이고 신뢰성높은 서비스를 제공하는데 기여하며 Jenkins / Travis CI / Bamboo 가 있다.
'CS' 카테고리의 다른 글
TLS/SSL에 대해 (0) | 2022.12.31 |
---|---|
네이밍 컨벤션 ( Naming Convention ) in Java (0) | 2022.12.27 |
GitHub, GitLab의 차이점 (0) | 2022.12.26 |
CS 면접 준비(데이터베이스) (0) | 2022.12.24 |
CS핵심이론(소프트웨어 공학, 프로그래밍, 빅데이터, 운영체제) (0) | 2022.12.12 |