컨텐츠 바로가기

03.29 (금)

애플리케이션 성능을 높이기 위한 데브옵스 베스트 프랙티스 7가지

댓글 첫 댓글을 작성해보세요
주소복사가 완료되었습니다
데브옵스(DevOps)는 생산 중인 애플리케이션 배포와 신뢰성을 개선하기 위한 개발자와 운영팀 사이의 협업과 관련된 개발 문화다. 데브옵스 베스트 프랙티스의 보편적인 목적은 더욱 탄탄한 자동화를 통해 개발팀과 운영팀의 경계에서 관리되는, 오류에 취약한 수동 프로세스를 대체하는 것이다. 여기에는 CI/CD(Continuous Integration and Continuous Delivery)를 통한 배포 파이프라인 자동화, 컨테이너를 통한 구성 표준화, 코드형 인프라 구성 등이 포함된다. 운영 측면에서 애플리케이션의 신뢰성을 높이는 데브옵스 베스트 프랙티스는 앱 관측가능성(observability) 개선, 모니터링 증가, 클라우드 및 인프라 운영 자동화가 포함된다.

하지만 데브옵스 베스트 프랙티스가 애플리케이션, 데이터베이스, 데이터 파이프라인, 클라우드 인프라의 성능까지 개선할 수 있을까? 성능과 사용자 경험에 영향을 미칠 수 있는 7가지 데브옵스 프랙티스와 방법론을 살펴보자.
ITWorld

ⓒ Getty Images Bank

<이미지를 클릭하시면 크게 보실 수 있습니다>



1. 시프트 레프트

보안 취약점은 새로운 기능과 함께 배포되곤 한다. 보안 문제로 인한 고장 또는 성능 저하는 사용자 경험에 영향을 미치며 상당한 비즈니스 문제를 야기한다. 데브옵스 베스트 프랙티스의 목적은 요구 사항에 대해 정보보안팀과 협업하고 CI/CD 파이프라인 안에서 코드 취약점을 테스트하며, 소프트웨어 개발 과정에서 다른 보안 활동을 구현해 보안을 강화하는 것이다.

아카마이 수석 개발 지원자 마이크 엘리슨은 “앱 신뢰성의 중요한 구성요소는 가용성과 웹 애플리케이션 공격, DDoS 공격에서 앱을 적절히 보호하기 위해 적절한 조치를 취하는 것이다. 이런 차이가 온라인과 오프라인 상태의 차이를 만든다”라고 말했다.

시프트 레프트(shift left)는 데브옵스에서 데브섹옵스(DevSecOps)로 전환하는 작업의 일환이다. 엘리슨은 “데브옵스에 보안을 추가하는 것의 이점이 점차 확연해지면서 궁극적으로 더욱 강력한 데브섹옵스 문화가 형성되고 있다. 개발자가 앱 보안을 인지하고 책임지는 ‘시프트 레프트’가 더 많이 목격되는 추세”라고 말했다.


2. 아키텍처와 인프라의 청사진 표준화

퀄리(Quali)의 제품 관리 부사장 아미르 로젠버그는 팀 성과에 영향을 미치는 문제를 언급했다. 로젠버그는 “많은 데브옵스팀이 소프트웨어 개발 라이프 사이클에서 팀 효율성을 높이는 초기 과정부터 유기적으로 성장한 애플리케이션 인프라의 여러 혼란스러운 정의를 정리하고 있다”라고 말했다.

로젠버그는 데브옵스팀들이 환경 구성에 DIY 접근방식을 적용해야 하는지 또는 표준을 구축해야 하는지 자문했다. 로젠버그는 “권장하는 접근방식은 중앙팀을 구성해 데브옵스팀이 신뢰하고 재사용하고 따를 수 있는 환경을 청사진 형태로 모델링하는 것이다. 그리고 비즈니스 구성요소가 신속한 셀프서비스로 소비되거나 자동화 파이프라인 혹은 수동 프로세스에 통합될 수 있도록 이런 인프라의 정의를 확산시키는 능력이 필요하다”라고 덧붙였다.


3. 관측가능성과 지속적인 테스트

66디그리(66degrees)의 데브옵스 책임자 매트 솔리는 CI/CD가 단순한 패키지화 및 코드 푸시 이상의 기능을 할 수 있다고 생각한다. 솔리는 “모든 데브옵스 원칙이 지속적인 배포 혹은 모든 것을 코드로 구축하는 것만큼 화려하거나 눈에 띄지는 않지만 그만큼 중요하다. 지속적인 배포는 애플리케이션의 신뢰성을 크게 높여주는 성숙한 데브옵스 문화의 한 부분이지만, 유의미한 방식으로 구축하려면 목적과 비전, 시간이 필요하다”라고 설명했다.

하지만 신뢰성과 성능 목표를 달성하려면 비전을 갖는 것을 넘어 베스트 프랙티스와 최적의 아키텍처에 투자해야 한다. 솔리는 “신뢰성은 단순한 것이 아니다. 미묘한 데이터를 수집해야 하므로 관측가능성이 매우 중요하고 값진 원칙이라고 할 수 있다. 모든 클라우드 컴퓨팅 서비스에서 작업에 적절한 도구 또는 서비스를 선택하면 내재된 신뢰성 및 성능 이점을 끌어낼 수 있다”라고 말했다.

성능을 개선하기 위해 애자일 개발팀은 파이프라인에서 무엇을 구현해야 할까? 몇 가지 추천 사항이 있다.
  • 배포 빈도가 증가하기 전 지속적인 테스트 구현
  • 마이크로서비스 및 서드파티 API 테스트를 위한 서비스 가상화 고려
  • 결함 탐지를 개선하고 파이프라인 문제를 격리하기 위한 CI/CD 파이프라인 관찰가능성 확보


