# Понедельник 17 твитов
Привет, меня зовут Кирилл, я живу в Тель-Авиве и пишу бигдату на JS, а также занимаюсь девопсом на Амазоне.
10:05Раньше писал веб, но теперь пишу только API либо инфраструктурные сервисы, которые бегут в контейнерах время от времени.
10:08У нас есть свой data pipeline, который наша компания к тому же продает в виде сервиса - aws.amazon.com/redshift/partn…
10:10У нас везде докер, но не на ECS, а генерация CloudFormation нашим домашним deployment tool
10:30Вообще связка docker-compose + crontab + CloudFormation очень сильна.
10:31У докера куча проблем, но объективно он очень сильно упростил provisioning благодаря изоляции контейнеров друг от друга
12:31Если раньше надо было беспокоиться о зависимостях, то сейчас они либо внутри контейнера, либо вынесены в отдельный контейнер
12:33А хост-систему настраивать остаётся по минимуму, если вообще
12:33Например, наши сервера бегут на Amazon Linux, в большинстве контейнеров CentOS/Debian, нам нужен только Docker daemon и docker compose
12:38Все общие таски типа логов, синхронизации файлов вынесены в отдельные контейнеры
12:39С одной стороны, контейнеризация приносит оверхед и усложнение разработки, с другой стороны с маленькими компонентами работать проще
12:41Предлагаю на неделе обсудить контейнерные технологии, opensource, разработку ядра, конференции, сообщества. Если не против, тогда начнём.13:17
Мы пользуемся схемой blue/green deployment, то есть каждый раз продакшен создаем заново, потом они бегут параллельно, потом старый отключаем
13:17Я считаю, что полная перестройка лучше обновления, потому что нет проблемы отката (который может и не работать)
13:18Скажу совершенно банальную вещь, но одна из самых важный вещей для профессионального развития - свободный английский.
16:03@jsunderhood вообще есть мнение что фронтенд в большинстве своем не про алгоритмы
Да и бэкенд тоже twitter.com/_asci/status/7…
19:18# Вторник 38 твитов
Если переезжаете в другую страну, обязательно ходите на митапы, это поможет вам потом, когда соберетесь менять работу
10:13Сейчас подруга пишет - хочу пойти работать в стартап, все нравится, но у них нет маков. Это странно, везде на маке работал.
10:39@rubyunderhood Ну, это главное. Смузи, доширак и макбук - таков набор стартаперов? Аль уже иное в моде?
Я просто не понимаю нужды в маке.
про доширак не знаю, у нас нормальные зарплаты в стартапах - $5-7k до налогов twitter.com/alexwayfer/sta…
10:44@rubyunderhood Ну, это главное. Смузи, доширак и макбук - таков набор стартаперов? Аль уже иное в моде?
Я просто не понимаю нужды в маке.
Люди привыкли работать на маках и, естественно, когда приходят на новое место, тоже хотят работать на маках twitter.com/alexwayfer/sta…
10:45@rubyunderhood "У нас" - это мало понятно где. Вьетнам? Украина? Китай? Россия?
Тель Авив twitter.com/alexwayfer/sta…
10:45@rubyunderhood $5-7к в год, как я понимаю? Потому как в Америке, где з/п измеряется в $, рассматривается сумма за год.
В месяц, конечно twitter.com/alexwayfer/sta…
10:47@rubyunderhood >Очень сильно нравится компания? Смиряешься с тем, что там есть. Ну или не смиряешься и не идёшь. Всё просто же,обычный выбор
Некоторые компании просто делают нетипичный для индустрии выбор (или не дают опции) и отталкивают разработчиков twitter.com/alexwayfer/sta…
10:51Ни разу не пожалел, что написал к проекту тесты, а вот наоборот бывало довольно часто. Пишите тесты, это окупается.
11:38Всегда храните время в UTC и не используйте кастомные форматы хранения данных и/или шифрование, это не приносит ничего, кроме проблем
12:10Задача "живой" миграции процессов и групп процессов одна из самых интересных и сложных в разработке контейнеров. Сегодня поговорим про нее.
Это интересная задача, но зачем нужно мигрировать state? Может, проще писать stateless системы? twitter.com/backendsecret/…
12:12@rubyunderhood Ага, бывает что тесты лучше чем проект.12:15
@rubyunderhood в любой системе есть стейт.
Есть, но его можно вынести вовне, чтобы не привязываться к конкретному воркеру и скейлить их как угодно twitter.com/zhulikgleb/sta…
12:16Своя компания - способ максимально быстро избавиться от розовых очков в отношении программистов и сильно ослабить свою веру в людей12:17
“Живая” миграция это миграция контейнера с низким временем недоступности (downtime). Это 1-2 секунды.12:21
Такая задержка в обслуживании, которая не повлечёт за собой разрыв открытых сетевых соединений.12:21
. @rubyunderhood Для инфраструктуры, которую вы полностью контролируете подходит вариант stateless.
У нас в компании все заточено на сервисы Амазона (EC2, S3, SQS, RedShift, RDS), и большая часть сервисов stateless twitter.com/backendsecret/…
12:24. @rubyunderhood В хостинге контейнерами управляет клиент и его окружение не всегда воспроизводимо, чтобы убить контейнер и поднять заново.
Да, хостинг это совершенно особый мир, где приложения не твои и ты не можешь за ними ничего почистить twitter.com/backendsecret/…
12:25. @rubyunderhood поэтому хостеру нужно перенести контейнеры на другой сервер, чтобы выполнить обслуживание сервера12:25
Если пользуетесь Амазоном, то переводите все сервисы на роли и нормально разбивайте из на policies, которые можно подцеплять к разным ролям
12:26Это сэкономит вам кучу времени в дальнейшем, потому что управление ключами это бессмысленная боль, а роли все делают за вас
12:27И совершенно очевидно, что никогда не стоит привязывать сервисы к ip, а не к security groups - это убивает autoscaling, зачем себе вредить?
12:29Один инстанс выключаем и выполняем обслуживание. Качество сервиса не страдает. Потом включаем обратно.
А вы не предоставляете свой heroku-like environment? twitter.com/backendsecret/…
12:30Одна из лучших вещей, которую можно сделать с S3 - прицепить event на загрузку/копирование файла; event идет в SQS, забираете и процессите
12:33Относитесь к серверам как к commodity - если вы не можете автоматически поднять копию своего сервиса за 5-10 минут, то у вас что-то не так
12:40@rubyunderhood а своего мака нету чтоль?
Зачем свой мак, если тебе его выдает компания? twitter.com/timrael/status…
13:31На сегодняшний день "живая" миграция в LXC, Docker и Virtuozzo 7 работает с помощью CRIU. criu.org/Integration13:32
Кстати возвращаясь к теме про stateless. Как известно, Docker это stateless. Но были желающие, которым нужна была "живая" миграция в Docker.13:45
Это только подтверждает право на жизнь обоих подходов.13:45
@rubyunderhood скажите это на PCI DSS сертификации 😩
А причем тут сертификация на хранение кредитных данных? Пусть Виза этим занимается twitter.com/railsme/status…
13:49@rubyunderhood это я про шифрование.
А что шифрование? Оно должно быть стандартным, без самописных шифров и прочего бреда twitter.com/railsme/status…
13:50Имелось в виду кастомное шифрование, конечно же. Никогда, никогда так не делайте. twitter.com/rubyunderhood/…13:59
Containers in Dev vs Prod pic.twitter.com/YqDHvigW8r17:48![]()
Want to work at a fancy todolist maker? You must recite O-notation for all data structurespic.twitter.com/q2DCncD3vy
Хороший пример идиотского интервью twitter.com/dhh/status/714…
17:54Как вы связываете свои микросервисы? Мне кажется, что очередь + внешнее хранилище типа S3 - довольно удачный вариант
20:16@sqrel @rubyunderhood ну так свой же компьютер какой-то есть? Я про это говорю, придётся на две машины все ставить
Зачем на две? Работа отдельно twitter.com/timrael/status…
20:38@Timrael @rubyunderhood так наоборот же. У тебя есть 1 макбук, который компания предоставила
Такое twitter.com/sqrel/status/7…
20:39Ни разу такого не было, но ладно twitter.com/hatarist/statu…
21:27# Среда 35 твитов
@gaar4ica @rubyunderhood свой надо таскать на работу, это минус. Да и компанию это в большинстве случаев характиризует1:28
@gaar4ica @rubyunderhood из личного опыта, в таких компаниях экономят на всем: нету CI, бомжехостинг в виде одного единственного сервера1:28
@Bugagazavr @rubyunderhood это никак не характеризует компанию. Сегодня нет - завтра принесли стопочку из маков и раздали по столам :)
Вот когда принесут, тогда пусть и зовут на работу twitter.com/gaar4ica/statu…
9:58Если не читаете на английском художественную литературу, читайте хотя бы журналистику - New York Times, Washington Post.
10:02Если пишете текст на любом языке, пользуйтесь простыми предложениями и не пытайтесь выглядеть умнее. Избегайте канцелярских оборотов.
10:04@rubyunderhood @Bugagazavr ох, ну как же так? Неужели кто-то выбирает работу из-за ноутбука. Звучит абсурдно
Не надо упрощать. Просто один из критериев - отношение к разработчикам twitter.com/gaar4ica/statu…
10:07Пишите будто вы третьекласник twitter.com/rubyunderhood/…
90% людей не умеют писать, не имеют вкуса и путают “глубину” и “глубинку”. twitter.com/cluevick/statu…
10:20@Bugagazavr @Shiroginne @rubyunderhood вот моя практика другая. И компания, в которой я работаю - не единственная с единорогами и радугой.
Я не вижу смысла ждать, если можно устроиться на работу в компанию, где уже все есть twitter.com/gaar4ica/statu…
10:20Избегайте компаний, у которых переработки - это часть культуры. Это или эксплуатация, или идиотизм.
10:27Помните, что ваши интересы и интересы работодателей кардинально различаются. Работать за идею в коммерческой организации - абсурд.
10:29Если вы ей не владеете, конечно.
10:30@gaar4ica @Shiroginne @rubyunderhood дважды пытался внедрить CI, дважды завернули, ведь стоит денег
Ужасно, когда компания не желает улучшать свою культуру twitter.com/bugagazavr/sta…
10:32@rubyunderhood и каждый хочет мак и выбирает исходя из этого место работы.
Проблемы работодателя twitter.com/cluevick/statu…
10:32Повышайте культуру вокруг себя - пишите тесты, сделайте стейджинг, автоматизируйте деплой. Остальные подтянутся.
10:36@rubyunderhood прекрати правду-матку резать в среду утром! так и хочется домой пойти :)10:37
Лучше пойти в компанию, где ничего нет и есть желание сделать нормально, чем в компанию, где ничего нет и которая не хочет менятся
10:44@rubyunderhood все вот про мак... а мне не нравится мак, ни ос ни железо. не возьмут в хипстерскую контору с маками? :)
Не знаю, спроси в хипстерской конторе twitter.com/oleg_antonyan/…
10:54@rubyunderhood @SiliconBangalor пхаха. Норма жизни это.
Я много лет без переработок, так что не везде это норма twitter.com/neformatws/sta…
11:38@rubyunderhood Лучше документацию читайте, чем политику. Не надо засорять моцк.
Документация не научит вас писать на английском twitter.com/tanraya/status…
11:39@rainrb @Shiroginne @gaar4ica @rubyunderhood Только если проект стоит моего мучения с линуксом, который не везде нормально работает
Как вы определяете “интересный проект”? 90% индустрии занимаются продажей рекламы кому-нибудь. twitter.com/bugagazavr/sta…
12:06@jsunderhood сейчас много IoT кода пишется на JS, как минимум на этапе прототипирования12:06
@rainrb @Shiroginne @rubyunderhood на прошлой работе мне вручили галимый леново с i3, такой же я бабушке своей покупал12:10
@Bugagazavr @gaar4ica @Shiroginne @rubyunderhood Jenkins же бесплатный
Давайте вспомним про total cost of ownership, а также боль и страдания от дизайна Jenkins twitter.com/vassilevsky/st…
12:39@jsunderhood Почему не взять человеческий C и не начать выжимать все соки из железки?
Си не человеческий, там даже строк нет twitter.com/webholt/status…
12:40@rubyunderhood они велики :(12:45
@rubyunderhood На переработки можно соглашаться с условием двойной почасовой оплаты. У них будет разумный выбор, у вас - печеньки.
А есть какие-то нормальные компании, которые практикуют почасовую оплату? Зачем? twitter.com/alexwayfer/sta…
12:46@oleg_antonyan @rubyunderhood ну если тебе хочется виндоус: то это будет твоя проблема. Начиная с покупки, закачивая сетапом проекта
Ну сетап да, но покупка это жлобство какое-то twitter.com/ptico/status/7…
12:46@iamstarkov @webholt На самом деле даже v8 не готов к иммутабельности если в объекты добавляются новые поля. Это плодит скрытые классы
Большую часть времени приложение ждет i/o, нереально получить просадку по производительности из-за _.extend({}, {}) twitter.com/jsunderhood/st…
13:07@webholt @iamstarkov @jsunderhood ну это же глупости. Пока в Виларибо ищут, какая падла изменила объект, в Вилабажо уже пьют пиво13:08
Постарайтесь минимизировать количество shell-скриптов где угодно: их трудно поддерживать и они полны багов. Sh это не язык программирования.
13:16Если вам нужно сделать какой-то maintenance task, возьмите лучше Python либо генерируйте shell-скрипт своим кодом, а потом отдавайте | bash
13:17Постарайтесь не использовать нигде cp, mv, rm; `find -exec` убирает ограничение на количество обрабатываемых файлов.
13:20@vassilevsky @gaar4ica @Shiroginne @rubyunderhood а сервер на котором его крутить - нет
Ну сервер ничего не стоит почти, а времени жалко twitter.com/bugagazavr/sta…
13:43@oleg_antonyan @rubyunderhood а, linux у меня вообще чисто с серверной платформой ассоциируется.Как десктоп со 2го гнома там ничего хорошего14:12
@rubyunderhood что думаете про планирование джобов на будущее? lanceolsen.net/never-schedule…
Ну он все правильно пишет, это не очень хорошая затея. Лучше делать выборку в нужный момент и уже кидать в очередь twitter.com/oleg_antonyan/…
19:47# Четверг 9 твитов
"Less talk, more code." If you think that's what software is about...you have a lot to learn.
Sad state of the industry twitter.com/sarahmei/statu…
10:26Доброе утро, коллеги. А расскажите как у вас с около-JS эзотерикой? Elm, Om, ClosureScript, еще что-то?
Хотелось бы писать на ClojureScript, но коллеги не увидят преимуществ перед обычным JS twitter.com/jsunderhood/st…
11:03Сколько времени у вас занимает provisioning с нуля? У нас минут пять, но это довольно долго. pic.twitter.com/qPMS8dxdHV
@rubyunderhood буквально вчера писал первые скрипты для ansible. 9 минут, 7 из которых уходит на установку рельс и гемов при первом деплое
Ну можно собирать в docker image заранее, тогда время запуска = время скачивания образа twitter.com/gambala_rus/st…
11:51А health check у вас проверяет все сервисы? Базу данных, Redis?
13:22Какой Линукс у вас на серверах, кстати? И какой внутри контейнеров? У нас Amazon Linux, CentOS 7/Debian
13:31@rubyunderhood Centos/rhel14:06
Как часто вам приходится расследовать, что происходит внутри вашего data pipeline? У нас много источников данных, поэтому каждую неделю.
16:09@rubyunderhood небось большая часть времени уходит на скачку докер образа?
И на запуск машины в амазоне twitter.com/vanadium23/sta…
21:49# Пятница 9 твитов
@rubyunderhood CentOS11:56
@rubyunderhood почему?
Исторически сложилось, что никто в компании спот-инстансы не использует, вот и наш отдел тоже twitter.com/vanadium23/sta…
11:57Доброе утро! 🐓 pic.twitter.com/H8ploNHyYa14:48![]()
Но если хочешь действительно сделать открытым проект, то и обсуждения разработки фич нужно делать открытыми.14:49
У нас сегодня выходной, поэтому я пойду пить кофе
14:50Деплой не должен быть каким-то особенным моментом, к которому нужно готовиться. Все должно быть скучно и автоматизировано.
14:56У нас есть дэшборд с сенсорами, в том числе с latency поступления новых данных, мониторинг очередей, дисков.
15:04@rubyunderhood но он должен быть по кнопке (:20:25
# Суббота 1 твит
До сих пор не потеряло актуальность 12factor.net
22:54# Воскресенье 1 твит
Если вы автоматизировали какой-то flow, логи, например - поделитесь с другими отделами
13:26