효율성을 위한 자동화
반복적인 수동 작업을 소프트웨어 자동화로 바꾸면 더 빠르고 일관성 있고 정확하게 작업을 완료할 수 있으며 위험도 줄어듭니다. |
---|
워크로드에는 팀 멤버가 실제로 사람의 지능을 필요로 하지 않는 일상적이고 반복적이며 시간이 많이 걸리는 작업을 수행하는 프로세스가 포함된 워크플로가 있을 수 있습니다. 빈도에 따라서는 이러한 활동에 상당한 시간을 투자하게 될 수도 있고, 워크로드가 늘어남에 따라 더 많은 시간을 투자하게 될 수도 있습니다. 또한 이러한 프로세스는 사람의 입력으로 인해 오류가 발생하기 쉽습니다.
자동화를 통해 시간, 활동, 비용을 절약하고 실수를 피할 수 있습니다.
예제 시나리오
Contoso University는 현재 Azure에 호스트되고 프로덕션 중인 웹 애플리케이션을 개발했습니다. 이 애플리케이션은 Contoso의 학생과 교직원을 위한 온라인 교육 서비스를 제공합니다.
이 기술 솔루션은 Azure App Service, Azure SQL Database, Azure Active Directory, Azure Key Vault 및 Azure DevOps를 기반으로 합니다.
흐름 자동화
복잡성, 활동, 빈도, 정확도, 적시성 및 수명 측면에서 적절한 수준의 기준에 따라 모든 워크플로를 평가합니다. 해당 평가에 따라 워크플로를 자동화하고 예상 수익이 가장 높게 워크플로의 우선 순위를 지정합니다. 중복된 워크플로를 제거하거나 사람의 활동을 정당화할 만큼 가치를 추가합니다.
이러한 방식을 채택하면 팀 역량을 더 높은 가치의 작업에 재투자하고 생산성과 일관성을 높일 수 있습니다.
워크플로 인벤토리를 빌드하면 올바른 작업을 자동화할 수 있습니다. 중복된 작업을 제거하면 복잡성과 오류가 줄어듭니다.
Contoso의 과제
- Contoso University의 팀은 반복적이고, 시간이 많이 걸리고, 오류가 발생하기 쉽거나 가치가 낮은 수동 작업을 자동화하여 운영 프로세스를 개선할 방법을 찾고 있습니다. 이를 통해 팀의 시간과 리소스를 보다 전략적인 작업에 투자할 수 있고, 서비스의 품질과 안정성을 개선하고 잠재적으로 비용을 절감할 수 있습니다.
접근 방식 및 결과 적용
- 이러한 활동을 시작하기 위해 팀은 잠재적으로 자동화가 가능한 수동 작업의 인벤토리를 수행했습니다. 다음으로, 팀은 권장 사항에 제시된 기준(적절한 복잡성 수준, 활동, 빈도, 정확도, 적시성, 수명 등)을 사용하여 작업 목록을 분석하여 자동화에 가장 적합한 응시자를 결정했습니다. 동시에 팀은 장기적으로 자동화 도구를 구입하는 게 나은지, 아니면 자체적으로 자동화를 사용자 지정 빌드하는 게 나은지 평가했습니다.
- 분석 결과, 사용자 계정 관리와 관련된 작업을 자동화하는 데 집중하기로 결정했습니다. 사용자 계정(학생, 교직원, 담당자)을 관리하는 것은 일반적인 업무로, 여기에는 학생 등록 시 새 계정을 만들고, 암호를 다시 설정하고, 개인이 대학을 떠날 때 계정을 삭제하는 작업이 포함됩니다.
- 사용자 계정 관리와 관련된 많은 업무를 자동화함으로써 팀은 이전에 지연되었던 다른 운영 우수성 개선 작업을 시작할 수 있는 충분한 시간을 확보했습니다.
자동화를 위한 디자인
자동화 기능을 지원하도록 워크로드 구성 요소를 디자인합니다.
시스템 디자인에서 자동화가 부족하면 반복적인 작업의 안티패턴이 승격되고, 성장이 느려지며, 기술적인 문제가 누적되는 상황을 방지합니다.
Contoso의 과제
- 이 애플리케이션은 많은 대화형 요소와 애니메이션을 사용한 풍부하고 동적 UI를 갖추고 있습니다. 개발팀은 애플리케이션이 처음 개발된 이래로 자동화된 UI 테스트 도구를 사용한 적이 없으며 수동 테스트에만 의존해 왔습니다.
- 최근 팀은 UI 테스트를 자동화하는 작업을 진행해 왔지만, 많은 어려움에 직면했습니다. 일부 UI 페이지는 너무 동적이고 예측 불가능하며 테스트 사례가 상호 작용해야 하는 일부 필드를 식별할 일관된 방법이 없습니다.
접근 방식 및 결과 적용
- 팀은 UI 구현을 개선하여 테스트와 액세스성을 높이기로 결정했습니다. 테스트 사례를 만들면서 페이지를 수정하여 점진적으로 개선해 나갈 것입니다.
- 각 페이지를 작업할 때 테스트 자동화 도구에서 사용할 수 있는 고유 식별자가 각 필드에 있는지 확인합니다. 또한 의미 체계 HTML, 적절한 레이블, 키보드 탐색 등 접근성 지침과 표준을 따릅니다. 이로 인해 UI가 더 사용자 친화적으로 바뀌고 테스트하기도 더 쉬워졌습니다.
- 자동화된 테스트가 완료되면 일별 빌드 중에 실행되는 테스트 도구 모음에 통합되어 새로운 빌드를 프로덕션에 릴리스하는 데 걸리는 시간이 크게 단축되고, 제품 품질이 개선되며, 개발 비용이 절약됩니다.
자동화는 잘 설계되어야 합니다.
모든 자동화를 워크로드의 중요한 종속성으로 취급합니다. 예상되는 워크로드 증가에 적응합니다. 자동화 툴은 워크로드의 필수적인 부분이며 Well-Architected Framework의 5가지 핵심 요소를 준수해야 합니다.
보안 위협 등의 위험을 견딜 수 있도록 자동화 구성 요소를 설계합니다. 모범 사례를 적용하면 구현의 난잡함을 피할 수 있습니다.
이 종속성이 기능적이고 안전하게 유지된다면 워크로드는 개략적인 보장과 함께 계속 작동할 것입니다.
Contoso의 과제
- 워크로드에는 프로덕션과 매우 유사한 구성을 갖춘 부하 및 성능 테스트 전용 환경이 있습니다. 환경에서 프로덕션과 유사한 조건을 보다 면밀히 시뮬레이션하기 위해 모든 사용자의 중요한 데이터가 익명화되고 마스킹된 프로덕션 데이터베이스의 새 복사본이 매주 월요일 환경이 다시 설정될 때 테스트 환경에 로드됩니다.
- 데이터베이스 로딩 스크립트는 이를 제대로 문서화하지 않았거나 다른 모범 사례를 따르지 않은 전직 개발자가 작성했습니다. 스크립트가 느리게 실행되며 오류나 실패를 정상적으로 처리하지 못합니다.
- 최근에는 프로덕션 데이터베이스가 커지면서 스크립트 런타임이 점점 길어지고 실패하는 경우가 늘고 있습니다. 이러한 지연과 실패는 테스트 실행을 실행하는 팀의 기능에 영향을 미치고 개발 일정을 지연시키고 있습니다.
접근 방식 및 결과 적용
- 팀은 이 도구를 다시 작성하여 핵심 애플리케이션 코드베이스를 개발하는 데 사용되는 표준 개발 사례와 동일 수준으로 만들 때가 왔다고 결정했습니다. 해당 팀은 적절한 보안 및 적절한 오류 처리를 비롯하여 업계에서 인정하는 모범 개발 사례를 따릅니다.
- 성능이 개선되었고, 프로덕션 데이터 세트의 크기에 관계없이 예측 가능한 실행 시간을 생성하도록 기능이 재디자인되었습니다.
- 팀은 핵심 애플리케이션 코드베이스와 동일한 엄격성으로 자동화를 처리하고 WAF 원칙과 권장 사항을 적용하여 안정성, 보안, 성능, 비용 및 운영을 최적화했습니다.