Coding/Network: Автоматизация (общее), программирование для сетевых инженеров, сетевая автоматизация (devnet, netdevops, netops); ZTP

  • Про системы конфигурации отдельная статья – CMS
  • Про NMS отдельная статья – NMS
  • (devnet, CMS annet) Нужно общаться с пользователям очень плотно если вы автоматизируете из работу – собирать требования/фидбеки, реагировать
  • Опрос на habr.
Как Вы управляете конфигурацией?
33.61% Ручное редактирование конфигурационных файлов - 40
31.93% GitOps - 38
20.17% Web UI - 24
14.29% другое - 17
Проголосовали 119 пользователей.


Читать дальше

Coding: Python

  • Python.org – основной сайт. Тут можно скачать актуальный python на windows/linux/mac os, посмотреть документацию
  • Гвидо ван Россум – творец языка. По сути аналог Линус Торвальдса для Linux. 1989 год Голландский разработчик Гвидо ван Россум в качестве хобби-проекта во время рождественских каникул создает язык программирования Python.


Читать дальше

Статистика и математика в IT

  • Сюда переношу все, что связано со статистикой и нужно было на практике – в тестировании, разработке и в других инженерных задачах.
  • Нужно уметь применять статистику (с этим часто проблема) и
    • если задача найти максимальное расстояние между значениями ряда/выборки – то среднеквадратичное отклонение не подходит, нужно считать размах
    • если задача найти максимальное расстояние от среднего – то среднеквадратичное отклонение тоже не подходит, нужно считать максимальное относительное отклонение

(статистика, python, сетевое тестирование)

В целом же можно порекомендовать делать pandas describe на выборку для получения разнообразной статистики:

        • count 94248.000000 – количество элементов (размер выборки)
        • mean 1.691554 – среднее
        • std 0.979690 – стандартное отклонение (величина высокая)
        • min -0.108278 – меньше этого гарантировано (на основе выборки) не будет
        • 25% 0.396944 – 25% выборки выше этого значения
        • 50% 2.301407 – медиана (median)
        • 75% 2.348383 – 75% выборки ниже этого значения
        • max 6.486859 – больше этого гарантировано (на основе выборки) не будет

Так же может дополнительно быть необходимо:

        • 1%
          • https://www.rfc-editor.org/rfc/rfc9693.html


Читать дальше

Network: HTML, HTTP, browsers разные хинты

HTTP
http QUERY

<стартовая строка>: method, URI, http version
<заголовки>
<тело запроса>
  • В заголовке в поле Host передается адрес сервера (fqdn/ip), что позволяет напр. на web сервере с множеством сайтом определить какой сайт отдавать
  • Клиент и сервер могут использовать разные версии протокола НТТР, при этом все будет работать корректно.


Читать дальше

Основы тестирования (Quality Assurance)

Tests can make good code great!
  • Статья о IXIA
  • Бажат все, даже такие ведущие вендоры как Cisco (особенно Firepower :D). Важно насколько сырой продукт в текущем состоянии и как быстро исправляют проблемы.
из чатика:
на 65 залипает или вообще не работает вплс, на а1к перестают анонситься маршруты, нцс просто тупо сырые.


Читать дальше

Основы VCS на примере Git, patch/diff

  • https://git-scm.com/ – тут крутые entry видео, документация и прочее
  • с помощью ChatGPT Deep Research можно изучить любой GitHub проект

 

patch/diff
  • Утилита patch позволяет создать код на основе diff одной версии кода от другой
  • До сих пор на kernel.org есть возможность обновить одну версию ядра на другую используя diff между последовательными версиями через утилиту patch, это позволяет не выкачивать весь код, а скачать diff и применить его через patch
  • В целом patch/diff старый допотопный способ vcs (один разраб отправлял diff другому и тот через patch мог получить версию кода разраба), сейчас при разработке ядра linux не используется в пользу git, но при этом патчи до сих пор используются, например
    • для поддержки драйвера RAID в каком то ядре поставщик может предоставлять софт в виде патча для определенной версии ядра
    • для задач безопасности, например, grsecurity, выпускающий ранее бесплатно (теперь платно) патчи безопасности для ядра и доп.


Читать дальше

Curl/wget разное

https://httpie.org/ – а еще есть такая “модная” альтернатива curl/wget

 

CURL

  • При генерации такого предупреждения CURL может сбрасывать соединение и по факту не докачивать файл, нужно всегда в случае файлов скачивать их с указанием –output и пути до файла (можно /dev/null)
Warning: Binary output can mess up your terminal.


Читать дальше

Linux: bash спец. символы, man, переменные (> >> $ & # ~/$HOME $USER \ | /n \t ^M $? * ; ()), redirect stdout/stderr, ALIAS, bashrc, profile; программирование в bash (полезные скрипты, получение опций в скриптах, функции, условия, циклы, case, массивы)

~ echo $SHELL
/bin/bash

bash-3.2$ echo $SHELL # MACOS
/bin/zsh
  • (ping, nmap, xargs, bash) Ping целой подсети /24 в 253 потока.



Читать дальше

Linux xargs: запуск утилит на список, простая многопоточность в bash

  • (ping, nmap, xargs, bash) Ping целой подсети /24 в 253 потока.
for ip in 10.3.1.{1..254}; do ping -c5 ${ip} & done

 

xargs позволяет легко запускать утилиты на списки аргументов, даже если утилиты не поддерживают работу со списками. Реализуется простейшим образом – xargs каждый раз заново вызывает утилиту при запуске на список.

Читать дальше

Coding, Network: API и методы работы с ним (SOAP, REST, JSON, XML, YAML, TOML, YANG, TOML, protocol buffers/Apache Thrift, graphQL; SWAGGER, WSDL, WADL; restconf, netconf; Cisco PXGRID)

  • В общем про api и методы взаимодействия с ними (rest, yang, soap, xml, json, restconf/netconf, etc) в отдельной статье
  • CLI зачастую >>> всех других методов, пример яндекс со своей «Аннушкой» работает именно поверх CLI
    • Мы про это расскажем в докладах, но нет, cli – как общий знаменатель для всего.



Читать дальше