HƯỚNG DẪN CÁCH HỌC MÔN DEVNET ASSOCIATE
1. Giới thiệu về chứng chỉ DEVASC 200-901, khoá học DEVASC 200-901
Chứng chỉ DevNet (DEVASC 200-901) ra đời nhằm để xác nhận các kỹ năng của các nhà phát triển phần mềm, kỹ sư DevOps, chuyên gia tự động hoá và các chuyên gia về phần mềm. Chương trình chứng nhận các kỹ năng kỹ thuật mới nổi quan trọng cho một loại chuyên gia CNTT mới, trao quyền cho các tổ chức nắm bắt tiềm năng của các ứng dụng, tự động hóa và cơ sở hạ tầng cho mạng, IoT, DevOps và Cloud.
Hoàn thành khóa học này, các bạn có thể đảm nhận các vị trí như kỹ sư tự động (Automation Engineer), kỹ sư DEVOPS/Infrastructure, chuyên gia về hạ tầng mạng, cloud.
Chứng nhận yêu cầu một bài kiểm tra kiểm tra kiến thức của bạn về phát triển và thiết kế phần mềm, bao gồm:
Thời lượng khóa học: 120 giờ
2. Nội dung chi tiết chương trình lý thuyết
2.1. Software Development and Design – Thiết kế và phát triển ứng dụng
2.1.1. So sánh định dạng dữ liệu ( XML, JSON, YAML) với cấu trúc dữ liệu Python
2.1.2. Mô tả cách phân tích dữ liệu từ XML, JSON, YAML sang Python
2.1.3. Mô tả các khái niệm về test-driven development
2.1.4. So sánh các hướng phát triển phần mềm (agile, lean, waterfall)
2.1.5. Giải thích lợi ích khi sắp xếp code theo các methods/function, classes, modules
2.1.6. Xác định lợi ích của common design patterns (MVC and Observer)
2.1.7. Giải thích lợi ích của việc quản lý Version
2.1.8. Sử dụng git để quản lý Version
2.1.8.a. Clone
2.1.8.b. Add/remove
2.1.8.c. Commit
2.1.8.d. Push / pull
2.1.8.e. Branch
2.1.8.f. Merge and handling conflicts
2.1.8.g. Diff
2.2. Understanding and Using APIs- Tìm hiểu và sử dụng APIs
2.2.1. Xây dựng một yêu cầu truy cập REST API
2.2.2. Mô tả các mô hình sử dụng phổ biến liên quan đến webhooks
2.2.3. Xác định những hạn chế khi sử dụng API
2.2.4. Giải thích các code giá trị HTTP response (response code, headers, body)
2.2.5. Xác định lỗi dựa trên HTTP response code, request và tài liệu API
2.2.6. Xác định các thành phần của HTTP response (response code, headers, body)
2.2.7. Sử dụng các cơ chế xác thực API phổ biến: basic, custom token và API keys
2.2.8. So sánh các dạng API (REST, RPC, synchronous, and asynchronous)
2.2.9. Xây dựng Python script để gọi API REST bằng thư viện requests
2.3. Cisco Platforms and Development
2.3.1. Xây dựng Python script sử dụng Cisco SDK dựa trên tài liệu SDK
2.3.2. Mô tả khả năng của các nền tảng và API quản lý mạng của Cisco (Meraki, Cisco DNA Center, ACI, Cisco SD-WAN và NSO)
2.3.3. Mô tả khả năng của các nền tảng và API compute management của Cisco (UCS Manager, UCS Director và Intersight)
2.3.4. Mô tả khả năng của các nền tảng và API collaboration của Cisco (Webex Teams, Webex devices, Cisco Unified Communication Manager including AXL and UDS interfaces, and Finesse)
2.3.5. Mô tả khả năng của các nền tảng và API bảo mật của Cisco (Firepower, Umbrella, AMP, ISE, and ThreatGrid)
2.3.6. Mô tả device level APIs và dynamic interface của IOS XE và NX-OS
2.3.7. Giới thiệu các nguồn tài nguyên của DevNet về các tình huống được dựng sẵn (Sandbox, Code Exchange, support, forums, Learning Labs, and API documentation)
2.3.8. Áp dụng các khái niệm về lập trình hướng mô hình (YANG, RESTCONF, and NETCONF) trong môi trường của Cisco
2.3.9. Xây dựng code để thực hiện một hoạt động cụ thể dựa trên một tập hợp các yêu cầu và tài liệu tham khảo API đã cho, ví dụ:
2.3.9.a. Lấy list device hiện có trong môi trường mạng bằng cách sử dụng API của Meraki, Cisco DNA Center, ACI, Cisco SD-WAN, or NSO
2.3.9.b. Quản lý không gian, người tham gia và tin nhắn của Webex Team
2.3.9.c. Lấy list danh sách các hosts/ clients hiện có trong hệ thống mạng sử dụng Meraki, Cisco DNA center
2.4. Application Deployment and Security
2.4.1. Mô tả lợi ích của edge computing
2.4.2. Xác định các thuộc tính của các mô hình triển khai ứng dụng khác nhau (private cloud, public cloud, hybrid cloud, and edge)
2.4.3. Xác định các thuộc tính của các loại triển khai ứng dụng
2.4.3.a. Virtual machines
2.4.3.b. Bare Metal
2.4.3.c. Containers
2.4.4. Mô tả các thành phần cho CI/CD pipeline khi triển khai ứng dụng
2.4.5. Xây dựng Python unit test
2.4.6. Giải thích nội dung của Dockerfile
2.4.7. Sử dụng Docker image trong local developer environment
2.4.8. Xác định các vấn đề bảo mật ứng dụng liên quan đến bảo vệ bí mật, mã hóa (lưu trữ và vận chuyển) và xử lý dữ liệu
2.4.9. Giải thích cách tường lửa, DNS, cân bằng tải và reverse proxy trong triển khai ứng dụng
2.4.10. Mô tả các mối đe dọa OWASP hàng đầu (như XSS, SQL injections và CSRF)
2.4.11. Sử dụng các lệnh Bash (quản lý tệp, điều hướng thư mục và các biến môi trường)
2.4.12. Xác định các nguyên tắc thực hành DevOps
2.5. Infrastructure and Automation
2.5.1. Mô tả giá trị của model driven programmability cho tự động hóa cơ sở hạ tầng
2.5.2. So sánh cấp điều khiển với quản lý cấp thiết bị
2.5.3. Mô tả việc sử dụng và vai trò của các công cụ kiểm tra và mô phỏng mạng (như VIRL và pyATS)
2.5.4. Mô tả các thành phần và lợi ích của CI/CD pipeline trong tự động hóa cơ sở hạ tầng
2.5.5. Mô tả các thuộc tính hạ tầng mạng bằng code
2.5.6. Mô tả khả năng của các công cụ automation nhưu Ansible, Puppet, Chef, Cisco NSO
2.5.7. Xác định các quy trình làm việc khi tự động hoá bằng Python script bằng các API của Cisco (ACI, Meraki, Cisco DNA Center, or RESTCONF)
2.5.8. Xác định các quy trình làm việc khi tự động hoá bằng Ansible Playbook (management packages, user management related to services, basic service configuration, and start/stop)
2.5.9. Xác định các quy trình làm việc khi tự động hoá bằng bash script (file management, app install, user management, directory navigation)
2.5.10. Giải thích kết quả của truy vấn bằng RESTCONF và NETCONF
2.5.11. Giải thích cơ bản về YANG models
2.5.12. Giải thích về unified diff
2.5.13. Mô tả các nguyên tắc và lợi ích của quy trình code review
2.5.14. Giải thích sequence diagram bao gồm gọi hàm API
2.6. Network Fundamentals – Mạng căn bản
2.6.1. Tìm hiểu về mục đích và công dụng của địa chỉ MAC và VLANs
2.6.2. Tìm hiểu về mục đích và công dụng của địa chỉ IP, routes, subnet mask/ prefix, gateways
2.6.3. Tìm hiểu về chức năng của các thành phần trong hệ thống mạng ( switches, routers, firewall, cân bằng tải)
2.6.4. Các nguyên tắc của sơ đồ hệ thống mạng cơ bản (switches, routers, firewalls, cân bằng tải và giá trị port)
2.6.5. Tìm hiểu về các chức năng quản lý, dữ liệu và control plane của thiết bị mạng
2.6.6. Tìm hiểu về các dịch vụ IP như: DHCP, DNS, NAT, SNMP, NTP
2.6.7. Nhận biết các giá trị port của các giao thức cơ bản như SSH, Telnet, HTTP, HTTPS, và NETCONF
2.6.8. Xác định nguyên nhân gây ra lỗi kết nối ( NAT problem, Transport Port blocked, proxy và VPN)
2.6.9. Giải thích tác động của hạn chế trong mạng đối với ứng dụng
3. Nội dung các bài thực hành
4. Tài nguyên học tập, tài liệu tham khảo
5. Cách học và trình tự học
Về trình tự học, các bạn hãy bắt đầu từ chủ đề 1 – thiết kế và phát triển ứng dụng. Phần này giúp chúng ta nhận biết, phân tích về các định dạng dữ liệu thông dụng, các mô hình phát triển phần mềm và sử dụng Git để quản lý phiên bản ứng dụng.
Về chủ đề 2 – Tìm hiểu và sử dụng API, sẽ giải thích khái niệm API, các loại API và phân tích cơ chế xác thực trong API, các nội dung phần header, body, mã code trả về cho biết trạng thái của yêu cầu HTTP được phản hồi. Chúng ta sẽ có 2 bài lab trong chủ đề này: sử dụng postman và python script để lấy ticket. Khái niệm API này là một trong những khái niệm quan trọng và phổ biến nhất trong lĩnh vực mạng, phát triển phần mềm hiện tại và trong tương lai gần.
Tiếp theo là chủ đề 3. Sauk hi đã hiểu khái niệm API, chúng ta sẽ tìm hiểu về API trên các nền tảng của Cisco. Chủ đề này mô tả khả năng các nền tảng và API của Cisco về quản lý mạng, collaboration, bảo mật, giới thiệu các tài nguyên mà Devnet cung cấp để tìm hiểu, thực hành và giao lưu với nhau. Trong phần này các bạn sẽ thực hành bài lab dùng Postman và python script để lấy danh sách các thiết bị từ Network Controller (APIC-EM).
Chủ đề kế tiếp là về triển khai ứng dụng và bảo mật, mô tả các thành phần trong CI/CD giúp phát triển và triển khai ứng dụng nhanh chóng, được kiểm tra kỹ lưỡng để tránh xung đột; Chúng ta cũng tìm hiểu về khái niệm về Docker.
Chủ đề về cơ sở hạ tầng và tự động hóa mô tả lợi ích của CI/CD pipeline trong tự động hóa cơ sở hạ tầng, mô tả và thực hành với công cụ Ansible để cấu hình, quản lý mạng tự động hóa.
Cuối cùng là phần về mạng căn bản nói về các khái niệm cơ bản trong mạng, chức năng của các thành phần trong hệ thống mạng, các dịch vụ mạng và giới thiệu các port của các giao thức cơ bản.