소프트웨어 개발의 초기 단계에서 코딩 자체부터 AI 및 ML 도구는 이미 데이터 세트를 기반으로 자동화 된 코드 검토 및 코드 분석을 수행할 수 있다. 이는 인간의 개입을 줄이는 데 도움이...

이미지:본지
이미지:본지

최근 데브옵스(DevOps)에서 인공지능과 머신러닝 기술이 부상하고 있다. 이러한 조합은 기존 DevOps 도구 스택에 통합하기 위한 강력한 후보가 되고 있으며, 의사 결정 프로세스 개선에서 자동화 된 작업 및 코드 품질 향상에 이르기까지 DevOps의 미래는 AI 및 ML의 도움으로 훌륭한 도구로 거듭나고 있다.

소프트웨어 개발의 초기 단계에서 코딩 자체부터 AI 및 ML 도구는 이미 데이터 세트 (기계가 작동하고 응답하는 ML 알고리즘에 대한 입력)를 기반으로 자동화 된 코드 검토 및 코드 분석을 수행할 수 있다. 이는 인간의 개입을 줄이는 데 도움이 된다.

또한 사용자는 코드 관리 및 공동 작업 도구를 사용하여 팀 구성원 간에 검토 작업을 자동으로 분산할 수 있다. 최종 결과는 이러한 알고리즘이 쉽게 발견할 수 있는 코드 결함, 보안 문제 및 코드 관련 결함을 조기에 발견하는 것이다. 이러한 도구는 코드 검토 내에서 노이즈 감소, 결함 감지 외에도 자동화 된 코드 검토는 코딩 및 보안 표준을 적용한다.

이같은 코드 분석 및 개선과 같은 AI 및 ML로 구동되는 스마트 도구는 수백만 줄의 코드로 채워진 리포지토리(Repository)에서 학습할 수 있다. 그런 다음, 이러한 도구는 코드의 의도를 이해하고 개발자가 변경한 사항을 확인할 수 있다. 여기에서 이러한 스마트 도구는 분석하는 모든 코드 줄에 제안할 수 있다.

일반적으로 사람들은 코드 분석에 다른 접근 방식을 취한다. 오픈 소스 프로젝트에서 수백만 건의 코드 리뷰를 분석한 후 머신러닝 도구로 구동되는 코드 성능은 성능에 초점을 맞추고 애플리케이션 응답 시간을 손상시키는 가장 비싼 코드 라인을 찾는 데 도움이 된다. 이러한 도구는 리소스 누수, 잠재적인 동시성 경쟁 조건 및 낭비된 CPU 주기와 같은 코드에서 문제를 찾을 수 있으며 코드 검토 단계 및 애플리케이션 성능 모니터링 단계에서 CI / CD 파이프라인과 통합될 수도 있다.

이 동일한 범주에서 새로운 기능을 코딩한 후 개발자는 AI 및 ML로 구동되는 자동화 된 단위 테스트 생성을 살펴볼 수 있다. 이를 통해 스프린트 내에서 개발자의 시간을 약 20 % 절약할 수 있다고 한다.

빌드 후 승인 및 통합 코딩의 다음 단계는 기능 및 비 기능 테스트이다. 여기에서 AI 및 ML을 사용한 코드 생성과자가 치유 테스트 코드 및 유지 관리가 DevOps 공간에서 현실화되고 있다.

테스트 자동화는 큰 병목 현상이 될 수 있으며 종종 프로젝트가 지연되는 이유로 신뢰할 수 없는 비정상적인 자동화는 테스트 프로세스를 느리게 한다. 신뢰할 수 없는 테스트 자동화의 근본 원인 중에는 테스트중인 앱 및 테스트 내에서 사용되는 요소에 대한 지속적인 변경과 같은 것들이 있다. 스마트 기술은 이러한 변경 사항을 식별하고 테스트를 조정하여 보다 안정적이고 신뢰할 수 있도록 도와준다.

또한 강력한 테스트 코드를 만드는 기술은 비용이 많이 들고 특히 모바일 및 웹과 같은 디지털 앱에서 항상 사용할 수 있는 것은 아니다. 여기에서 AI 및 ML 테스트 도구는 앱 흐름, 화면 및 요소를 학습하여 코드가 거의 또는 전혀 없이 자동으로 테스트를 생성할 수 있다. 도구는 각 테스트 실행 사이에 자가 치유될 수 있다.

로우 코드 또는 코드 없음 도구를 사용하면 팀 구성원이 테스트 자동화 생성 활동에 참여할 수 있다. 로우 코드 또는 코드 없음 도구를 사용하면 더 많은 팀원이 테스트 자동화 생성 활동에 참여할 수 있다. 또한 개발자가 혁신적인 새 기능을 만드는 것과 같은 더 긴급한 활동에 집중할 시간을 확보할 수 있다.

아울러 AI 및 ML을 사용하는 테스트 자동화의 추가 계층은 새롭게 부상하고 있는 로봇 프로세스 자동화(RPA)이다. 이러한 기술은 대규모 조직 내에서 많은 수동적이고 시간 소모적이며 오류가 발생하기 쉽고 자동화하기 어려운 프로세스를 자동화하는 데 사용할 수 있다.

테스트 실행이 완료되면 AI 및 ML 테스트 영향 분석(Test Impact Analysis, TIA) 도구는 의사 결정권자가 다음 빌드로 진행해야 하는 테스트, 다루지 않는 영역 등에 대해 안내할 수 있다. 동일한 범주의 테스트에서 AI 및 ML 알고리즘은 사고 테스트 데이터를 기반으로 실패의 근본 원인 분석을 식별하고 상당한 양의 평균 해결 시간(Mean Time To Resolution. 이하, MTTR)을 절약할 수 있다.

최근 DevOps 프로세스 후반부, 프로덕션에 대한 코드 배포 전후에 AI와 ML이 AIOps 내에서 새로운 기술을 주도하고 있다. AIOps 완전한 솔루션은 스마트 애플리케이션 성능 모니터링(APM)을 포함 할뿐만 아니라 IT 인프라 모니터링(IT Infrastructure Monitoring) 및 IT 서비스 모니터링(IT Service Monitoring)에도 활용한다. 이를 통해 빅데이터 및 고급 최신 소프트웨어 아키텍처(MS 서비스, 클라우드 등)에 대해 실행할 수 있는 포괄적인 생산 및 운영 통찰력 분석 계층을 구축한다.

특히, AI 능력으로 팀은 애플리케이션의 서비스 상태를 결정하는 데 집중하고 프로덕션 데이터에 대한 제어 및 가시성을 확보할 수 있다. 이를 통해 DevOps 팀은 자동화 된 사고 관리를 사용하여 실시간으로 MTTR를 신속하게 처리할 수 ​​있다. 여기에서 AI와 ML은 프로덕션의 앱 내에서 관찰 가능성, 추세 및 예측을 로깅하는 측면에서 훨씬 더 많은 일을 할 수 있다.

마지막으로 AIOps 포트폴리오 내에서 이러한 도구를 사용하여 팀은 서비스 중단 시간을 줄이고 예방할 수 있다(예측 경고). 또한 지원 티켓 해결을 촉진하고 대용량 로그 파일을 더 빠르게 분석하며 근본 원인 및 범주(보안, 네트워크, 서버 등)를 식별할 수 있다. DevOps 및 휴먼 엔지니어링은 결코 사라지지 않지만 자동화 및 유지 관리가 어려운 지루하고 오류가 발생하기 쉬운 활동을 최적화하고 신속하게 처리하는 데 도움을 줄 수 있다.

저작권자 © 인공지능신문 무단전재 및 재배포 금지