4. 기능 플래그와 카나리 릴리즈를 통한 배포 관리

모든 사용자가 모든 변경사항을 배포를 통해서만 받아야 하는 것은 아니다. 코드의 기능 플래그는 각 기능의 가용성 구성과 관리에 도움이 된다. 또한 카나리 릴리즈 전략을 사용하면 새로운 기능을 천천히 체계적으로 제공할 수 있다.

런치다클리(LaunchDarkly) CTO 존 코두말은 “기능 관리, 특히 기능 플래그는 앱의 전반적인 신뢰성과 성능을 개선하면서 개발자가 지속적인 혁신을 실현할 수 있는 주요 데브옵스 활동으로 빠르게 자리 잡고 있다. 기능 플래그를 도입하면 개발자는 생산에 앞서 기능 업데이트를 테스트하고 릴리즈 전에 문제를 해결할 수 있다”라고 덧붙였다.

이는 애플리케이션의 신뢰성과 성능을 높여줄 뿐 아니라 개발팀의 혼란을 최소화하는 데도 도움이 된다. 코두말은 “기능 플래그는 성능을 높여주면서 개발팀이 혼란 또는 다운타임 없이 애플리케이션을 업데이트하는 데 필요한 관리 방안을 제공한다”라고 설명했다.


5. 엄격한 관측가능성 및 모니터링 기준 마련

운영 측면에서 데브옵스팀은 관측가능성 기준 개발과 모니터링 개선 등 앱 성능 개선을 위해 다양한 베스트 프랙티스를 고려해야 한다.

민디(Mindee)의 개발자 관계 책임자 프레데릭 하버는 “엄격한 모니터링 및 관측가능성 프로세스를 구현해 애플리케이션의 모든 부분이 올바르게 기능하고 서버 프로세스가 원활하게 작동하도록 해야 한다. 이런 요소를 확보함으로써 데브옵스팀은 사용자의 앱 활용 방식을 이해하는 데 필요한 중요 정보를 수집하고 향후 발생할 문제를 예방할 수 있으며, 고객 지원도 더 쉬워진다. 실제 데이터에 기초해 비즈니스 또는 아키텍처 결정을 개선할 수 있다”라고 강조했다.


6. AI옵스와 자동화를 통한 모니터링 확장

웹 2.0 시절에는 앱 중단이나 성능 문제가 발생했을 때 운영팀이 검토할 로그 파일과 사용할 모니터링 도구가 많지 않았다. 지금은 마이크로서비스, 서버리스 애플리케이션, 멀티클라우드 데이터베이스 운영 시 사고가 발생하면 훨씬 많은 데이터와 도구를 참고해 문제를 해결하고 원인을 파악할 수 있다. 특히 AI옵스(AIops) 플랫폼은 모니터링 데이터를 중앙화하고 머신러닝을 사용해 경고와의 연관성을 보여주며, 운영팀이 여러 플랫폼에서 대응 및 복구를 자동화할 수 있도록 돕는다. 따라서 성능의 영상을 최소화하는 데 도움이 된다.

빅판다(BigPanda)의 제품 마케팅 부사장 모한 컴펠라도 이에 동의했다. 컴펠라는 “AI옵스 플랫폼은 데브옵스팀이 툴링 자율성과 유연성을 유지하는 데 도움이 될 수 있으며, 사고 발생 시 사건 대응자들이 최초의 방어선이 되는 데 필요한 가시성을 제공한다”라고 언급했다.


7. SLO와 오차 할당 정의

데브옵스팀은 가장 큰 이점을 제공하는 베스트 프랙티스와 위험을 해결하는 베스트 프랙티스 사이에서 균형을 맞추어야 한다. 이를 위해 팀은 데브옵스 우선순위를 측정/학습/조합해야 한다. 물론 베스트 프랙티스와 도구의 이점이 구현 이후 몇 개월 또는 몇 년 동안 나타나지 않을 때는 쉽지 않다.

우선순위를 설정하는 방법은 사이트 신뢰성 엔지니어링 프랙티스를 도입하고 SLO(Service Level Objective, 서비스 수준 목표)를 정의하며, 오차 할당을 사용하는 것이다. 앱 또는 마이크로서비스가 오차 할당을 초과하면 데브옵스팀이 원인을 확인하고 솔루션에 집중하도록 신호를 보낸다.

노블9(Nobl9) COO 키트 머커는 “SLO는 엔지니어링팀이 업무 우선순위를 설정할 때 더 나은 결정을 내릴 수 있는 방향을 제시한다. 개발 및 IT옵스팀은 기술 중심적이면 안 되지만, 서비스 중심적으로는 이동할 수 있다”라고 말했다.

할 일이 많은 데스옵스팀에 베스트 프랙티스는 개발 가속화와 신뢰성 및 성능 개선 사이에서 균형을 잡는 데 도움이 된다. 성공의 열쇠는 문제 설명 방법을 정의하고 접근 방식을 논의하며, 솔루션을 반복하고 영향을 측정하는 데 있다.
editor@itworld.co.kr

Isaac Sacolick editor@itworld.co.kr
저작권자 한국IDG & ITWorld, 무단 전재 및 재배포 금지
기사가 속한 카테고리는 언론사가 분류합니다.
언론사는 한 기사를 두 개 이상의 카테고리로 분류할 수 있습니다.