Offcanvas

개발자 / 애플리케이션

'SaaS로부터 배우기'… 데브섹옵스를 개선하는 원칙 12가지

2024.05.21 Isaac Sacolick  |  InfoWorld
SaaS(Software as a Service) 기업은 애플리케이션 안정성, 확장성, 보안 및 고객 만족도 측면에서 선두에 서있다. 데브섹옵스(devsecops) 리더가 적용할 수 있는 SaaS의 원칙 12가지를 소개한다.
 
ⓒ Getty Images Bank

필자는 SaaS 기업의 CTO 역할에서 스타트업 개발 프로세스, 기술 및 문화를 조직에 도입하는 것을 목표로 하는 포춘 100대 기업의 사업부 CIO로 자리를 옮긴 적이 있다. 경영진은 고객 대면 애플리케이션, 획기적인 분석 기능, 보다 자동화된 워크플로우 개발의 중요성을 인지하고 있었다.

이때 애자일 개발과 민첩한 아키텍처에 대해 많은 교육을 진행했다. 하지만 데이터센터에 안정적이고 성능이 뛰어나며 안전한 애플리케이션을 배포하는 방법에 대해서도 배울 점이 많았다. 클라우드 컴퓨팅과 데브섹옵스가 등장하기 전의 일이다.

오늘날 많은 기업이 강력한 소프트웨어 개발 및 데브옵스(devops) 역량을 갖추고 있지만, SaaS 기업은 애플리케이션을 확장하고, 이질적인 고객 사용 사례를 처리하고, 성능 및 보안 인시던트가 고객 문제로 번지기 전에 식별하는 데 있어 전문성을 더 강화하고 있다.

SaaS 기업 주퍼(Zuper)의 CTO인 라가브 구루마니는 "CTO는 기능적으로 견고할 뿐만 아니라 일관되게 사용할 수 있고 초고속이며 보안 위협에 안전한 제품의 가치를 잘 알고 있다. CTO는 안정성, 성능, 보안이라는 3가지 요소의 균형을 맞추고 반복적인 접근 방식의 중요성을 강조해 기업이 그 역량을 갖추도록 지원할 수 있다"라고 말했다.

이 글에서는 SaaS 기술 리더가 추천하는, 비즈니스 IT 리더가 데브섹옵스에 적용할 수 있는 12가지 원칙을 소개한다. 원칙은 3개 영역으로 구분했다.

• 고객 우선 사고방식을 채택하는 것부터 시작해 '시프트 레프트' 운영 관행을 요구 사항과 개발에 적용한다.
• 데브섹옵스팀은 특히 사용량이 많고 사용자 유형이 많은 애플리케이션의 안정성과 성능을 보장하기 위해 단위 테스트를 넘어 더 많은 테스트 자동화를 수행해야 한다는 점을 인식한다.
• SLO(서비스 수준 목표)를 정의하고 통합 가시성, 모니터링 및 클라우드 자동화를 위한 도구를 활용해 더 높은 성능과 안정성을 얻는다.

1. 고객 우선 사고방식 채택
고객 중심적인 사고방식과 고객의 니즈에 대한 민감도를 키우는 것은 고객을 유지하고 성장을 지원하기 위해 반드시 필요하다. 많은 기업이 고객을 대상으로 애플리케이션을 개발하지만, 데브섹옵스팀도 내부 애플리케이션을 개발할 때 동료 직원을 고객으로 대하는 방법을 배워야 한다.

런치다클리(LaunchDarkly)의 최고 제품 책임자인 클레어 보는 고객 우선 사고방식에 "고객 문제를 신속히 파악하고 해결하는 데 있어 타협하지 않는 태도"가 포함된다고 말했다. 그는 "엔지니어는 제품, 디자인, 영업, 지원만큼이나 고객 중심적이야 한다. 이는 엔지니어가 고객과 직접 대화하고 고객처럼 제품을 사용하며, 고객을 대신해 높은 수준의 기준을 제시해야 한다는 의미다. 경험에 따르면 고객과의 긴밀한 관계는 탄력적인 문화와 중요한 상관 관계가 있었다"라고 설명했다.

권장 사항: 데브섹옵스팀은 최종 사용자와 정기적인 미팅을 진행해 애플리케이션 사용 방식을 관찰하고 애플리케이션 성능을 개선할 방법에 귀 기울여야 한다.

2. 버전 관리를 애자일 유저 스토리에 연결
대부분의 기업이 버전 관리(version control)를 도입하고 있지만, 코파도(Copado)의 에반젤리즘 담당 수석 부사장인 데이비드 브룩스는 개발자들이 리포지토리의 브랜치 관리에만 너무 집중하는 경향이 있다고 지적했다. 그는 "최신 개발은 애자일을 기반으로 하며, 많은 데브옵스 도구가 유저 스토리를 바탕으로 변경 사항을 직접 관리한다"라고 말했다.

