네트워크 자동화란 네트워크 내 구성, 관리, 테스트, 배포 및 운영과 같은 네트워크 프로세스와 기능을 자동화하는 것을 말하며, 소프트웨어를 사용하여 수동으로 수행되던 네트워크 관리 작업을 자동화함으로써 효율성을 높이고 인적 오류를 줄이는 것을 목표로 한다. 이는 작업부터 배포 및 설정에 이르기까지 걸리는 시간을 줄이는 게 중요한 현대의 다양한 IT 기업에 꼭 필요한 수단이라고 볼 수 있다.
오늘은 현대의 IT조직이라면 형태나 규모에 상관없이 네트워크 자동화를 점진적으로 도입해야 하는 몇 가지 이유를 살펴보고자 한다. 애플리케이션, 시스템, 저장 공간, 전화 통신 등 자동화를 활용하는 분야는 다를 수 있어도 동일한 원칙이 적용된다는 사실을 알아두자.
오늘날에도 여전히 네트워크 장비의 설정 변경은 각양각색의 일회성 비표준 방식으로 이뤄지며, 네트워크 엔지니어도 단발성 네트워크 설정 변경을 통해 네트워크 및 애플리케이션 문제를 해결했다는 사실에 뿌듯함을 느낀다. 하지만 이와 같은 방식으로 변경 작업이 이뤄지다 보면, 결국에는 네트워크를 유지하고 관리하기가 어려워지며 자동화하기도 더욱 힘들어진다.
따라서 네트워크 자동화 및 관리 작업을 부차적인 프로젝트나 별도 작업으로 취급할 것이 아니라, 새로운 아키텍처를 만드는 시작 단계에서부터 함께 고려해야 한다. 여기에는 인력과 도구에 대한 적절한 예산 확보도 포함된다. 안타깝지만, 도구 체계 마련에 드는 비용은 예산이 부족할 때 가장 먼저 삭감되는 경우가 많다.
엔드-투-엔드 아키텍처 설계와 실제 운영 업무는 동일한 업무이고, 동일해야 한다. 아키텍처를 설계할 때 다음 질문을 고려해야 한다.
● 어떤 기능이 제조사와 상관없이 동작하는가?
● 어떤 확장 기능이 여러 플랫폼에서 동작하는가?
● 특정 네트워크 장비 플랫폼에서 동작하는 API나 자동화 도구는 어떤 유형인가?
● 잘 정리된 API 문서가 있는가?
● 해당 제품에 대한 라이브러리가 존재하는가?
설계 단계에서 이 질문에 대한 답을 빨리 찾아낼수록 최종 아키텍처는 보다 단순해지고, 반복할 수 있는 형태를 갖추게 되며, 유지 관리 및 자동화가 쉬워진다. 또한 전체 네트워크에서 특정 장비 제조사에서만 사용할 수 있는 독점적인 확장 기능을 사용하는 비율도 낮아지게 된다.
적절한 관리 체계 및 자동화 도구를 사용해 단순화된 아키텍처를 배포한 후에도 네트워크 설정이 다시 중구난방인 상태로 되돌아가지 않게끔 일회성 변경 작업을 최소한으로 수행하도록 노력해야 한다.
기업 조직에서는 네트워크의 향후 변경 사항, 외부 시스템에 미치는 영향, 롤백rollback 계획 등을 점검하는 변경 검토 회의를 진행한다. CLI를 통해 수동으로 변경 사항을 적용하고 있다면 명령어를 하나만 잘못 입력하는 것만으로도 치명적인 결과를 초래할 수 있다.
3명, 4명, 5명, 50명의 엔지니어로 이뤄진 팀을 상상해보자. 엔지니어마다 자신만의 방식으로 변경 작업을 수행한다. 명령행 인터페이스 대신 그래픽 사용자 인터페이스를 사용한다고 해서 변경 작업 과정에서의 오류가 발생할 가능성이 줄어들거나 사라지지는 않는다.
검증 과정과 테스트 과정을 거치는 네트워크 자동화 시스템을 통해 변경 사항을 적용하면 수동으로 변경할 때보다 훨씬 더 정확하게 작업 과정 및 결과를 예측할 수 있다. 또한 경영진은 확정적인 결과를 달성할 가능성이 높아지게 되므로, 인적 오류human error 없이 당면한 작업을 한 번에 제대로 완료할 수 있는 시스템에 한 걸음 더 다가갈 수 있게 된다. 간단한 VLAN 변경부터 여러 네트워크상의 변경이 필요한 신규 고객 온보딩 작업까지 다양한 작업에 자동화를 적용할 수 있다.
더욱이 이와 같이 불확실한 부분이 사라지고 예측한 대로 결과를 얻을 수 있게 되면, 네트워크 변경에 관한 수작업이 줄어들고 전체적인 네트워크 운영의 효율성이 높아지므로 운영 비용은 낮아진다. 네트워크 장비의 운영체제 업그레이드처럼 시간이 많이 걸리는 프로세스를 자동화한다고 생각해보자. 네트워크 엔지니어는 자동화를 통해 절약한 시간을 프로세스 개선 업무나 전략 과제 수행에 쓸 수 있다.
서버 가상화가 등장한 이후, 시스템 관리자는 새로운 애플리케이션을 거의 즉시 배포할 수 있게 됐다. 애플리케이션을 빠르게 배포할 수 있게 되면서 새로운 3티어 애플리케이션3-tier application을 배포할 때마다 VLAN, 라우팅 경로, 방화벽 정책, 로드 밸런스 정책과 같은 네트워크 자원을 구성하는 작업은 왜 오래 걸리는지에 대해 의문을 품는 사람들이 늘어났다.
네트워크 자동화를 도입하면 분명 애플리케이션을 배포하는 IT 유관 부서의 요청에 대해 네트워크 엔지니어 및 운영 팀이 빠르게 대응할 수 있다. 더 중요한 사실은 자동화를 도입하면 비즈니스의 민첩성이 높아진다는 점이다. 자동화를 도입하는 입장에서는 비즈니스의 민첩성을 높이려는 의도가 아무리 좋더라도 반드시 기존 워크플로, 때로는 수동 작업 과정까지 이해하는 것이 중요하다.
무엇을 자동화해야 하는지를 모른다면, 지식 부족으로 인해 프로세스는 더 복잡해지고 도입 시간은 늘어진다. 네트워크 자동화를 도입하려면 최우선적으로 기존의 수동 워크플로를 이해하려고 노력해야 하며, 평균 작업 소요 시간이나 작업의 수행 순서 등과 같은 워크플로를 문서화하고, 비즈니스에 미치는 영향을 파악해보는 것이 좋다. 이를 통해 더욱 간단하고 효과적인 방식으로 자동화 솔루션을 구현할 수 있다.
네트워킹에 관한 워크플로를 코드로 기술하다 보면 자동화의 숨겨진 이점까지 얻을 수 있다. 단계별 프로세스를 정의하고 분석한 다음, 이를 코드로 문서화하면 누구나 언제든지 이용할 수있는 정보가 된다.
이렇게 공개된 정보를 통해 팀 동료가 변경 사항을 함께 책임지고 검토할 수 있는 동료 검토 단계를 워크플로에 도입할 수도 있고, 네트워크 변경 사항을 실제로 배포하기 전에 잠재적 보안 문제나 설정 오류가 있는지를 검사하는 자동화 프로세스를 추가할 수도 있다.
또한 자동화가 이뤄지면 운영자가 정의한 대로 네트워크가 계속 동작하는 지 확인해가면서, 필요에 따라 기대하는 상태와 실제 동작의 편차를 줄여나갈 수 있다.
기존 네트워크 운영 방식에서 작업 결과는 작업을 수행하는 네트워크 엔지니어의 숙련도 및 이용할 수 있는 문서화된 정보에 따라 크게 달라진다. 문서에 담긴 정보를 최신 상태로 유지하기는 어렵다. 하지만 이러한 작업을 자동화하면 워크플로가 실행될 때마다 자동화 작업에 참여하는 엔지니어의 모든 지식이 시스템에 반영된다.
자동화를 도입하면 팀 전체가 변경에 대한 책임을 공유하게 되고, 다른 팀원에 의한 검토 과정을 프로세스에 포함시켜 더욱 효과적으로 개선할 수 있으며, 문제 발생 가능성을 낮출 수 있다. 또한 보안 정책과 같은 규제나 정책을 강제하는 도구로 변경 사항을 검사할 수 있고, 인공지능 분석 도구와 연동해 상황에 맞는 개선 사항을 제안받을 수도 있다.
더욱이 네트워크 자동화는 한 번으로 끝나는 것이 아니다. 예상치 못한 문제나 누락했던 항목을 발견할 수 있으며, 그런 항목을 찾을 때마다 워크플로 코드를 수정하면서 개선한다. 이렇게 지속적으로 개선하다 보면 점진적인 개선 프로세스 속에서 전현직 팀 구성원들의 개선 노력이 한곳으로 통합된다.
위 콘텐츠는 『네트워크 인프라 자동화』에서 내용을 발췌하여 작성하였습니다.
최신 콘텐츠