2023. 4. 20. 20:16ㆍ부트캠프/DevOps (TIL)
블로그를 시작한지 얼마 안됐을 때 CI/CD 파이프라인에 대해 포스팅한 적이 있습니다. 현 시대에서 CI/CD파이프라인은 개발과 배포에 있어 중요한 역할을 수행하고 DevOps에 대해 공부를 한다면 좀 더 면밀히 살펴봐야 한다 생각합니다. 오늘은 CI/CD 리뷰와 지속적 통합에 대한 개념, 그리고 테스트 섹션에 대해 공부하고 GitHub Action을 이용한 빌드 및 테스트 자동화 까지 진행해보도록 하겠습니다.
먼저 서비스가 사용자에게 도달하기까지 어떤 과정이 이루어지는지에 대해 전통적인 소프트웨어 전달방식과 클라우드 서비스 전달 방식의 비교로 설명하겠습니다.
전통적인 소프트웨어 전달방식
전통적인 소프트웨어 전달 방식은 서비스 출시에 대한 기한을 미리 정해놓고 그 기한에 맞춰 소프트웨어를 완성하는 방식으로 주로 폭포수 모델 즉 Waterfall 모델로 많이 알려져 있습니다.
이 방식의 문제점은 명확하기 보여지는데 크게 두 가지로 말할 수 있습니다.
이러한 문제점이 많이 발생되자 사람들은 소프트웨어 안정성을 개선하기 위해 노력을 했습니다
바로 베타 버전 등을 통해 테스트를 걸쳐 정식 배포하기 전에 버그를 최대한 많이 잡아내려 했습니다.
하지만 결국에는 전통적인 소프트웨어 전달방식이 가지는 특징 때문에 점차 사용이 감소되지만 꾸준히 사용되는 분야도 있습니다. 특징은 다음과 같습니다.
이번에는 클라우드 서비스의 전달 방식에 대해 알아보겠습니다.
클라우드 서비스의 전달방식은 '고객의 요구에 민첩하게 대응하여 지속적 전달을 수행하는 애자일(Agile)모델'을 기반으로 합니다.
주로 SaaS(Software as a Service)로 알려져 있으며 말 그대로 서비스로서의 소프트웨어로 브라우저에 접속하기만 해도 새 버전을 즉시 사용할 수 있고 매일매일 진화하는 소프트웨어입니다.
이 방식의 장점은 다음과 같습니다
이러한 장점을 달성하기 위해 전달 워크플로가 수립되어야 하며, 자동화가 필수적입니다.
코드를 빌드하고 테스트 릴리즈 그리고 배포까지의 CI/CD 파이프 라인을 구성하는 것 역시 DevOps의 영역입니다.
즉 DevOps는 서비스 전달/배포 Workflow를 구성할 수 있어야 합니다.
25_Study(빌드와 언어별 빌드 도구) (0) | 2023.04.21 |
---|---|
25_Study(유용한 CI 도구들) (2) | 2023.04.20 |
24_Study(ELB, CloudFront, Route53) (0) | 2023.04.20 |
23_Study( 3 Tier Architecture RDS ) (0) | 2023.04.20 |
23_ Study( 3 Tier Architecture S3 버킷 생성 및 정적 웹 사이트 호스팅, 정책 설정 ) (0) | 2023.04.20 |