Алексей
ага в bash
Max
а в баше ты не пользуешься BATS ?
Алексей
нет
Max
т.е. ты из гениев, которые не пишут с ошибками.
Max
повезло тебе.
Алексей
хз, пишу и пишу, фикшу и пишу.
Max
когда работаешь бывает что напишешь работает, потом через несколько изменений упс, сломалось. бывает?
Артём
Если ансибл использовать в одно рыло, то иногда проще без тестов. Сам сломал, сам заметил, сам исправил. Но если ты правишь роли, которыми пользуются несколько человек, и пушишь что-то с ошибками, что ломает деплой полусотне коллег - то тут начинаются поиски вариантов.
Алексей
а в баше ты не пользуешься BATS ?
BATS Global Markets — Википедия Что это вообще? ))
Max
https://github.com/sstephenson/bats
Алексей
Артём
Ручками прикатывается к проду?
Max
лол, а как же
Max
короче, если ты еще не дошел до тестирования, то пофигачь чуток, и приходи потом ;)
Алексей
Сначала на тестовых машинках, потом уже на прод везётся. На спец выделенные машинки
Max
Сначала на тестовых машинках, потом уже на прод везётся. На спец выделенные машинки
т.е. сейчас изменения в инфре автоматически не тетируются, и качество
Max
этих изменений зависит от 1 чела.
Max
тебя.
Алексей
короче, если ты еще не дошел до тестирования, то пофигачь чуток, и приходи потом ;)
я пытаюсь понять смысл (вроед понял) и нахуа городить огород. Вот я пока не понял этого.
Артём
Ну вот тестовые машинки молекулой поднимаются виртуальные, об них прикатывается роль, а сверху можно немножко тестов написать. Или пока не писать. Молекула уже сейчас сократит тебе путь на уровне molecule test.
Max
и как часто бывает косяк в проде ?
Max
4-5 уже самое то.
Max
она не машинки поднимает а контейнер.
Артём
Как нажмёшь molecule test, так и поднимет.
Алексей
и как часто бывает косяк в проде ?
хз, из-за раскатки инфры не было пока что
Max
может и машинку поднят.
Max
хз, из-за раскатки инфры не было пока что
а если и была, то ... скажем что не была.
Артём
Или контейнеры. И протестит развёртывание полного стека, что напишешь, то и натворит.
Max
🤣
Артём
Мы vmvare virtualbox за контейнер или за виртуальную машину считаем?
Алексей
Или контейнеры. И протестит развёртывание полного стека, что напишешь, то и натворит.
не знаю, это всё равно, что по мухам из дробовика стрелять. Проще на тестовую машину катнуть и посмотреть
Max
контейнер это то что рожает докер, кубер или lxc
Vladislav 👻
как показывает практика, все равно отладка идет на бою, просто потому, что сетевое окружение нельзя оттестить нормально
Max
она уже есть и запущена
т.е. она "грязная".
Алексей
ну или 10 минут из шаблона и катнуть на неё всё ещё 5-10 мин
Артём
не знаю, это всё равно, что по мухам из дробовика стрелять. Проще на тестовую машину катнуть и посмотреть
Смотри, иногда оно после правок работает на довести тачку до нового состояния, но ломается при этом что-то на этапе раньше.
Max
ну или 10 минут из шаблона и катнуть на неё всё ещё 5-10 мин
контейнер поднимается за 15 сек в худшем случае...
Артём
И ыот тут вместо 10 на из шаблона - у тебя 5 на всё с тестами.
Артём
А зачем тогда у тебя бывает «10 минут из шаблона»?
Алексей
контейнер поднимается за 15 сек в худшем случае...
в контейнере ядро другой версии чем на прод тачках и ещё некоторые моменты есть
Max
не сталкивался пока с таким.
мы говорим о философии разработки. есть философия: 1. я бог, могу легко все контролировать, и протестить, и не пропустить
Алексей
А зачем тогда у тебя бывает «10 минут из шаблона»?
это только если новую тестовую завести. Пока адрес руками мапим (знаю что фейспалм). Потому и так долго.
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
внутренний опен сурс.