قطعا همه ادمین های شبکه در شرایطی قرار گرفته اند که مجبور شده اند نسبت به پیکربندی تعداد زیادی از تجهیزات شبکه شامل روتر و سوئیچ به منظور انجام تغییرات مدنظر اقدام کنند. درنظر بگیرید یک ادمین برای انجام هر پیکربندی لازم است مراحل مشخصی که به صورت تکراری هم هستند انجام دهند .
به عنوان مثال فرض کنید ادمین شبکه می خواهد نسبت به انجام یک کار تکراری مثلا نوشتن description در یک اینترفیس مشخص در 200 عدد روتر اقدام کند. مجموعه اقداماتی که ادمین در پیکربندی یک روتر باید انجام دهد به شرح زیر است :
- وارد کردن نام کاربری و پسورد جهت وارد شدن به محیط پیکربندی روتر
- وارد شدن به اینترفیس موردنظر
- اعمال دستور description
- Write کردن پیکربندی
- خروج از پیکربندی تجهیز
فرض کنید در حالت ایده آل برای پیکربندی هر روتر مدت زمان 1 دقیقه لازم باشد بنابراین برای 200 روتر نیاز به 200 دقیقه (بیش از 3 ساعت) زمان نیاز است تا این پیکربندی انجام شود.
از این رو مفاهیمی مانند Automation بوجود آمدن، بدین معنی که انجام کارهای تکراری را به نرم افزارها بسپاریم. این امر از یک سو موجب افزایش سرعت و دقت انجام پیکربندی ها می شود و از سوی دیگر موجب می شود تا زمانی (200 دقیقه) که ادمین مجبور است نسبت به پیکربندی تک تک تجهیزات صرف کند را به سایر امور تخصیص دهد.
دسترسی و پیکربندی تجهیزات از طریق CLI (command Line Interface) انجام می شد و می شود. تا پیش از این از روش هایی مانند Bash Scripting یا EEM(Embedded Event Manager) برای مباحث اتوماسیون استفاده می شد.
یکی از مشکلاتی که استفاده از اتوماسیون بر مبنای CLI دارد آن است که با مجموعه ای از دستورات پیکربندی سروکار داریم که به صورت Text یا در واقع String می باشند. انجام تغییرات با این ساختار نیاز به آشنایی با فرمت های regex به منظور تفکیک نمودن بخش های مختلف Text فایل و کار برای روی آنها است.
یکی از زبان های برنامه نویسی که از ساختار Syntax ساده تری برخوردار است و در عملیات اتوماسیون بسیار کاربردی می باشد زبان برنامه نویسی Python است. این زبان برنامه نویسی با مجموعه گسترده ای از libraryها و Packageها عملیات اتوماسیون را تسهیل می نماید. به عنوان نمونه netmiko library به منظور دسترسی به مجموعه گسترده ای از تجهیزات شبکه و امنیتی استفاده می شود.
همچنین برای برخی از تجهیزات مانند تجهیزات سیسکو که از IOS استفاده می کنند اقدام به معرفی کتابخانه هایی مانند Ciscoconfparse شده است که از طریق آن بتوان بر مشکل دستکاری String ها که پیش از این ذکر شد فایق آمد و می توان عملیات دستکاری در پیکربندی تجهیزات سیسکو بر مبنای IOS را تسهیل نمود.
مدت دوره: 75 ساعت
پيش نياز: آشنایی با مفاهیم شبکه
مخاطب:
- مهندسان و متخصصان شبکه
- مهندسان نرم افزار و برنامه نویسان
اهداف دوره:
در انتهای اين دوره دانشجويان قادر خواهند بود:
- آشنایی با ساختارهای توسعه و طراحی نرم افزار و قابلیت های ورژن کنترل
- آشنایی با زبان برنامه نویسی پایتون و توانایی در برنامه نویسی با استفاده از این زبان برنامه نویسی
- آشنایی با فرمت های داده ، APIها و مکانیزم های ارتباط بین نرم افزارها و تجهیزات
- آشنایی با پلتفرم های زیر و APIهای مربوط به آنها:
- مدیریت تجهیزات Cisco Enterprise Networking )شامل Meraki، DNA، SD-WAN)
- مدیریت تجهیزات Cisco Datacenter and Compute Management (شامل ACI و UCS)
- مدیریت تجهیزات Cisco Collaboration (شامل Webex Teams، Webex Meeting ، Cisco Finesse)
- مدیریت تجهیزات Cisco Security (شامل Umbrella ، Firepower ، ISE)
- آشنایی با زیرساخت های اتوماسیون سازی
سرفصل دوره:
1. Introduction to Cisco DevNet Associate Certification
1.1. Cisco DevNet Overview
2. Software Development and Design
2.1. Software Development Lifecycle
2.2. Common Design Patterns
2.3. Linux Bash
2.4. Git
3. Introduction to Python
3.1. Understanding Python Syntax
3.2. Data Types and Variables
3.3. Input and Output
3.4. Flow control with Conditionals and Loops
4. Python Functions, Classes and Modules
4.1. Python Functions
4.2. Python Classes
4.3. Python Modules
5. Working with Data in Python
5.1. File Inputs and Outputs
5.2. Parsing Data (CSV, JSON, XML, YAML)
5.3. Error Handling
6. Application Programming Interfaces (APIs)
6.1. Application Programming Interfaces
7. RESTful API Requests and Responses
7.1. RESTful API Fundamentals
7.2. REST Constrains
7.3. REST Tools
8. Cisco Enterprise Networking Management Platforms and APIs
8.1. Cisco Meraki
8.2. Cisco DNA Center
8.3. Cisco SD-WAN
9. Cisco Datacenter and Compute Management Platforms and APIs
9.1. Cisco ACI
9.2. UCS Manager
9.3. Cisco UCS Director
9.4. Cisco Internight
10. Cisco Collaboration Platforms and APIs
10.1. Introduction to the Cisco Collaboration Portfolio
10.2. Webex Teams
10.3. Webex Meeting APIs
10.4. Webex Devices
10.5. Cisco Finesse
10.6. Cisco Unified Communication Manager
11. Cisco Security Platforms and APIs
11.1. Cisco Umbrella
11.2. Cisco Firepower
11.3. Cisco AMP
11.4. Cisco ISE
12. Model-Driven Programmability
12.1. NETCONF
12.2. YANG
12.3. RESTCONF
13. Deploying Applications
13.1. Application Deployment Models
13.2. Application Deployment Options
13.3. Application Deployment Methods
13.4. DevOps
13.5. Docker
14. Application Security
14.1. Identifying Potential Risks
14.2. Protecting Applications
15. Infrastructure Automation
15.1. Automation Tools
15.2. CI/CDP
15.3. NSO
16. Network Fundamentals
16.1. Network Reference Models
16.2. Switching Concepts
16.3. Routing Concepts
17. Networking Concepts
17.1. Elements of Networks
17.2. SDN
18. IP Services
18.1. Common Networking Protocols
18.2. NAT
18.3. Layer2 versus Layer3 Network Diagram