IT 자동화 코드도 가축처럼 다루세요.

F5 에코시스템 | 2017년 8월 23일

IT 부서는 IT를 구동하는 코드의 표준화를 수용해야 합니다. 그렇지 않으면 IT 자동화가 제공하는 비용 절감과 효율성 향상 효과를 잠식하는 시스템을 만들 위험이 있습니다.

저는 거의 10년 동안 소프트웨어를 개발했습니다. 임베디드 소프트웨어, 웹 소프트웨어, 클라이언트-서버 소프트웨어, 미들웨어와 메인프레임 소프트웨어를 개발했습니다. 실무에서 아홉 가지 언어로 코드를 작성해 봤습니다. 흥미로운 점은 한 조직에서 두 가지가 넘는 언어를 사용했던 기억은 없다는 것입니다.

대부분의 엔터프라이즈 조직은 서버와 플랫폼, 프레임워크뿐 아니라 언어까지 표준화합니다. 이는 수명이 불과 몇 분을 넘어 때로는 수십 년에 이르는 소프트웨어의 유지보수성을 확보하기 위한 것입니다. 유지보수성이란 소프트웨어의 수명을 어떤 기준으로 측정하든 다른 사람이 이를 인수해 전체 수명 주기 동안 지원할 수 있게 하는 특성을 말합니다. 이는 대개 개발자 이직, 해당 언어에 능숙한 인력의 시장 내 수급 상황, 교육 및 전반적인 유지보수 비용 때문입니다. 일반적으로 기업은 프로그래밍 언어를 표준화합니다.

이는 매우 다양한 언어(폴리글랏)를 지원할 수 있다는 점을 장점으로 내세우는 최근의 마이크로서비스 및 서버리스 컴퓨팅 추세와는 정면으로 배치됩니다. Bob과 그의 팀은 Go로 작성하고, Alice와 그녀의 팀은 C나 Java 또는 Lambda로 개발할 수 있습니다. 개발자마다 선호하는 언어가 있다는 점에서 이는 분명 개발자에게는 이점이지만, 해당 소프트웨어를 장기간 유지보수해야 하는 엔터프라이즈 조직에는 그다지 바람직하지 않습니다. API를 통해 통합하고 사용할 수 있으므로 애플리케이션 개발 측면에서는 구현 언어가 대체로 중요하지 않지만, 엔터프라이즈 환경에서는 기반 코드도 여전히 유지보수해야 합니다.

IT 자동화, 즉 비즈니스 운영 환경에서 이루어지는 내부 디지털 혁신과 관련해 조직은 이를 지원하기 위해 구축하는 스크립트와 시스템을 표준화할 때 얻는 이점뿐 아니라, 표준화하지 않을 때 발생하는 문제점도 인식해야 합니다. 이러한 시스템은 다음 주나 다음 달, 심지어 내년에 폐기할 목적으로 구축하는 것이 아니기 때문입니다. 이는 향후 수년간 배포의 디지털화를 뒷받침할 장기적인 투자입니다. 따라서 전 세계 기업의 애플리케이션 개발 부문이 수십 년에 걸쳐 축적한 모범 사례를 바탕으로 유연하면서도 견고한 기반을 마련해야 하며, 그 첫 번째 원칙이 바로 표준화입니다.

1. 유지보수성

여러분이 PERL로 코드를 작성하는 것을 좋아한다는 건 알지만, 다른 사람들은 모두 Python을 사용합니다. 자신이 좋아하는 언어로 자동화를 개발하면 그것은 여러분만의 애착 프로젝트가 되어, 앞으로 다른 누구도 유지보수할 수 없게 됩니다. 이는 여러분에게도 좋지 않습니다. 여덟 살 때 부모님께 졸라서 키우게 된 금붕어처럼, 몇 년 동안 그 코드에 얽매이게 될 테니까요. 조직에도 좋지 않습니다. 여러분이 조직을 떠나면 유지보수할 수 없는 코드만 남게 되고, 지원에도 큰 어려움을 겪을 수 있기 때문입니다. SIG와 O’Reilly가 2016년에 실시한 설문조사에 따르면 “응답자의 70%는 성능이나 보안과 비교하더라도 유지보수성이 코드에서 측정해야 할 가장 중요한 요소라고 생각하는 것”으로 나타났습니다.

그만큼 중요합니다. 스크립트와 시스템을 현재와 미래의 대다수 IT 담당자가 쉽게 수정하고 지원할 수 있는 공유 자원으로 바라보세요.

2. 호환성

코드 리뷰

