Xin chào các bạn, bài viết hôm nay không phải một bài viết về lý thuyết hay một bài Lab nào cả. Bài viết này mình sẽ chia sẻ với các bạn về quá trình học, các kỹ năng, các tool nên sử dụng khi học Network Automation. Và sau 3 tháng học thì các bạn sẽ nắm được những kiến thức cũng như những kỹ năng nào.
Bắt đầu nào.
Các kỹ năng cơ bản để chuẩn bị cho việc học Network Automation :
- Python : python khá là quan trọng bởi vì python là ngôn ngữ không thể thiếu trong lĩnh vực automation. Python cũng khá là dễ tiếp cận đối với 1 networker.
- Git : để chúng ta có thể lưu trữ cũng như là sử dụng source code có sẵn. Dễ dàng lưu lại những phiên bản sữa chữa code để có thể backup nhanh chóng.
- Linux : về Linux thì chúng ta chỉ cần học những thứ cơ bản như là các câu lệnh thực thi với Linux như tạo, sửa, xóa, cập quyền cho file/thư mục, …
- Rest API : kiến thức nền tảng về API rất quan trọng vì trong hạ tầng mạng hỗ trợ automation thì chúng ta đa số sẽ sử dụng API để giao tiếp với thiết bị chứ không sử dụng CLI như trước đây.
Với bọn mình khi mới bắt đầu thì sẽ bắt đầu với một số bài Lab nhỏ với Python ( sau khi đã học xong cấu trúc Python ) như là SSH vào thiết bị, Add loopback, đặt IP cho cổng, … để có thể làm quen dần với việc sử dụng Python với thiết bị mạng. Và các bài Lab này vẫn sử dụng CLI để có thể dễ dàng hơn chứ chưa vội sử dụng API.
Tìm hiểu về Network Controller :
Theo như cấu trúc mạng mới mà Cisco đưa ra thì sau này các thiết bị mạng của một hạ tầng sẽ được quản lý tập trung trên một thiết bị , thiết bị đó có tên gọi là Network Controller đễ có thể dễ dàng quản lý cũng như là cấu hình trên các thiết bị nhanh chóng, không cần phải làm riêng lẻ trên từng thiết bị nữa. Ở phần này chúng mình tìm hiểu về một Controller của Cisco đó là APIC-EM. Sau này thì APIC-EM được phát triển và cải tiến thành DNA Center.
Các bài toán về Automation :
Để thực hiện automation chúng ta có rất nhiều cách để thực hiện, có thể liệt kê ra ở đây như là : sử dụng các thư viện NAPALM, Nornir của Python , sử dụng Ansible , … Ở đây mình tìm hiểu về một phần mềm automation mà DevOps sử dụng khá nhiều đó là Ansible. Về Ansible mình sử dụng Ansible AWX vì nó sử dụng web GUI dễ sử dụng cho người mới bắt đầu như mình. Lưu ý ở đây chúng ta cần tìm hiểu kỹ về cấu trúc của Ansible như Playbook, Roles, Vars, … Và các ngôn ngữ đi kèm như là YAML, XML, JSON. Cấu trúc của các ngôn ngữ trên cũng khá là dễ hiểu chỉ cần chúng ta chịu khó thực hành một số bài tập về nó. Còn về 2 thư viện NAPALM và Nornir của Python thì chúng cũng khá là hữu ích nên đó sẽ là hướng nghiên cứu tiếp theo của mình, mình sẽ làm 1 bài nói về 2 thư viện trên ở các bài viết sau.
Tìm hiểu về Netconf, Restconf :
Netconf , Restconf rất quan trọng với các bài toán automation sau này. Nói nôm na Netconf, Restconf là giao thức sẽ thay thế cho SNMP trên các thiết bị mạng thế hệ tiếp theo.
Tới đây là hoàn thành 3 tháng học DevNet của các bạn. Mình chỉ có lời khuyên với cái bạn là : Hãy luyện tập cũng như là đọc tài liệu mỗi ngày một ít cũng được chỉ cần các bạn siêng năng và đừng bỏ cuộc thì Python, Ansible, … đối với một Networker không có gì là khó khăn cả.
Cảm ơn các bạn đã theo dõi bài viết của mình.
Comment