@ru_docker

Страница 251 из 610
N
09.01.2017
13:53:37
в этом смысле "работает - не трогай" это плохое правило, потому что оно превращает каждый деплой в аварийную и исключительную ситуацию

Vyatcheslav
09.01.2017
13:54:20
если с такой стороны посмотреть - то да

Aleksey
09.01.2017
13:54:55
работает - не трогает - это адское наследие предыдущего поколения. Сейчас все стремятся к повторяемости - не знаешь как повторить - не трогай :)

Pavel
09.01.2017
13:56:25
работает - повтори и не трогай

Google
Aleksey
09.01.2017
13:56:51
а сам ssh может быть вреден, точнее не сам ssh, а например sftp - нарывался на ситуации, когда канал забит в полочку - sftp просто перестает работать

N
09.01.2017
13:56:55
работает - повтори и не трогай
ну если так разве что

а сам ssh может быть вреден, точнее не сам ssh, а например sftp - нарывался на ситуации, когда канал забит в полочку - sftp просто перестает работать
ну ssh вреден в том смысле, что мало ли что там поменяли на сервере и никто не знает теперь, что происходит

Aleksey
09.01.2017
13:57:32
это да

никаких ssh на сервер! :))

N
09.01.2017
13:57:46
так что blue/green и вперед

Aleksey
09.01.2017
13:57:54
угу - самое верное

Виталий
09.01.2017
13:57:56
во

blue\green это из какой оперы?

хорошо что вы сказали про проблемы деплоя по ssh.

Aleksey
09.01.2017
13:58:39
https://habrahabr.ru/post/309832/

Виталий
09.01.2017
14:00:15
шикарно! Спасибо

Pavel
09.01.2017
14:01:09
А что там на картинке? 2 разные базы?

Google
Виталий
09.01.2017
14:01:15
у меня только всегда остается открытым вопрос базы данных. Как можно тестировать приложение на живых данных и при этом не на живой базе? Копировать базу каждый раз может быть сложно из-за ее размера...

Ну и соответственно у продакшена одна база

Виталий
09.01.2017
14:01:38
изменения не всегда только со стороны кодовой базы, но и структуры БД

Pavel
09.01.2017
14:01:43
С базой начинаются пляски, да ) Сложная тема

Виталий
09.01.2017
14:01:47
ну, а как решать-то?

Aleksey
09.01.2017
14:01:56
ну как - никак

Виталий
09.01.2017
14:02:01
есть какой-то красный\коричневый вариант для базы?

Aleksey
09.01.2017
14:02:02
зависит от приложенния

Pavel
09.01.2017
14:02:03
ну, а как решать-то?
Миграциями обратно-совместимыми

N
09.01.2017
14:02:04
ну тестами и стейджингом

Aleksey
09.01.2017
14:02:07
частично миграции помогают

но частично

Виталий
09.01.2017
14:02:44
ну тестами и стейджингом
вот у меня выше вопрос - как тестить на живых данных но не на живой базе?

Pavel
09.01.2017
14:02:54
Если база хорошо нормализована и у нее четкая схема есть, то тестирование на стейджинге снижает риск проблем на продакшене

Aleksey
09.01.2017
14:03:13
Виталий
09.01.2017
14:03:30
самый простой вариант это делать еженедельно копию БД продакшена и там тестировать.

Vyatcheslav
09.01.2017
14:04:01
а что ты имеешь ввиду под тестовым приложением и как ты хочешь его тестировать?

Google
Vyatcheslav
09.01.2017
14:04:19
ага

Виталий
09.01.2017
14:07:41
ага
ну смотри. Есть код приложения и у него есть два состояние дев и прод. Отличаются они конфигами. Я пока сталкиваюсь с тем, что для теста приложение надо немного подшаманить: сменить конфиги БД, добавить настроек и входных скриптов... и кароче получается что тестируем приложение с одними конфигами, а на прод уходят другие - не дело это. Хочется запаковать код в контейнер и больше в нем для теста ничего не менять, а, например, линковать к контейнеру с кодом контейнер с тестовой базой (копию прода) и там тестить. Ну а как тестить... автотестами :)

Vyatcheslav
09.01.2017
14:10:54
а мб просто тесты писать интеграционные? Проблему нашел - понял - написал интеграционный тест - он свалился - пофиксил проблему - фикс ушел в прод

если говорить о ручном тестировании, то скорее всего живые данные в большом объеме не нужны. А все остальные можно залить самостоятельно. У нас вот, например, есть специальная миграция с тестовыми данными

Виталий
09.01.2017
14:13:31
а мб просто тесты писать интеграционные? Проблему нашел - понял - написал интеграционный тест - он свалился - пофиксил проблему - фикс ушел в прод
какой бы тест я не написал, запускать его надо в окружении максимльно близком к продакшену. И, если я правильно понимаю, после теста код приложения не должен меняться (ни конфиги ни любые другие файлы)

