Алексей
ага в bash
Max
а в баше ты не пользуешься BATS ?
Алексей
нет
Max
т.е. ты из гениев, которые не пишут с ошибками.
Max
повезло тебе.
Алексей
хз, пишу и пишу, фикшу и пишу.
Max
когда работаешь бывает что напишешь работает, потом через несколько изменений упс, сломалось. бывает?
Артём
Если ансибл использовать в одно рыло, то иногда проще без тестов. Сам сломал, сам заметил, сам исправил.
Но если ты правишь роли, которыми пользуются несколько человек, и пушишь что-то с ошибками, что ломает деплой полусотне коллег - то тут начинаются поиски вариантов.
Max
Max
https://github.com/sstephenson/bats
Алексей
Алексей
Артём
Алексей
Артём
Ручками прикатывается к проду?
Max
лол, а как же
Max
короче, если ты еще не дошел до тестирования, то пофигачь чуток, и приходи потом ;)
Алексей
Сначала на тестовых машинках, потом уже на прод везётся. На спец выделенные машинки
Max
Max
этих изменений зависит от 1 чела.
Max
тебя.
Артём
Ну вот тестовые машинки молекулой поднимаются виртуальные, об них прикатывается роль, а сверху можно немножко тестов написать. Или пока не писать.
Молекула уже сейчас сократит тебе путь на уровне molecule test.
Алексей
Max
и как часто бывает косяк в проде ?
Max
4-5 уже самое то.
Алексей
Max
она не машинки поднимает а контейнер.
Артём
Как нажмёшь molecule test, так и поднимет.
Max
может и машинку поднят.
Артём
Или контейнеры. И протестит развёртывание полного стека, что напишешь, то и натворит.
Max
🤣
Артём
Мы vmvare virtualbox за контейнер или за виртуальную машину считаем?
Max
контейнер это то что рожает докер, кубер или lxc
Max
Алексей
Vladislav 👻
как показывает практика, все равно отладка идет на бою, просто потому, что сетевое окружение нельзя оттестить нормально
Алексей
ну или 10 минут из шаблона и катнуть на неё всё ещё 5-10 мин
Max
Артём
И ыот тут вместо 10 на из шаблона - у тебя 5 на всё с тестами.
Алексей
Артём
А зачем тогда у тебя бывает «10 минут из шаблона»?
Max
не сталкивался пока с таким.
мы говорим о философии разработки. есть философия:
1. я бог, могу легко все контролировать, и протестить, и не пропустить
Max
у меня философия: я человек. не хочу не забывать ненужные последовательности без нужды, пуская робот сволочь это помнит.
Артём
Понял. Ну, я при достаточной сложности всего развёртывания уже устаю следить руками, где что может сломаться.
Алексей
Ок парни я вроде понял, ничего против не имею. Вопрос в другом - как это всё применить?
Max
Алексей
какой воркфлоу? не представляю даже
Артём
https://molecule.readthedocs.io/en/stable/
Инициализировать в роли, чуть-чуть настроить (провайдер виртуализации, ос) и запустить molecule test.
Max
1. создаешь роль с молекулой
2. пишешь тесты
3. запускаешь молекулу, и она фейлит все тесты
4. пишешь таски, уменьшаешь фейлы
5. добиваешь все фейлы.
Max
tdd
Max
test driven development
Алексей
угу, понятно.
Алексей
2-й пункт пока неясен. Пошёл "куритьманы"
Артём
Тесты можно сначала не писать. С линтером разобраться, посмотреть, какие шаги делает molecule test
Max
погоди курить.
Max
линтер кстати хорошая тоже штука. запускается молекулой, и кричит где у тебя говнокод.
Max
и еще главное, допустим есть роль, нормальная.
Max
приходит жалоба: при таких то условиях роль хулиганит.
Max
если условия понятны, ты без молекулы ... должен создать эти условия, родить ежа.
Max
при молекуле ты создаешь эти условия легко
Max
пишешь тест, и он у тебя фейлится (reproducing!)
Max
и ты его чинишь...
Алексей
угу, понятно.
Max
как взрослый ;)
Max
а если ты создаешь условия, и не репродюсится бага, ты можешь говорить с жалующимся, у тебя в руках тест, который условия создал.
Max
может человек ошибся.
Max
и у вас есть общая терминология, и понимание.
Max
а так каждый замухоморится и будет защищаться... я прав, ты не прав...
Алексей
ага, хороший кейс
Max
и при таком раскладе открываешь роли для contributions в команде. только мержишь.
Max
внутренний опен сурс.