7 Января, 2019

Cisco DevNet как платформа для обучения, возможности для разработчиков и инженеров

Cisco Systems
Cisco DevNet — это программа для программистов и инженеров, которая помогает разработчикам и специалистам в области ИТ, которые хотят писать приложения и развивать интеграцию с продуктами, платформами и интерфейсами Cisco.
DevNet существует в компании менее пяти лет. За это время специалистами компании и сообществом программистов созданы программы, приложения, SDK, библиотеки, фреймворки для работы с оборудованием/решениями Cisco.

В рамках программы есть возможность развития в направлении обучения так и для компаний/команд разработчиков. В следующих статьях я более детально опишу касательно возможностей для компаний. Ниже я опишу про возможности для обучения и программирования под Cisco. Стоит отметить что определенные навыки и знания которые вы можете получить работая с песочницами или обучаясь на платформе можно легко использовать при работе с другими вендорами. Безусловно есть много уникальных решений которые доступны только в решениях Cisco, и навыки работы с ними позволяют, в том числе дифференцироваться от конкурентов как на рынке труда так и на рынке разработки приложений. Благодаря лидерству Cisco во многих сферах вам будет где применить свои знания на практике.


Сейчас доступны инструменты и ресурсы по следующим направлениям: Networking, Security, Data Center, Collaboration, IoT, Cloud, Open Source, Analytics and Automation SW. По каждому из направлений есть отдельные обучающие лабы. Много обучающей информации и практических заданий собраны в модули которые позволяют познакомиться с основными аспектами технологии или программирования устройства/решения.

Если расписывать и давать ссылки на все возможности, вряд ли кто-то из вас дочитал бы статью до конца. Поэтому из всего разнообразия я выбрал для вас популярные направления про которые написано ниже.

Основы.
Сейчас существует множество языков программирования и фреймворков каждый из которых может лучше и/или быстрее выполнять определенные задачи. Когда мы говорим про языки важно также понимать что скорость выполнения задачи очень редко есть основным и единственным критерием для выбора языка программирования.
Для разработчиков также важны такие критерии как:
  • поддержка и развитие языка
  • фреймворки которые могут упростить решение разных задач
  • комьюнити
  • наличие готовых библиотек

Если говорить про направления разработки в разрезе применения, то есть два направления application и infrastructure.


В сфере разработки для инфраструктуры (infrastructure development) есть пару языков программирования которые, в том числе за счет большого комьюнити и созданных на них приложений пользуются популярностью. Тут стоит выделить Python (разработаны такие продукты как Ansible, Salt) и Go (разработаны такие продукты как docker, kubernetes, grafana)

С чего можно начать обучаться разработке приложений?
В модуле “ Programming Fundamentals ” можно начать с основ, где можно узнать что такое API, git, основы языка Python, научиться работать с форматом JSON в Python.

Модуль “ Setting up Your Desktop OS for Network Programmability ” расскажет про установку необходимых библиотек, работе с NETCONF/YANG, использование Ansible c компьютера.

Большинство API имеют понятный для человека формат ключ-значение:


Если у вас есть трудности с использованием языков программирования для решения тех или иных задач вы можете использовать инструмент для работы с API — Postman. Графический интерфейс Postman понятен и значительно упрощает работу с REST API устройств. На обучающей платформе для знакомства с Postman есть отдельный модуль . Кроме того есть готовые коллекции для Postman для работы с различными устройствами, например для работы с Cisco Digital Network Architecture Center (DNA-C) или с Webex Teams .

Network programmability.
Сегодня решения и оборудование Cisco становится более программируемым кроме Southbound APIs (таких как CLI, SNMP ...) все больше и больше устройств и решений начинают поддерживать Northbound APIs (такие как Web UI, RESTful). Программистам привычно и лучше работать с данными с которыми можно взаимодействовать программными методами, например RESTful API в формате JSON, или модель YANG (протоколы NETCONF/RESTCONF).
По направлению Network programmability существует отдельный раздел где можно тестировать, анализировать и реализовывать свои идеи. При разработке приложений которые взаимодействуют с сетевым оборудованием важно тестировать свой код и решения на оборудовании. В рамках программы есть возможность пользоваться песочницами в категории Networking . При работе с данным направлением у вас также будет возможность получать доступ к различным устройствам и, в том числе, через ssh. Изменяя конфигурацию устройств или проводя другие действия с оборудованием и сетью, вы сможете смотреть реагирует ли ваше приложение на эти изменения так как и было задумано при разработке или нет.

Кибербезопасность
Про открытые API и возможность программировать и обучаться в этой сфере уже было написано в этой статье . Можно добавить что для решения вопросов безопасности и быстрого реагирования на инциденты в рамках SOC (Security operation center) важна настройка и интеграция SIEM (Security information and event management) систем. В частности навыки настройки таких систем очень востребованы на рынке. По ссылке ниже можно использовать готовую инфраструктуру для работы с Firepower Management Center, Cisco Firepower Threat Defence и Splunk .

NetDevOps
В этом направлении есть хороший модуль который познакомит вас с контейнерами, микросервисами, ci/cd
В рамках этого направление доступны песочницы где можно поработать с Cisco Container Platform, Istio, ACI & Kubernetes, Contiv & Kubernetes, Knative и др.

Плюсы программы:
  • Возможность бесплатно приобрести знания и навыки которые востребованы на рынке
  • Наличие рынка потенциальных пользователей и клиентов для ваших приложений. По различным направлениям доступны сотни тысяч решений и оборудования которым пользуются клиенты Cisco
  • Разнообразие направлений. Проанализировав порталы для разработчиков других компаний вендоров могу сказать что доступность различного оборудования/решений для программирования и тестирования своего кода в разы лучше чем у других компаний


Выше вы могли коротко познакомиться с DevNet и возможностями для разработчиков, в следующих статьях мы сможем познакомиться с другими разделами, а также какие возможности для создания продуктов на базе оборудования и решений Cisco доступны для компаний.