
Artem
01.05.2017
04:13:20
по делу - выпускать сегодня приложение без маломальского CICD немодно, вредно и непродуктивно
да ещё и на пхп.
особенно в k8s
работать не будет.
как вы это тестить собрались я тоже не увидел. расскажите, очень интересно.
или сурово без тестов сразу в бой?

Google

Artem
01.05.2017
04:18:32
я бы вам рекомендовал нанять девопса, он вам все процессы настроит, там недолго, но эффективно

Victor
01.05.2017
06:53:18
которое ваше сообщение читаю, и ни одного дельного совета, только сферические размышления в вакууме как надо писать и на чем

Artem
01.05.2017
07:18:24
чего они сферические? они конкретные. надо настроить cicd. Иначе прод работать не будет. у пхп специфика такая, что там постоянно нужен штат админов. если ещё не наладить деплой, то двойной штат
для конкретных советов нужно больше информации. сколько у вас бекендов, как вы деплоитесь, как тестите и прочее

Let Eat
01.05.2017
08:05:03

Artem
01.05.2017
08:05:52
как это тестить?

Let Eat
01.05.2017
08:06:41
Причем тут тесты? Это способ запуска/упаковки/доставки. Оно ортогонально тому тесты это или прод или еще чтото

Artem
01.05.2017
08:09:43
это не религия, это здравый смысл.
мапить исходники - идея довольно плохая в случае с кубернетесом. можно намапиться до разных версий бекенда в проде. если бекенд один, вопросов нет. если 50 то работать уже вряд ли будет
в случае с пхп, сомневаюсь, что бекенд один

Let Eat
01.05.2017
08:12:09
. Чем замена версии докер имаджа в каком-то deployment.yaml отличается от замены git commit id в том же самом deployment.yaml? И там и там поды будут перезапущены согласно стратегии.

Ihor
01.05.2017
08:19:17

Artem
01.05.2017
08:22:35
надо где-то хранить соответствие докеримаджа и гиткоммита внутри него. чтобы мы понимали что мы это потестили

Google

Artem
01.05.2017
08:23:19
если релизы раз в день, то очень скоро все станет непонятно

Let Eat
01.05.2017
08:24:47

Artem
01.05.2017
08:27:03
тогда зачем все эти сложности? собирать сразу докеримадж с кодом внутри, его тестить и в прод
там наверняка юйй какой нибудь, кода больше, чем сам докеримадж весит

Let Eat
01.05.2017
08:28:47

Artem
01.05.2017
08:31:46
а зачем тут люди? дженкинс же или подобные
меньше ненужной работы людям, больше времени сделать что-либо полезное в приложении
дженкинс пусть срабатывает на коммит. меньше вероятности ошибки

Let Eat
01.05.2017
08:36:54
а зачем тут люди? дженкинс же или подобные
Да причем тут дженкинс? Еще раз: Мэпинг исходников в под не противоречит Ci Cd. В конце концов что-то где-то обновит deployment.yaml и сделает kubectl apply. Обновится поле докер имаджа иди гит коммита - не важно. Будет ли это обновление елать человек, робот, или коллегия на архитекторов на ежегодном заседании анонимным голосованием - это не было в вопросе и нет в моих ответах, но есть в ваших почему тл

Artem
01.05.2017
08:39:23
правильно. зачем делать просто и эффективно. надо делать сложно и непрозрачно
в лаптопе поиграться можно что угодно делать и как угодно. в большом приложении с кучей бекендов лишняя сумятица ни к чему.

Victor
01.05.2017
08:51:24
с каких пор работа с гитом непрозрачна?

Artem
01.05.2017
08:54:15
разговор про деплой, а не работу с гитом

Let Eat
01.05.2017
09:10:13

Artem
01.05.2017
09:11:00
?
всё зависит от приложения. в одной большой конторе так и делают до сих пор. поэтому там семь админов и все плохо спят.

Let Eat
01.05.2017
09:18:15
Да чем хуже то? Не лучше и не хуже, просто по-другому. Назовёте технические аргументы чем оно так плохо?

Artem
01.05.2017
09:22:28
непонятно как это тестить, человеческий фактор, нарушение 12factors,

Let Eat
01.05.2017
09:23:50
Брр.. да как так то? вот есть cI/cd все тесты прошли в итоге релиз в прод. последнее действие: обвновить deployment.yaml , какая разница что в нем обновлять: верси имаджа или гит коммит?
человеческий факто тут причем?и то и то могут обновлять как роботы, так и человек, ничего про это не было в вопросе

Google

Artem
01.05.2017
09:28:05
гит коммит и версия имаджа должна быть протестирована вместе. мы может просто про разные приложения говорим? где один имадж раз в год меняется и две виртуалочки с кодом?
у меня 47 имаджей есть в проде сейчас и 12 релизных версий приложения например
приложение большое, его сразу не перепишешь, по частям только.
пхп там тоже есть
практика с маппингом коммита там просто не работает. работает другая, про которую я рассказал. в других реалиях, возможно, сработает и маппинг. но зачем делать неправильно, а потом переделывать, когда можно сразу сделать нормально и избавить себя от проблем в будущем

Let Eat
01.05.2017
09:35:54

Artem
01.05.2017
09:35:54
тем более Best practices уже есть, доки по этому делу тоже. тот же 12factors покрывает 80% всех вопросов

