понедельник, 19 мая 2014 г.

Isida project. Что это такое и как начиналось.

Попробую рассказать о том, что это за зверь такой и нафига он такой красивый нужен. В "официальной" документации этого прочитать не получится, потому что мне очень лениво писать об этом в README/README.md еще и на английском языке.
На данный момент я работаю (уже шестой год) в интернет-провайдере масштаба... скажем, уже не районного, но пока еще и не очень городского. Последние два с половиной года в качестве инженера уровня доступа и инженера второй линии технической поддержки. Так получилось, что "большой" сетевик у нас один, и его со временем на L2-свитчи стало не хватать. Целый сегмент работы у нас довольно долгое время "висел" бесхозным, "пришлось" взять. Ну, на самом деле мне на тот момент это было интересно.
Так вот. Со временем количество свитчей уровня доступа ощутимо перевалило за три тысячи, все чаще и чаще начали возникать всякие глупые инциденты, связанные с неправильными настройками. Все это, конечно, перестало меня устраивать довольно давно, но как следует развернуться у меня получилось только после того, как у меня появился напарник, который практически добровольно забрал на себя бОльшую часть рутинной работы. 
Идея, которую я долго вынашивал, получила возможность реализоваться. Заключалась она в том, чтобы сеть "сама себя лечила", т. е. чтобы в сети был какой-нибудь механизм автоматического анализа и исправления конфигов. Ситуацию усложняло еще и то, что свитчи у нас, хоть и от одного и того же вендора и практически одного сегмента, имели некоторые, местами весьма существенные различия в синтаксисе конфигов (хорошо, хоть с бинарными конфигами не было). Заодно ходили слухи о том, что нам возможно придется ставить оборудование других вендоров тоже, поэтому одним из условий реализации было приведение конфигов к единому формату. В результате ничего умнее классического ini-файла не придумалось.
В общем, на данный момент получилась кучка shell-скриптов (perl/python/что-нибудь не осилил), которая вполне успешно работает у меня в тестовом режиме, довольно шустро проверяет "всякое", разве что еще не исправляет. Теперь попробую поспамить этим куда-нибудь, авось, кому-нибудь пригодится.

Isida project

Завел себе github-репозиторий с новым проектом. Описание и тонкости будут позже.

https://github.com/vlad-syan/isida