브룩스는 애자일 개발팀이 유저 스토리에서 시작해 변경 사항을 추적한다면 가치 제공에 더 집중하고 테스트 중심 개발을 지원하며 자동화된 병합 충돌을 해결할 수 있다고 말했다.

권장 사항: 데브섹옵스팀은 애자일 도구와 버전 관리 간의 워크플로우 연결 외에도 CI/CD 파이프라인 표준화, 기능 플래그를 사용한 개발, 카나리아 릴리스 전략 활용 등을 고려해야 한다.

3. 알파 그룹에 새 기능 출시
데브섹옵스 자동화에 투자하면 소규모 사용자 그룹에 기능을 출시하고 기능 구현에 대한 A/B 테스트를 수행할 때 유연성을 확보할 수 있다. 자동화는 지속적인 배포도 지원할 수 있지만, 과도한 투자를 하기 전에 기능을 검증하고 개발 중 최종 사용자의 피드백을 얻을 수 있다는 점이 더 중요하다.

콜레일(CallRail)의 공동 창립자이자 CTO인 엘리엇 우드는 "새로운 기능을 알파 그룹에 공개적으로, 빠르게 테스트해 피드백을 얻고 있다. 팀은 제한된 고객 그룹에 작은 변경 사항을 적용하고 개별 실험의 위험을 최소화할 수 있기 때문에 빠르게 움직일 수 있다"라고 말했다.

권장 사항: 알파 테스트는 조직 내부에서, 베타 테스트는 사용자 환경에 초점을 맞춰 진행하는 오랜 소프트웨어 개발 관행이다. 데브섹옵스는 자동화 및 확장성 측면에서 기술 운영을 최적화하도록 지원한다. 알파 및 베타 프로그램은 참가자를 모집하고, 목표를 전달하며, 실행 가능한 피드백을 얻고, 보상을 제공하는 것이 핵심이다.

4. 설계 단계부터 보안 구현
강력한 정보 보안 프로그램을 갖춘 기업은 많지만, 소프트웨어 개발 프로세스에서 설계 단계부터 보안을 구현하기란 여전히 어려운 과제다. 보안 모범 사례에는 침투 테스트 자동화, CI/CD 파이프라인에서의 코드 스캔 트리거, 인젝션, 인증 결함, 사이트 간 문제, API 유출 및 액세스 제어 중단으로부터 API 보호 등이 포함된다.

이뮤타(Immuta)의 CTO인 스티브 토우는 "설계 단계부터 보안을 구현하고 제품 개발 초기에 보안을 적용하자 취약점 관리 관점에서 백엔드 유지 및 관리 업무가 눈에 띄게 줄어들었다"라고 말했다.

권장 사항: CIO, CISO 및 제공 관리자는 프로덕션 경로를 자동화할 때 필요한 보안 관행, 테스트 및 메트릭에 있어 협상 불가능한 요구 사항을 명확하게 정의해야 한다.

5. 단위 테스트가 불충분하다는 인식
자동차 운전자는 타이어 공기압을 확인하고, 오일 수준을 확인하고, 엔진에 대해서도 수많은 테스트를 진행할 수 있다. 하지만 자동차가 실제로 곡선 도로나 요철 같은 다양한 도로 조건을 달릴 때도 운전자의 기대에 완전히 부응할 수 있을까?

소프트웨어 애플리케이션도 마찬가지다. 단위 테스트는 구성 요소와 인터페이스의 유효성을 검사하는 데는 도움이 되지만, E2E(End-to-End) 기능이나 사용자 경험의 유효성을 검사하는 데는 충분하지 않을 수 있다.

소나(Sonar)의 개발자 관계 커뮤니티 책임자인 피터 맥키는 "개발자는 시프트-레프트 접근 방식을 수용하면서 종종 기능이 올바르게 작동하는지 확인하기 위해 단위 테스트를 우선시한다. 하지만 단위 테스트에만 의존하면 품질 보증에 공백이 생겨 눈에 띄지 않는 버그가 발생할 수 있다. 이는 배포 시에 소프트웨어 품질과 보안을 모두 손상시킨다"라고 설명했다.

권장 사항: 많은 도구가 프론트엔드 사용자 경험 테스트를 자동화할 수 있다. 애자일 개발팀이 강력한 기능 테스트를 보장하려면 책임을 할당하고, 기술을 개발하고, 시간을 투자하는 것을 핵심 요구 사항으로 삼아야 한다.

회원 전용 콘텐츠입니다. 이 기사를 더 읽으시려면 로그인 이 필요합니다. 아직 회원이 아니신 분은 '회원가입' 을 해주십시오.

Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.