From 1656e1d4a0a8769c766fc39cd35688ab5e1b4be8 Mon Sep 17 00:00:00 2001 From: Me1e Date: Thu, 23 Mar 2023 21:06:54 +0900 Subject: [PATCH] Translated 2022 day24 to korean --- 2022/ko/Days/day24.md | 147 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 2022/ko/Days/day24.md diff --git a/2022/ko/Days/day24.md b/2022/ko/Days/day24.md new file mode 100644 index 0000000..7823780 --- /dev/null +++ b/2022/ko/Days/day24.md @@ -0,0 +1,147 @@ +--- +title: '#90DaysOfDevOps - Network Automation - Day 24' +published: false +description: 90DaysOfDevOps - Network Automation +tags: 'devops, 90daysofdevops, learning' +cover_image: null +canonical_url: null +id: 1048805 +--- + +## 네트워크 자동화 + +### 네트워크 자동화의 기본 사항 + +네트워크 자동화의 주요 동인 + +- 민첩성 달성 +- 비용 절감 +- 오류 제거 +- 규정 준수 보장 +- 중앙 집중식 관리 + +자동화 도입 프로세스는 각 비즈니스에 따라 다릅니다. 자동화를 배포하는 데 있어 모든 것에 적합한 방법은 없으며, 조직에 가장 적합한 접근 방식을 파악하고 수용하는 능력은 보다 민첩한 환경을 유지하거나 만드는 데 매우 중요하며, 항상 비즈니스 가치와 최종 사용자 경험에 초점을 맞춰야 합니다. (처음에 DevOps 전체와 문화 변화 및 이로 인한 자동화된 프로세스와 관련하여 비슷한 내용을 말씀드렸습니다.) + +이를 세분화하려면 자동화하려는 작업이나 프로세스가 최종 사용자 경험 또는 비즈니스 가치를 어떻게 달성하고 개선할 수 있는지 파악하고 단계별 체계적인 접근 방식을 따라야 합니다. + +"어디로 가는지 모르면 어떤 길이라도 그곳에 도달할 수 있습니다." + +달성하고자 하는 프레임워크 또는 설계 구조를 통해 최종 목표가 무엇인지 파악한 다음, 비즈니스 결과를 기반으로 다양한 단계에서 자동화 성공 여부를 측정하면서 목표 달성을 위해 단계적으로 작업하세요. + +기존 애플리케이션을 중심으로 모델링된 개념 구축 자동화는 애플리케이션, 서비스, 인프라에 적용해야 하기 때문에 거창하게 개념을 설계할 필요가 없으므로 기존 인프라, 즉 기존 애플리케이션을 중심으로 모델링하여 개념을 구축하기 시작하세요. + +### 네트워킹 자동화에 대한 접근 방식 + +작업을 식별하고 네트워크 변경 요청에 대한 검색을 수행하여 솔루션을 자동화할 가장 일반적인 이슈와 문제를 파악해야 합니다. + +- 현재 수동으로 처리하고 있는 모든 변경 요청과 워크플로우의 목록을 작성합니다. +- 가장 일반적이고 시간이 오래 걸리며 오류가 발생하기 쉬운 활동을 파악하세요. +- 비즈니스 중심 접근 방식을 취하여 요청의 우선순위를 정하세요. +- 이는 자동화 프로세스를 구축하기 위한 프레임워크이며, 자동화해야 하는 작업과 자동화하지 않아야 하는 작업을 구분합니다. + +그런 다음 작업을 나누고 서로 다른 네트워크 기능이 어떻게 작동하고 상호 작용하는지 분석해야 합니다. + +- 인프라/네트워크 팀은 애플리케이션을 배포하기 위해 여러 계층에서 변경 티켓을 받습니다. +- 네트워크 서비스를 기반으로 여러 영역으로 나누고 서로 어떻게 상호 작용하는지 이해합니다. + - 애플리케이션 최적화 + - ADC(애플리케이션 전송 컨트롤러) + - 방화벽 + - DDI(DNS, DHCP, IPAM 등) + - 라우팅 + - 기타 +- 다양한 종속성을 파악하여 비즈니스 및 문화적 차이를 해결하고 팀 간 협업을 유도하세요. + +재사용 가능한 정책, 재사용 가능한 서비스 작업, 프로세스 및 입출력을 정의하고 단순화하세요. + +- 다양한 서비스, 프로세스 및 입출력을 위한 오퍼링을 정의하세요. +- 배포 프로세스를 간소화하면 신규 워크로드와 기존 워크로드 모두의 시장 출시 시간을 단축할 수 있습니다. +- 표준 프로세스가 마련되면, 멀티스레드 접근 방식과 제공을 위해 개별 요청에 따라 프로세스를 순서화 및 조정할 수 있습니다. + +정책을 비즈니스별 활동과 결합하세요. 이 정책을 구현하면 비즈니스에 어떤 도움이 되나요? 시간이 절약되나요? 비용이 절감되나요? 더 나은 비즈니스 결과를 제공하나요? + +- 서비스 작업이 상호 운용 가능한지 확인하세요. +- 증분 서비스 작업을 연결하여 비즈니스 서비스를 만들 수 있도록 정렬하세요. +- 필요에 따라 서비스 작업을 연결하고 다시 연결할 수 있는 유연성을 제공하세요. +- 셀프 서비스 기능을 배포하고 운영 효율성을 개선할 수 있는 기반을 마련하세요. +- 감독 및 규정 준수에 지속적으로 기여할 수 있도록 다양한 기술 스킬셋을 허용합니다. + +가용성과 서비스를 유지하면서 정책과 프로세스를 **반복**하여 추가하고 개선하세요. + +- 기존 작업을 자동화하여 작게 시작하세요. +- 자동화 프로세스에 익숙해져서 자동화를 통해 이점을 얻을 수 있는 다른 영역을 식별할 수 있습니다. +- 자동화 이니셔티브를 반복하여 필요한 가용성을 유지하면서 민첩성을 점진적으로 추가합니다. +- 점진적인 접근 방식을 취하면 성공의 길을 열 수 있습니다! + +네트워크 서비스를 오케스트레이션하세요! + +- 애플리케이션을 신속하게 제공하려면 배포 프로세스의 자동화가 필요합니다. +- 민첩한 서비스 환경을 구축하려면 기술 전반에 걸쳐 관리해야 할 다양한 요소가 필요합니다. +- 자동화와 배포 순서를 제어할 수 있는 End To End 오케스트레이션을 준비하세요. + +## 네트워크 자동화 도구 + +여기서 좋은 소식은 대부분의 경우 네트워크 자동화에 사용하는 도구는 다른 자동화 영역에 사용하거나 지금까지 이미 다룬 내용 또는 향후 세션에서 다룰 내용과 동일하다는 것입니다. + +운영 체제 - 이번 챌린지 내내 그랬듯이 저는 대부분의 학습을 Linux OS로 하는 데 집중하고 있으며, 그 이유는 Linux 섹션에서 설명했지만, 크로스 OS 플랫폼이긴 하지만 오늘 다룰 거의 모든 도구는 처음부터 모두 Linux 기반 애플리케이션 또는 도구로 시작되었습니다. + +통합 개발 환경(IDE) - 다양한 언어에서 사용할 수 있는 광범위한 플러그인을 기반으로 Visual Studio Code를 IDE로 추천한다는 것 외에는 여기서 더 이상 설명할 것이 없습니다. + +구성 관리 - 아직 구성 관리 섹션은 다루지 않았지만, 이 영역에서 구성 관리 및 자동화를 위해 Ansible이 가장 선호되는 것은 분명합니다. Ansible은 Python으로 작성되었지만, Python을 알 필요는 없습니다. + +- 에이전트리스 +- SSH만 필요 +- 대규모 지원 커뮤니티 +- 다양한 네트워크 모듈 +- 푸시 전용 모델 +- YAML로 구성 +- 오픈 소스! + +[Link to Ansible Network Modules](https://docs.ansible.com/ansible/2.9/modules/list_of_network_modules.html) + +구성 관리 섹션에서 **Ansible Tower**에 대해서도 다룰 예정이며, 이를 Ansible의 GUI로 보시면 됩니다. + +CI/CD - 이와 관련된 개념과 도구에 대해서는 다시 다룰 예정이지만, 네트워킹뿐만 아니라 서비스 및 플랫폼의 모든 프로비저닝에 걸쳐 있기 때문에 최소한 여기서 언급하는 것이 중요합니다. + +특히 Jenkins는 네트워크 자동화를 위한 인기 있는 도구를 제공하거나 제공하는 것으로 보입니다. + +- 변경사항이 있는지 git 리포지토리를 모니터링한 다음 변경을 시작합니다. + +버전 관리 - 이 역시 나중에 자세히 살펴볼 내용입니다. + +- Git은 로컬 디바이스에서 코드의 버전 제어를 제공합니다 - 크로스 플랫폼 +- GitHub, GitLab, BitBucket 등은 리포지토리를 정의하고 코드를 업로드할 수 있는 온라인 웹사이트입니다. + +언어 | 스크립팅 - 우리가 아직 다루지 않은 Python입니다. 상황에 따라 프로그래밍 언어로 Go를 사용하기로 결정했는데, Golang과 Python이 박빙의 승부를 펼쳤으며 네트워크 자동화에는 Python이 승자가 된 것 같습니다. + +- 여기서 언급해야 할 것이 바로 파이썬으로 작성된 자동화 프레임워크인 Nornir입니다. 이것은 Ansible의 역할을 하는 것으로 보이지만 특히 네트워크 자동화를 중심으로 합니다. [Nornir documentation](https://nornir.readthedocs.io/en/latest/) + +API 분석 - Postman은 RESTful API를 분석하기 위한 훌륭한 도구입니다. API를 빌드, 테스트 및 수정하는 데 도움이 됩니다. + +- POST >>> 리소스 객체를 생성합니다. +- GET >>> 리소스를 검색합니다. +- PUT >>> 리소스를 생성하거나 교체합니다. +- PATCH >>> 리소스 오브젝트를 생성하거나 업데이트합니다. +- DELETE >>> 리소스를 삭제합니다. + +[Postman tool Download](https://www.postman.com/downloads/) + +### 기타 언급할 도구 + +[Cisco NSO (Network Services Orchestrator)](https://www.cisco.com/c/en/us/products/cloud-systems-management/network-services-orchestrator/index.html) + +[NetYCE - Simplify Network Automation](https://netyce.com/) + +[Network Test Automation](https://pubhub.devnetcloud.com/media/genie-feature-browser/docs/#/) + +앞으로 3일 동안은 지금까지 다룬 내용 중 몇 가지를 좀 더 실습해보고 Python과 네트워크 자동화에 관한 작업을 해볼 계획입니다. + +지금까지 네트워킹 주제를 모두 다루지는 못했지만, 아래에 추가하는 리소스를 통해 계속 학습하면서 따라갈 수 있을 정도로 폭넓게 다루고자 합니다. + +## 자료 + +- [3 Necessary Skills for Network Automation](https://www.youtube.com/watch?v=KhiJ7Fu9kKA&list=WL&index=122&t=89s) +- [Computer Networking full course](https://www.youtube.com/watch?v=IPvYjXCsTg8) +- [Practical Networking](http://www.practicalnetworking.net/) +- [Python Network Automation](https://www.youtube.com/watch?v=xKPzLplPECU&list=WL&index=126) + +[Day 25](day25.md)에서 봐요!