Network: Cisco VPP (Vector Packet Processing)

  • Очень много презентаций о VPP на сайте fd.io
      • Разобрал только эту “How to Push Extreme Limits of Performance and Scale with Vector Packet Processing Technology”
  • Netgate TNSR – один из известных комерческих проектов, использующих VPP
  • Есть даже аппаратные ускорения VPP на базе спец.


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

Security: основная статья

Карта РФ ИБ

База

Коварно ввели admin/admin, обстоятельства непреодолимой силы не позволяли обновить php, хак утилита cat и привилигерованный контейнер 🤣😁

https://disk.yandex.ru/i/Pn4ToLvOz7pMVg


Пару примеров о том, что детально описано ниже, до огромной статьи.

  • ИБ – это про «может поможет, а может нет, думайте сами и никаких гарантий».


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

Linux: ядро (kernel), процессы /proc в ОС и работа с ними (proc, ps, lsof, nice, kill, killall, top, lscpu, interrupts, smp irq affinity, isolcpus, taskset, cpuset/cset shield), утилизация процессора (user/system/idle/iowait/softirq)

  • kernel parameters /proc/cmdline (можно редактировать конфигом GRUB)
  • kernel parameters modification /etc/sysctl.conf
  • В Linux все рассматривается как файлы, включая устройства (/dev) и процессы (/proc)
  • Любые изменения в /proc директории немедленно применяются kernel
All changes to files in /proc/ are immediately recognized by the kernel.


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

NIC, Linux: работа NIC, работа с сетевыми интерфейсами (ifconfig, ip, ethtool, interfaces – lspci network, lshw network, RSS), smart NIC, pci nic


BASIC
  • COMPARING NET-TOOLS VS. IPROUTE PACKAGE COMMANDS
  • veth – virtual eth
  • nic в VM имеют имена типа ens32 как попытка избежать конфликта с физическими адаптерами
  • В новом linux kernel 6.7. Добавлен новый тип виртуальных сетевых устройств “netkit”, логика передачи данных в которых задаётся при помощи BPF-программы.


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

Linux: DPDK, HYPERSCAN, SNABB; NETMAP DNA, PFRING, XDP; hugepages

  • вот пример как nginx гонять поверх стека на VPP https://wiki.fd.io/view/VPP/HostStack/LDP/nginx

с точки зрения техники там производится ldpreload модуля, который подменяет необходимые сисколлы на свое ((аналогично встраивается и openonload))
  • Сравнение Netmap DNA и PFRING. Довольно подробное есть тут.
Even if DNA and netmap have been developed in totally independent ways, they solve the same problem: how to move packets back/forth a network adapter without using too many CPU cycles.


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

Coding: архитектура, программирование и разработка, подходы, best practices, devops, containers (k8s, docker, nomad, mesos), releases, waterfall/agile, scrum, sprints, CI/CD, Serverless computing, Microservice Architecture; ITIL/IT management; shift left ; KISS/SSOT; балансировка/шардирование; документирование

Программирование Best Practices

  • Почему все не стоит писать на С: Потому что в абсолютном большинстве веб приложений бутылочным горлышком является база данных, а не код приложения. Нет смысла тратить в разы больше ресурсов для улучшения производительности на 5%.

  • Почему исполняемый файл имеет зачастую большой объем: Например, если скомпилировать hello world на go, то он будет весить 2-3 мегабайта, потому что в бинарнике будет весь рантайм (сборщик мусора и всякие библиотеки для работы с IO операционной системы).



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

Linux: работа с текстом (fmt, sed, awk, tr, cut, cat/tac, tee, column, uniq, sort)

GREP в отдельной статье

fmt
  • примеры есть в cheat.sh
  • вариаций форматирования много

Форматирование данных на входе – к примеру по умолчанию fmt осуществит форматирование, которое приведет к лучшему чтению:

    • объединение слов в одну строку если слов мало в каждой строке
    • или наоборот, вместо одной длиной строки сделает несколько коротких
root@serv:~# cat >sw
Hello
world
and
not
world
root@serv:~# fmt sw
Hello world and not world

root@spr:~# cat >sw
Hello world and not world Hello world and not world Hello world and not world Hello world and not world Hello world and not world Hello world and not world
root@spr:~# fmt sw
Hello world and not world Hello world and not 
world Hello world and not world Hello world 
and not world Hello world and not world 
Hello world and not world


tr ; CUT
  • подмена всех символов на lower
echo <WoRd> | tr '[:upper:]' '[:lower:]'
  • подмена всех пробелов на \n (все слова с новой строки)
echo <file> | tr ' ' '\n'
  • The cut utility cuts out selected portions of each line (as specified by list) from each file and writes them to the standard output
# Print a range of each line with a specific delimiter:
command | cut --delimiter="," --fields=1

# Print a specific character/field range of each line:
command | cut --characters|fields=1|1,10|1-10|1-|-10

Подмена всех пробелов (в том числе повторяющихся) на одну запятую с использованием tr и опции -s

 -s Squeeze multiple occurrences of the characters listed in the last operand (either string1 or string2) in the input into a single instance of the character.


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

Network: Packet Broker, Balancer (пакетные брокеры и L3-L7 балансировщики: nginx, haproxy, f5, nfware, etc)

  • (Ngfw с выдержками, proxy/balancer только header) Выдержка из статьи цифровых решений (dsol) о плюсах intel qat на базе cpu (тк у них нет продукта балансера с реализованным decrypt они это пиарят)
  • Пакетные брокеры с функционалом балансировки. Часто встречаемое решение в последнее время, особенно в фин.


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

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

Сюда переношу все, что связано со статистикой и нужно было на практике – в тестировании, разработке и в других инженерных задачах.

Арифметической прогрессией (арифметической последовательностью) – последовательность с фиксированным инкрементом. Для меня

Арифметической прогрессией (арифметической последовательностью) - называется последовательность чисел a1,a2,...,an,


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

Coding: Python

  • Python.org – основной сайт. Тут можно скачать актуальный python на windows/linux/mac os, посмотреть документацию
  • Гвидо ван Россум – творец языка. По сути аналог Линус Торвальдса для Linux.
  • Python – the second best language for everything. И это действительно так, включая новые-модные devops, AI, BigData, autotests.


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