점점 더 많은 IT 서비스가 소프트웨어로 구현되면서 이를 최신 상태로 유지하고 다른 시스템과의 호환성을 확보하는 일도 늘어나고 있습니다. REST API가 ‘하위 호환성’ 문제를 없애 준다고 생각한다면 다시 생각해 보십시오. API도 제품이며(또는 제품이어야 하며), 따라서 끊임없이 진화합니다. ‘네트워크’에서는 상황이 더 심각합니다. 동일한 제품군 내에서도 차이가 있고 버전마다 API가 달라 표준화가 끝없는 과제가 되기 때문입니다. 이 문제는 매우 광범위해서 응답자 4명 중 1명은 향후 몇 년 안에 해결해야 할 기술 과제 목록에서 API 표준화를 세 번째로 꼽았습니다. 이는 Smart Bear의 2016년 API 현황 보고서에 따른 결과입니다.

또한 IT에서 사용하는 언어 중 상당수가 인터프리터 방식이기 때문에 버전이 바뀌면 세심하게 설계된 자동화 스크립트와 시스템이 망가질 수 있습니다. node.js의 버전 변경은 스크립트 중단부터 예기치 않은 동작에 이르기까지 심각한 악영향을 미칠 수 있습니다. 스크립팅 환경과 언어를 안정적인 버전으로 표준화하면 이러한 변경으로 인한 영향을 최소화하는 데 도움이 됩니다.

또한 해당 자동화를 구동하는 모든 기반 시스템의 패치와 업그레이드도 계속 관리해야 하므로, 시스템 수는 적을수록 좋습니다.

3. 문제 해결

표준화를 내팽개치면 문제 해결에 어려움을 겪게 됩니다. 이는 특히 IT KPI에 문제 해결 시간 기반 지표를 도입하려는 경우에 중요합니다. 문제를 찾는 데 오래 걸릴수록 해당 지표의 성과는 더 나빠집니다. 표준화는 문제 해결 시간을 단축하는 데 중요한 요소입니다. 사내에서 Bob만 Python 전문가인데 그가 휴가 중이라 연락도 되지 않는 상황에서 그의 스크립트가 작동하지 않는다면, 문제 해결을 맡은 사람은 길고 힘든 한 주를 보내게 될 것입니다. IT 담당자들이 각자 선호하는 언어를 사용하도록 장려하면 다른 사람들이 문제를 진단하고 해결할 수 있는 역량이 크게 제한됩니다. Bob이 휴가 중이 아니더라도 그가 문제를 찾지 못하면 도움을 줄 수 있는 사람은 거의 없습니다.

이 부분은 절대 가볍게 다뤄서는 안 됩니다. InitialState에 따르면, 버그를 수정하는 데는 코드 한 줄을 작성하는 것보다 30배나 더 오래 걸립니다. 익숙하지 않은 코드에서 버그를 찾아 헤매다가 그런 다음 이를 수정하는 동안 돈이 서서히 분쇄기 속으로 들어가는 모습을 떠올릴 수 있습니다. 결코 보기 좋은 광경은 아닙니다. 문제 해결 비용을 완전히 없앨 수는 없지만, 해당 언어를 모르는 사람이 처음부터 익히는 데 드는 추가 시간을 없애 비용을 줄일 수는 있습니다. 프로덕션 환경에서는 시간이 곧 돈이므로, 해결 시간을 단축하기 위해 할 수 있는 모든 조치는 매우 중요합니다.

그렇기 때문에 IT 부서가 스크립팅 언어와 도구, 시스템을 서서히 도입하는 과정에서 애플리케이션 개발 부서와 보조를 맞추는 것도 좋은 방법입니다. IT 부서가 동일한 시스템과 언어(또는 적어도 그중 일부)를 표준으로 채택하면 문제 해결은 물론 코드 리뷰와 같은 기타 개발 관련 프로세스를 지원할 수 있는 수많은 전문가의 도움을 받을 수 있습니다. 문제가 발생하기 전에 버그를 찾아내기 위한 수단으로 코드 리뷰를 시행하고 계시죠? 그렇죠?

