미들웨어 관점에서 CI/CD

안녕하세요. Negator입니다.

미들웨어의 관점에서 CI/CD-Continuous Integration(CI)/Continuous Delivery and Deployment(CD)-에 대해 정의하고자 합니다.

CI/CD란? 소프트웨어 엔지니어링 관점에서 지속적인 통합(CI)과 지속적인 서비스(주)와 지속적인 배포(부)를 조합한 행위입니다. 즉 개발 과정에서 나오는 내용에 대한 통합(CI)과 이를 배포/운영하는 부분(CD)이 유기적으로 수행됩니다. 이를 통해 신속한 검증과 중단 없는 서비스를 하는 것이 목표가 되어 DevOps 환경에서 중요한 부분이 되었습니다.

이러한 CI/CD는 DevOps 환경이 아닌 기존 시스템 운영 환경에서도 사용되었으나 자동화 없이 적용되어 사용되고 있었습니다.

미들웨어의 관점에서 CI/CD 미들웨어의 관점에서는 CI보다 CD에 집중하게 됩니다.CI는 개발과 소스 통합, 빌드라는 관점은 미들웨어를 운영하는 입장에서는 주요 고려사항이 아닙니다.그러나 CD는 개발된 소스를 배포하고 모니터링 등 시스템 운영에 영향을 미치는 사항이기 때문에 주요 고려 대상입니다.

특히 CI/CD 환경에서는 끊임없이 개발/배포가 진행되기 때문에 개발자 영역과 운영자 영역이 서로 충돌하게 됩니다.DevOps로 진행됨에 따라 미들웨어는 개발자 영역에 포함되지만 개발자 분들은 미들웨어를 컨트롤하는 데 부담을 느끼고 있으며 운영측에서는 잦은 배포로 인해 배포 지원에 의한 업무 과중화 등이 발생하고 있습니다.

그렇다고 CI/CD 자동화와 답이라고 하기 위해서는 개발/검증/운영이 모두 동일한 소스 및 설정을 가지고 있지 않을 경우 일부 설정으로 인한 휴먼 오류가 발생할 수 있으므로 자동화에도 주의가 필요합니다. 실제로 저는 이와 비슷한 상황을 많이 접한 적이 있습니다.

이처럼 CI/CD를 구축하기 위해서는 개발자 영역과 운영자 영역에서 서로 돕고 양보하는 부분이 필요합니다.

다음 문서에서는 개발 계정과 운영 계정이 다른 경우에 CI/CD 환경을 구축하고 서로 어떤 부분을 돕고 양보해야 하는지를 게시합니다.

감사합니다.

PS. 이와 관련하여 다른 경험이나 의견이 있으시면 공유 부탁드립니다.(나의 경험에 의한 내용으로 여러분의 경험과 다를 수 있습니다. 그렇기 때문에 여러분의 의견도 중요합니다.)

error: Content is protected !!