Let Eat
01.05.2017
09:38:48
php-fpm просто запускалка кода. точно так же как ядро, докер и версия куба: их обновления как-то тестируются +- степень паранои, но в целом обычно не идет речь о перетестировании всех приложений во всех окружениях
в результате каких процессов источник этого тарбола обновился вообще к вопросу отношения не имеет

Fike
01.05.2017
09:44:53

Let Eat
01.05.2017
09:47:57
Артефакт != ревизия в скв
ой да ладно? а если я закомичу артефакт в гит ? :) на если сеьезно, все равно одно и то же, если гарантируется, что если процесс перехода из ревизии в артефакт повторяем. в случае PHP этого элементарно добиться

Fike
01.05.2017
09:50:15
Давайте без ой да ладно

Let Eat
01.05.2017
09:50:56
А по существу?

Fike
01.05.2017
09:53:13
По существу выше
Если хотите передергивать - пожалуйста

Let Eat
01.05.2017
09:54:51
чем
FROM nginx
COPY src /mypath
и потом в кубе:
containers:
- image: nginx-and-sources
настолько принципильно отличается от
containers:
- image: nginx
name: nginx
volumeMounts:
- mountPath: /mypath
name: git-volume
volumes:
- name: git-volume
gitRepo:
repository: "git@somewhere:me/my-git-repository.git"
revision: "22f1d8406d464b0c0874075539c1f2e96c253775"
что во втором случае прям контора утонет в админах и будет еле дышать?

Artem
01.05.2017
09:55:40
этап сборки, релиз и выполнения не определён чётко. имадж и гит коммит надо тестировать вместе. либо хранить где-то пары протестенных айди.

Let Eat
01.05.2017
09:56:54

Google

Let Eat
01.05.2017
09:57:31
и там и там есть относительно часто меняющаяся версия и относительно стабильная среда выполнения
> этап сборки
/bin/true
> релиз
обновления deploy.yaml сначала в тестовом, потом препрод, потом в прод кубе
> выполнения
всё в deployment.yaml, определено четко
если вам нужен формализм, то ваш артефакт не image:version, а кусок yaml , вот и гоняйте его по всем стадиям вашего ci cd, ничего принципиально не меняется

Artem
01.05.2017
10:05:10

Let Eat
01.05.2017
10:06:54

Fike
01.05.2017
10:09:26
И все равно это не артефакт

Admin
ERROR: S client not available

Let Eat
01.05.2017
10:09:51
она _может_ быть не детерменированной
а может и быть такой

Fike
01.05.2017
10:10:39
Она всегда будет недетерминированнрй, несмотря на теоретическую возможность обратного
Всегда так

Let Eat
01.05.2017
10:11:04

Artem
01.05.2017
10:11:22
у меня нет доверия к разработчикам. я должен быть уверен, что мой имадж работает с любым коммитом.
разве плохо это?

Let Eat
01.05.2017
10:11:52

Fike
01.05.2017
10:12:51

Let Eat
01.05.2017
10:13:12

Fike
01.05.2017
10:13:22

Let Eat
01.05.2017
10:13:59

Google

Let Eat
01.05.2017
10:14:57

Fike
01.05.2017
10:15:17

Let Eat
01.05.2017
10:17:16
Хлеб это зерно
при рассуждениях что "надо бы хлеб, а есть только зерно", наличие возможности в любой момент превратить зерно в хлеб разве не делет такие рассуждения бессмысленными?

Fike
01.05.2017
10:17:41
Хлеб все равно не зерно
Даже если свести все к гитлеру

Let Eat
01.05.2017
10:18:17

Fike
01.05.2017
10:19:08
Я вообще не понимаю, что мы обсуждаем

Artem
01.05.2017
10:22:01
я уже тоже. пойду уже коньяк пить в конце концов.

Let Eat
01.05.2017
11:10:19
у кого-нибудь Dex + LDAP работает? Еще не ставил у себя, но пытаюсь понять где TTL для токена задается

Sergey
01.05.2017
11:53:57
В конфиге декса

Zon
01.05.2017
12:16:44
Может я не очень хорошо знаю работу gitRepo, но мне кажется, что если комит из гита потерли, то перезапустить или отскейлить под уже не получится.

Konstantin
01.05.2017
12:26:19
контейнер должен быть иммутабелен и баста

Let Eat
01.05.2017
12:32:48

Artem
01.05.2017
12:55:08
это разные области ответственности) не знаю, кстати, как можно из гита стереть коммит. с позиции админа, у реджистри есть бекапы. разработчики бекапы как правило не делают и пролюбливают все чаще.
имадж пересобираться же может, он в себе ничего не хранит stateful
а то, что есть, описано в dockerfile
с гитом сложнее, там постоянно чет мержат, ревертят, черипикают и сквашат

Zon
01.05.2017
13:03:47
это разные области ответственности) не знаю, кстати, как можно из гита стереть коммит. с позиции админа, у реджистри есть бекапы. разработчики бекапы как правило не делают и пролюбливают все чаще.
Git squash, например. То, что делать это с мастером не очень бестпрактис, это другое дело. И если гит-сервер недоступен, то аутоскейлинг тоже недоступен. Да, имаджстор тоже может уйти в даун, но это одна сущность вместо двух. + Доступ на запись к имаджстор имеют, как правило, меньше людей. ( в идеале ноль )

Artem
01.05.2017
13:04:32
?

Let Eat
01.05.2017
13:10:58

Artem
01.05.2017
13:29:07
зачем сравнивать несравнимые вещи? докеримадж сделаем immutable и совпадает он с dockerfile. но при пересборке могут прилететь обновления пакетов и все, приплыли.