Aleksey
09.01.2017
14:14:19
а мб просто тесты писать интеграционные? Проблему нашел - понял - написал интеграционный тест - он свалился - пофиксил проблему - фикс ушел в прод
Изменили структуру бд, протестили - выкатили на прод, спустя некторое время выяснилось - ага вот тут косяк - нужно откатить - но так просто это уже не сделать - структура другая и данные уже с новой структурой. Такое бывает редко, но раз в год бывает - в этом проблема с бд

Виталий
09.01.2017
14:14:55
если раз в год, то допустимо :)

если каждый деплой, то ппц

Aleksey
09.01.2017
14:15:16
если каждый деплой, то ппц
это диагноз тогда уже :)

Виталий
09.01.2017
14:15:18
гитХАБ деплоит код на продакшен по 20 раз в день

на хабре статья была. СмеЛЫЕ ребята. Видать у них все на столько отлажено что можно деплоить в полном автомате.

Semyon
09.01.2017
14:16:14
> Смешые ребята. > Смешные

Aleksey
09.01.2017
14:16:15
гитХАБ деплоит код на продакшен по 20 раз в день
не показатель - там же тоже куча сервисов

Pavel
09.01.2017
14:16:15
Нужно придерживаться просто некоторых правил, и тогда 90% миграций проходят безболезненно. И даже откатить можно.

Виталий
09.01.2017
14:16:22
Смелые**

Semyon
09.01.2017
14:16:28
они не смелые, они умные

20 раз в день хуйня

есть люди, которые сотни раз в день деплоятся

Aleksey
09.01.2017
14:17:00
амазон например

Виталий
09.01.2017
14:17:02
ну код заливать не проблема, тесты пиши и все.

Google
Semyon
09.01.2017
14:17:11
по факту, если ты большой продуктовый бизнос с веб-приложением — это обязательное условие выживания

в 2017

Виталий
09.01.2017
14:17:22
а вот когда чет с базой меняется, я хз как так делать чтобы все на автомате.

иконку перед монитором поставить и пальцы крестить качественно :)

Pavel
09.01.2017
14:19:23
есть люди, которые сотни раз в день деплоятся
Ты имеешь в виду людей которые прямо на продакшене пишут код?

Виталий
09.01.2017
14:19:35
хаха

Виталий
09.01.2017
14:21:41
у меня CI на каждый коммит работает ~10 мин. Мне не с чем сравнить, так как первый мой CI сценарий. Но это моного или нормально? 1. Сборка кода 2. Сборка контейнеров 3. Релизит контейнеры после теста 4. Выкладывает на прод

Semyon
09.01.2017
14:22:22
лучше напиши тайминги каждой фазы

Admin
ERROR: S client not available

Semyon
09.01.2017
14:22:29
если у тебя сборка занимает 8 минут, то хуле тут делать

а вообще 10 минут это довольно много, как по мне

Pavel
09.01.2017
14:23:00
Это как-то многовато оверхеда, на каждый комит пересобирать все.

Ты каждый комит чтоли деплоишь на прод?

Виталий
09.01.2017
14:23:40
пока что да :) Но планирую разбить по веткам чтобы только деплой на прод столько занимал

Compile: 1 minute 13 seconds Build: 3 minutes 29 seconds Release: 1 minute 10 seconds Deploy: 1 minute 44 seconds

Aleksey
09.01.2017
14:28:52
а тесты?? :))

Виталий
09.01.2017
14:29:12
их пока что нет, так что и запускать нечего:)

Pavel
09.01.2017
14:29:15
И что значит фаза Release ?

Google
Виталий
09.01.2017
14:29:51
контейнеры тестовые метятся тегами релиза и пушатся в регистри

типа nginx_latest_test => nginx_latest

засирается регистри контейнерами сильно, но пока другого не придумал.

Semyon
09.01.2017
14:31:28
ммм, build это билд контейнера?

чот долго

оно там все зависимости ставит штоле?

Виталий
09.01.2017
14:32:27
да, там собирается два конетйнера. И да, там зависимости проекта ставятся.

Semyon
09.01.2017
14:32:40
вот тут можно же пооптимизировать

у тебя зависимости часто меняются?

сделай, например, base image с уже установленными зависимостями

и зашедуль его сборку раз в сутки ночью

а все контейнеры собирай унаследованными от этого имиджа

выиграешь много времени на сборке

Виталий
09.01.2017
14:33:40
Спасибо, отличный вариант!

Aleksey
09.01.2017
14:33:56
более того, там все сведется к ADD app/

Виталий
09.01.2017
14:33:57
А как бы сделать так, чтобы не засирать регистри контейнерами с метками?

Aleksey
09.01.2017
14:34:18
гарбедж коллектор в регистри настроить

Виталий
09.01.2017
14:34:56
а такое в gitlab registry есть? я не находил :(

Semyon
09.01.2017
14:36:02
Насколько я помню, гитлаб реджистри работает поверх обычного реджистри

Виталий
09.01.2017
14:37:25
Да, нашел какие-то заметки в гугле. Почитаю, спасибо!

Anatoly
09.01.2017
15:00:19
А/б тестирование не?

Ну и потом не удивляйтесь ах у нас данные клиентов утекли лол

Виталий
09.01.2017
15:01:44
А/б тестирование не?
а/б тестирование чего?

Страница 251 из 610