표준화는 증가하는 비용에 대응하는 수단으로 자주 언급되며, 실제로 이러한 노력에 크게 기여하는 핵심 요소입니다. 하지만 표준화에는 기술 부채 최소화, 문제 해결 시간 단축, 일상적인 운영 유지보수 간소화 등 다양한 이점도 있습니다. 반대로 표준화를 전혀 하지 않으면 복잡성과 병목 현상이 발생해 자동화의 이점이 상쇄되고, 기업이 성장에 필요한 수익성과 생산성을 실현하지 못하게 되므로 예산과 시간에 악영향을 미칩니다. IT 자동화 여정을 시작하거나 계속해 나갈 때는 스크립트와 시스템을 애지중지하는 반려동물이 아니라 가축처럼 다뤄야 한다는 점을 기억하세요. 반려동물은 지속적이고 세심한 관심이 필요하지만, 앞으로 IT 부서는 그런 여유를 감당할 수 없기 때문입니다.

공유
태그: 2017

작성자 소개

Lori Mac Vittie
Lori Mac Vittie수석 엔지니어 겸 최고 에반젤리스트 | F5

Lori MacVittie는 F5 CTO 오피스의 수석 엔지니어이자 최고 에반젤리스트로, 애플리케이션 딜리버리, 자동화 전략 및 인프라 분야에서 깊이 있는 전문성을 보유하고 있습니다. AI 에이전트를 위한 가드레일을 정의하고, 취약한 멀티클라우드 아키텍처를 분석하며, 확장 가능한 시스템의 한계를 탐구하는 등 복잡한 문제를 명확하게 풀어내는 것으로 잘 알려져 있습니다. 애플리케이션 개발, IT 아키텍처, 네트워크 및 시스템 운영 전반에 걸쳐 30년 이상의 업계 경험을 쌓았습니다. F5에 합류하기 전에는 수상 경력이 있는 기술 편집자로 활동했습니다. MacVittie는 컴퓨터 과학 석사 학위를 보유하고 있으며, 보안, 클라우드 및 엔터프라이즈 아키텍처 분야를 아우르는 다수의 저서를 집필한 작가입니다. 또한 보드게임과 비디오 게임을 열정적으로 즐기며, 치즈에 대해서는 거리낌 없이 확고한 견해를 갖고 있습니다.

Lori Mac Vittie의 다른 블로그 게시물

관련 블로그 게시물

성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A
F5 에코시스템 | 2023. 07. 13.

성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A

F5의 ‘성평등을 향한 여정’ 시리즈 네 번째 Q&A에서는 Rachael Shah와 NGINX 제품 마케팅 책임자 Jenn Gile이 사이버 보안 직종에 대한 오해를 바로잡고, 사이버 보안 분야의 성별 격차를 해소하기 위한 조언과 그 이점에 대해 이야기합니다.

TLS 검사에서 피터 파커 원칙 다루기
F5 에코시스템 | 2019. 12. 09.

TLS 검사에서 피터 파커 원칙 다루기

“큰 힘에는 큰 책임이 따른다.” 볼테르와 처칠도 이와 비슷한 말을 남겼지만, 이 문구는 스파이더맨 코믹스에서 벤 삼촌의 말로 가장 널리 알려져 있습니다. 물론 이 문구가 문화적으로 널리 통용되는 이유 중 하나는 TLS 검사를 비롯해 수많은 상황과 주제에 적용할 수 있기 때문입니다.

Venafi와 F5를 통한 머신 아이덴티티 보호
F5 에코시스템 | 2018. 12. 11.

Venafi와 F5를 통한 머신 아이덴티티 보호

‘머신 아이덴티티’란 간단히 말해 자동화된 프로세스가 자신의 신원을 식별할 수 있도록 하고, 다른 자동화 시스템과 프로세스가 관련 리소스에 적절한 수준의 접근 권한을 부여하도록 하는 방법을 의미합니다. 이 개념 자체는 새로운 것이 아닙니다. 비교적 새로운 점은 이를 구현해야 하는 규모입니다.

마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다
F5 에코시스템 | 2018. 07. 23.

마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다

물론 데이터 유출은 더 큰 비용을 초래할 수 있고(적어도 지금은), 실패 사실을 세상에 드러낼 수밖에 없게 합니다(통지 의무가 있으니까요). 하지만 보안을 단순히 데이터 노출 문제로만 봐서는 안 됩니다. 요즘은 데이터가...

내 클라우드에서 나가!
F5 에코시스템 | 2016. 10. 12.

내 클라우드에서 나가!

F5의 Jay Kelley가 전하는 최신 소식에는 Microsoft Office 365용 신규 ID 및 액세스 솔루션을 배포할 때 고려해야 할 사항이 정리되어 있습니다.

Shift(웹 앱) 보안 레터
F5 에코시스템 | 2015. 07. 06.

Shift(웹 앱) 보안 레터

웹 앱 보안을 개발 초기 단계로 앞당기세요. F5 블로그에서 DevOps 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.