Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- spring
- 생성자
- 시계열디비
- 프로그래머스
- 알고리즘
- 완전탐색알고리즘
- 정보처리기사필기
- 정처기공부
- java
- 어노테이션
- Java8
- CICD
- 롬복사용시주의할점
- PULL방식아키텍쳐
- API
- 정처기
- 빌드스크립트
- 롬복
- git
- Groovy문법
- 롬북
- 빌드자동화도구
- 무중단배포
- 서버
- Docker
- 정보처리기사
- controller
- 정처기필기
- aws
- 자바
Archives
- Today
- Total
우당탕탕 개발일지
CICD란? crontab 사용하여 자동 배포해보기(CD) 본문
CICD란?
애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법
기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포
새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결하기 위한 솔루션
CI (Continuous Integration : 지속적인 통합)
- 빌드, 테스트 자동화 과정
- 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결 할 수 있음
CD (Continuous Deployment : 지속적인 배포)
- Continuous Delivery : 지속적인 서비스 제공
- 배포 자동화 과정
- 코드 변경이 빌드, 테스트 단계를 성공적으로 통과하면 개발자의 수동 개입 없이 해당 변경 사항이 프로덕션에 자동으로 배포됨 👉 품질 저하 없이 최대한 빨리 사용자에게 새로운 기능을 제공할 수 있음
CI / CD 의 종류
- Jenkins
- GitLab
- etc...
crontab이란?
- 리눅스에서 일정주기, 특정시간 명령을 실행할 때 사용하는 것
crontab 명령어
crontab -e
# crontab 작성
# 처음 작성 시 편집기 선택 화면이 나옴 -> [2] vim 사용하면됨([1]~[4] 편집도구를 선택할 수 있음)
$ crontab -l
# crontab 작업 리스트 보기
$ crontab -r
# crontab 모든 작업 삭제
# 출력결과를 파일에 저장하기 '>'
# 최근 1건만 출력 -> 덮어쓰기됨
# 출력결과를 파일에 저장하기 '>>'
# 모든 기록이 출력됨 -> 이어쓰기
$ docker ps > dps.log
$ docker ps >> dps.log
crontab 작성
$ * * * * * command
# 매분 test.sh 을 수행
$ * * * * * /home/user/test.sh
# 매일 21시 30분에 수행
$ 30 21 * * * /home/user/test.sh
# 매주 일요일 21시 30분에 수행
$ 30 21 * * 7 /home/user/test.sh
# 매월 2일 11시 11분에 수행
$ 11 11 2 * * /home/user/test.sh
- 분(0-59)
- 시(0-23)
- 일(1-31)
- 월(1-12)
- 요일(0-7 : 0 / 7 일요일, 1 월요일 ...)
👉 실행 주기를 정한 다음 수행할 명령어(command)를 입력
실습)
- 매분마다 hello를 찍는 crontab 작성
1. crontab -e 로 crontab 작성(저장하고 나오기 :wq! )
2. crontab -l 로 작성한 crontab 보기
3. hello가 매분마다 찍히는지 확인하기 위해 .log 파일을 만들어 출력여부 확인하기
/home/ubuntu 위치에 echo.log 파일 생성하고 해당 파일에 hello를 출력하기(>, 덮어쓰기는 >>)
4. 출력 결과 확인을 위해 파일 내용 보기
# cat [파일경로][파일명]
cat /home/ubuntu/echo.log
그 외 명령어
시스템 시간 변경(sudo 권한 필요)
$ ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
현재 시간 정보 확인
$ date
'Network' 카테고리의 다른 글
[Linux] ✍ 자주쓰는 리눅스 명령어 정리 (1) | 2023.01.19 |
---|---|
Nginx(엔진엑스) 개념정리 및 설치, Blue/Green 무중단배포란? (0) | 2023.01.16 |
🔌 통신방식 - 폴링(Polling), 스트리밍(Streaming), SSE (0) | 2022.12.19 |
AWS(아마존 웹 서비스) (0) | 2022.11.25 |
🐳도커(Docker)란? (0) | 2022.11.22 |