netoneko

28 марта 2016, Tel Aviv, Israel

# Понедельник 17 твитов

Привет, меня зовут Кирилл, я живу в Тель-Авиве и пишу бигдату на JS, а также занимаюсь девопсом на Амазоне.

10:05

Раньше писал веб, но теперь пишу только API либо инфраструктурные сервисы, которые бегут в контейнерах время от времени.

10:08

У нас есть свой data pipeline, который наша компания к тому же продает в виде сервиса - aws.amazon.com/redshift/partn…

10:10

А сколько портов пытались пробросить? @ynelin

10:26

У нас везде докер, но не на 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/Integration
13: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/YqDHvigW8r
17:48
Want to work at a fancy todolist maker? You must recite O-notation for all data structuresasana.com/eng/interview-… pic.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

11:44
@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

Как часто вам приходится расследовать, что происходит внутри вашего data pipeline? У нас много источников данных, поэтому каждую неделю.

16:09
@rubyunderhood небось большая часть времени уходит на скачку докер образа?

И на запуск машины в амазоне twitter.com/vanadium23/sta…

21:49

# Пятница 9 твитов

@rubyunderhood споты используете?

Нет twitter.com/vanadium23/sta…

9:40
@rubyunderhood почему?

Исторически сложилось, что никто в компании спот-инстансы не использует, вот и наш отдел тоже twitter.com/vanadium23/sta…

11:57
Доброе утро! 🐓 pic.twitter.com/H8ploNHyYa
14:48
Но если хочешь действительно сделать открытым проект, то и обсуждения разработки фич нужно делать открытыми.
14:49

У нас сегодня выходной, поэтому я пойду пить кофе

14:50

Деплой не должен быть каким-то особенным моментом, к которому нужно готовиться. Все должно быть скучно и автоматизировано.

14:56

У нас есть дэшборд с сенсорами, в том числе с latency поступления новых данных, мониторинг очередей, дисков.

15:04
@rubyunderhood но он должен быть по кнопке (:
20:25

# Суббота 1 твит

До сих пор не потеряло актуальность 12factor.net

22:54

# Воскресенье 1 твит

Если вы автоматизировали какой-то flow, логи, например - поделитесь с другими отделами

13:26

other