Alexander 🐕
Раз уж это машина целиком
Alexander 🐕
И это нечеловечески долго
Alexander 🐕
А образ LXC собирать? Да ну его нахер
Alexander 🐕
Лучше докер сразу
Alexander 🐕
Нет - ну, можно packer + lxc
Alexander 🐕
Сколько человек в мире делают packer + lxc?
Alexander 🐕
Это можно делать на билд сервере
Можно из буханки и катушки ниток сделать троллейбус
Alexander 🐕
Но зачем?
Dmitrii
Сначла объясните зачем мне в инфраструктуре 100 контейнеров
Sergey
Можно из буханки и катушки ниток сделать троллейбус
Докер - по сути и есть такой троллейбус.
Dmitrii
Когда все можно упаковать в 15 штук
Alexander 🐕
Докер - по сути и есть такой троллейбус.
Нет, докер, по сути, это декларативный интерфейс к императивным вещам
Alexander 🐕
С понятными conventions
Alexander 🐕
И довольно удачным
Sergey
Нет, докер, по сути, это декларативный интерфейс к императивным вещам
Ну с точки зрения того что у него под капотом - это дикий бутерброд
Alexander 🐕
Они могли бы быть поудачнее, но для старта и так норм
Alexander 🐕
Ну с точки зрения того что у него под капотом - это дикий бутерброд
В императивном мире Unix-систем иначе не получается
Alexander 🐕
А то давно бы додумались
Alexander 🐕
Впрочем, есть же Nixpkgs
Alexander 🐕
Но, опять же, сколько человек в мире про это знают
Sergey
UNIX как раз подразумевает одна тулза = одна задача
Alexander 🐕
UNIX как раз подразумевает одна тулза = одна задача
И этот принцип не работает за пределами своих граничных условий (сюрприз!)
Alexander 🐕
А граничные условия у него наступают на каждом шагу
Alexander 🐕
Все эти ваши микросервисы возможны только в проектах, где можно пожертвовать локальностью данных
Alexander
Сначала скажи что в этом хорошего
мы разделяем 1 большую систему на много мелких - это хорошо, проще найти ошибку
Alexander 🐕
А где нельзя - добро пожаловать в kernel space
Evgeniy
https://www.ansible.com/press/ansible-2.1?utm_campaign=ansible%202.1&utm_content=32938244&utm_medium=social&utm_source=twitter
Sergey
Все эти ваши микросервисы возможны только в проектах, где можно пожертвовать локальностью данных
Стоп, так докер же как раз для микросервисов удобнее всего. Разве нет?
Alexander 🐕
Стоп, так докер же как раз для микросервисов удобнее всего. Разве нет?
Если уж говорить за микросервисы, удобнее всего для них Golang
Alexander 🐕
Который статическим бинарником распространяется
Alexander 🐕
Правда, там с вендорингом пока какая-то жопа
Alexander 🐕
Но это починят
Dmitrii
мы разделяем 1 большую систему на много мелких - это хорошо, проще найти ошибку
Кто сказал что в моей системе сложно найти ошибку? Я же объяснил что апп сервер у меня атомарен. Не работает - выкинуть из апстрим нахер значит
Sergey
Я про то, что база отдельно, фронтенд отдельно, бекенд разбит на кучу компонентов и тоже отдельно. Разве не это базовый принцип докера?
Alexander 🐕
Впрочем
Alexander 🐕
Почему через REST
Alexander 🐕
msgpack is fine too
Dmitrii
я не говорил, что сложно) но когда 1 контейнер = 1 сервис, то это очень наглядно видно всё
ТАК У МЕНЯ ТАК И ЕСТЬ. Только за сервис у меня взята - рабочая еденица.
Dmitrii
Ты бы еще юникс утилиты запаковал в докер и приебашил к ним сокет
Dmitrii
Пиздец. Все.
Alexander
просто если сломается сервер - так проще будет поднять с 0
Alexander
на сервере только 1 программа - докер
Alexander
всё остальное в контейнерах
Alexander
чем больше програм стоит на сервере - тем выше риск того, что обновление системы что-то сломает
Alexander
а если там просто голая система с 1 единственным докером - тут ничего не сломается
Alexander
если физического доступа к серверу нет и KVM нет, а только доступ по ssh - это всё ненужные риски
Alexander 🐕
И базовую систему на хосте становится можно апдейтить атомарно
Alexander 🐕
Транзакционно
Alexander 🐕
Не завелось - откатил базовую прямо целиком
Dmitry
и получилась базовая coreos :D
Alexander
с докером уже не страшно админить серверы
Alexander 🐕
точно так же может быть kvm, lxc, lxd, rkt, etc...
И сколько человек в мире может так сделать на базе LXC или KVM?
Alexander
и не страшно ставить апдейты ОС
Alexander 🐕
(И сколько они попросят денег за труд?)
Sergey
И потом эти компоненты общаются через HTTP REST
Ну вот я о том и говорю, что докер пропагандирует Unix way, микросервисы, одна задача = один контейнер и при этом сам представляет из себя монолитного монстра.
Dmitrii
У меня на хосте голая система с lxc.
Dmitrii
Problems?
Dmitrii
Я еще в поезде еду, так что тут инет пропадает эпизодически.
Sergey
И сколько человек в мире может так сделать на базе LXC или KVM?
Как так? Поставить lxc на хостовую систему, создать контейнер и накатить все внутри пакетами через тот же ansible? А что тут сложного, в чем rocket since?
Alexander 🐕
Ну вот я о том и говорю, что докер пропагандирует Unix way, микросервисы, одна задача = один контейнер и при этом сам представляет из себя монолитного монстра.
Сам из себя он представляет программу на Golang И ничего не пропагандирует Но attack surface у него большой, это да
Alexander 🐕
У меня вот стояла Fedora 19 С KVM и более ни с чем
Alexander 🐕
Но атомарно заапдейтить ее до 21 не удалось
Alexander 🐕
Пришлось вообще сносить нахрен
Alexander 🐕
Но то такое
Sergey
Атомарно заапдейтить ее теперь
Смотря что подразумевается под атомарностью мы пакетами обновляемся. Внутри virtualenv со всеми зависимостями.
Alexander
а питон поменяется после обновления системы
Alexander 🐕
Смотря что подразумевается под атомарностью мы пакетами обновляемся. Внутри virtualenv со всеми зависимостями.
Что подразумевается под атомарностью, можно поглядеть в Project Atomic или в Ubuntu Snappy
Sergey
Мажорно - нет
Alexander
ну вот пример из недавней практики - жил был сервачок с 15.10 убунтой) питон стоял через https://github.com/yyuu/pyenv , была пара проектов там, каждый в своей pyenv-virtualenv, запускалось это всё через uwsgi... обновилась система на 16.04 LTS, uwsgi сломался и не захотел заводиться,
Sergey
Если только на сервере не rolling release дистрибутив