클라우드와 자동화 기술에 대한 다양한 뷔페에서 무엇을 배울지 어떻게 결정하시나요? 이전 기사에서는 프라이빗 클라우드가 가져오는 운영적 변화 와 클라우드 시대에 운영팀이 수행하게 될 새로운 종류의 업무에 대해 논의했습니다.
우리 대부분에게 이는 새로운 일반적인 개념과 특정 기술적 기술을 배우는 것을 의미합니다. 운이 좋다면(또는 세부 사항에 따라 운이 나쁘다면) 사용자 환경에 맞는 자동화 및 오케스트레이션 도구 모음이 독단이나 공통 채택을 통해 확립됩니다. 그런 경우에는 일반적으로 자신이 원하는 학습 방식을 찾고, 어떤 종류의 실험실이나 테스트 환경을 확보하고(여기서 종종 퍼블릭 클라우드 제공자와 '첫 사용은 무료' 크레딧이 등장함) 그것에 착수하는 것만이 문제입니다.
하지만 아예 처음부터 시작해서 자동화 툴셋을 직접 구축하거나, 머지않아 가능할 거라고 보고 배우려는 경우에는 어떨까요? 선택권이 많은 건 좋은 일이지만, 자동화 분야에서는 선택할 수 있는 것이 정말 많습니다. 광범위한 분야로 나누어 보면 무엇을 배워야 할지 집중적으로 파악할 수 있는 한 가지 방법입니다.
소스 코드 버전 제어 시스템. 버전 제어 시스템을 다루는 것이 중요한 이유는 A) 버튼 생성에 필요한 스크립트와 도구를 빌드할 때 이를 보관하고 버전 제어를 관리할 곳이 필요하기 때문입니다. B) 개발팀이나 DevOps 그룹의 동료들이 이를 사용하게 될 것입니다. 여기서 시작하기에 가장 확실한 곳은 Git/Github 입니다. 물론 사용할 수 있는 다른 시스템도 많이 있지만, 그 중 일부는 귀하의 조직에 더 적합할 수도 있습니다. 하지만 Git은 널리 쓰이고 이식성이 뛰어난 기술입니다.
지속적인 통합/지속적인 배포(CI/CD) 도구 . 많은 경우, 변경 사항과 배포는 CI/CD 애플리케이션의 좋은 예인 Jenkins와 같은 도구를 통해 관리됩니다. Jenkins는 애플리케이션 코드를 정리되고 자동화된 워크플로에 따라 컴파일, 테스트 및 배포할 수 있는 배포 파이프라인을 만듭니다. 대부분의 CI/CD 애플리케이션은 새로운 서버 인스턴스 배포나 인프라 구성 요소 구성을 포함한 다양한 활동을 관리하는 데 사용할 수 있는 플러그인을 사용하여 확장할 수 있습니다.
CI/CD 워크플로에서 활용할 수 있는 도구 중 우리가 관심을 두고 있는 것은 주로 인프라 자동화를 위한 것이며, 선택의 폭이 매우 넓고 각 도구마다 강점과 약점이 있습니다. F5는 많은 공급업체와 좋은 파트너 관계를 맺고 있으므로 특정 공급업체를 추천하지는 않겠지만, 차이점을 자세히 설명하는 훌륭한 기사가 많이 있습니다. 제 조언은, 조금만 읽어보고 가장 쉬워 보이는 것부터 시작하라는 겁니다. 매우 주관적이고 구체적이지 않은 조언처럼 들릴지 모르지만 모든 사람의 뇌는 다르고, 특별한 이유가 없는 한 빠르게 익숙해질 수 있는 유틸리티를 찾는 게 좋습니다. Ansible, Puppet, Chef, Salt, Terraform 등의 도구는 모두 잘 문서화되어 있으며 상당한 사용자층을 보유하고 있습니다.
마지막으로 - 또는 우선 이 블로그의 마지막 문단을 믿기로 선택했다면, 아마도 기본 스크립팅 언어 에 대한 기초를 쌓고 싶을 것입니다. 네트워크 자동화 분야에서 압도적인 승자는 Python입니다. Python은 F5를 포함하여 주요 공급업체나 소프트웨어 프로젝트의 SDK를 다수 갖추고 있기 때문입니다.
자, 여기까지입니다. 시간을 내어 배우고 싶을 만한 핵심 자동화 기술에 대한 간략한 개요입니다. 글쎄요, 조금 이상은 될 겁니다. 정규직이 있다고 가정하면 앞으로 몇 달간 공부해야 할 것 같아요. 마지막으로, 제 조언은 목록의 마지막 항목인 Python부터 시작해서 거기에서 '상류'로 작업하라는 것입니다. 도구가 구성 요소와 프로그래밍 방식으로 통신하는 방식을 이해하면 스택을 위로 이동하면서 복잡한 사항을 해결하는 데 훨씬 더 능숙해질 것이고, 거기까지 도달했을 때 소스 제어의 즐거움을 훨씬 더 잘 느낄 수 있을 것입니다.