Новое

страница 77 из 174

Фото с прекрасной IT-конференции Ulcamp, на которой мы познакомились с Андреем в 2017 году.

Горячо рекомендую формат, закончится коронавирус и обязательно ещё поеду.

Новый эпизод подкаста: про разработку в Убере. Андрей Неверов был техдиром стартапа грузоперевозок Trucker Path, а теперь работает инженерным менеджером в Убере в Дании.

Андрей руководит командами, ответственными за CI/CD: системы автоматизации установки серверного софта. Его инструментами пользуются больше двух тысяч программистов, а количество конечных пользователей идёт на сотни миллионов. Пока вы читаете этот текст и слушаете эпизод, в мире будут в пути 400 тысяч водителей такси и курьеров, управляемые убером. Вот такой масштаб ответственности.

Поговорили об устройстве команд и межкомандном взаимодействии, как тушат пожары (incident management) и как продвигаются по карьерной лестнице.

Слушайте и подписывайтесь: Apple, Google, ютуб, Castbox, Spotify, Яндекс, Overcast и веб-версия.

Хороший канал про аналитику, ту, которая с числами и базами данных, от чувака в теме. И название подходящее — @leftjoin. Особенно хорошо, что много репостов — можно полистать вверх и обнаружить все важные каналы про аналитику.

Похвастаюсь классным клиентом.

Сервис upmarket размещает товары производителей на интернет-рынках вроде озона и вайлдберрис. Ребята делают полный цикл, от написания карточек товаров и работы с отзывами до логистики.

Звучит довольно просто, но оборот у парней больше полумиллиарда рублей в год.

Нас позвали по двум причинам: 1) придумать, как автоматизировать те вещи, которые сложно поручить машине из-за слабого API торговых площадок и как сделать из «самодельных скриптов» надежную и масштабируемую систему; 2) вторая причина даже интереснее — мы соберем команду разработки, которая будет развивать IT в бизнесе после нашего ухода.

Одна из первых задач — обновить сервер статистики, который собирает данные из личных кабинетов крупных интернет-площадок в наше собственное хранилище. Данные нужны для принятия выгодных решений о ценах и объемах товаров, а ещё для сложных отчетов. Наша цель — автоматизировать подключение новых личных кабинетов, чтобы можно было добавить новых клиентов без лишних операционных затрат.

Федя за 3 недели создал структуру базы данных и реализовал архитектуру, в которой добавление новых магазинов и изменение источников данных можно делать хоть аутсорсерами, не давая им доступа к основным данным и процессам. На этой неделе запустим автоматическое обновление данных.

Дальше мы эти данные будем выгружать клиентам в виде интерактивных отчетов и даже позволим машине самой принимать решения на их основе — например, менять цены.

Сейчас сделаем ещё пару задач сами, а дальше наймем классных программистов и выстроим внутреннюю команду разработки.

Обращайтесь @samatg, мы берем ещё клиентов.

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

Исторически, Cloudflare — крупный и агрессивный игрок на рынке CDN, то есть они умеют с минимальной задержкой и максимальной скоростью отдавать статический контент: картинки или страницы, которые одинаковые для всех пользователей. Они забирают их с ваших серверов, копируют (кешируют) на сотни своих серверов и отдают пользователю. Прикол в том, что у Cloudflare есть свои серверы в 200 главных точках обмена трафиком, 99% пользователей интернета живут ближе, чем в сотне километров от сервера Cloudflare. Это называется edge-network, пограничная сеть, в смысле та, которая граничит с пользователями. Небольшое расстояние и оптимизированные серверы означают, что статический контент будет грузиться мгновенно.

Проблема в том, что большинство страниц — динамические. Например, гугл-документ или мою ленту фейсбука кешировать на edge смысла нет — никому кроме меня она не нужна, да и мне интересна только самая последняя версия документа, и я его только что отредактировал. Исторически это означает, что нам нужно вести все эти вычисления новых страниц где-то на центральном сервере. У крупных компаний вроде гугла или фейсбука обычно есть несколько крупных серверных ферм на каждом континенте, поближе к пользователям, так что пользователи из России кучкуются на европейских серверах, а американцы — на штатовских. Это всё требует довольно сложную инфраструктуру, маленьким компаниям недоступную. Облака Амазона и другие конкуренты пытаются решить эту проблему, но без поллитра во всех их рычажках не разберешься.

Кажется, у Cloudflare получилось придумать элегантное, красивое решение для динамических страниц, которое работает прямо на edge-серверах! Встречайте Cloudflare Workers и Durable Objects.

Cloudflare Workers — облачные функции, в Амазоне они называются лямбды (lambda@edge). То есть вы пишете программу, которая обрабатывает запросы пользователей, загружаете её в облако и она запускается по необходимости на серверах облака, прозрачно, незаметно для вас и для пользователя. Придет один пользователь — запустится одна копия, придет тысяча — запустится тысяча копий. Обычно есть время на так называемый cold start, то есть после некоторого ожидания облачная функция тушится и нужно время, чтобы она проснулась и начала отвечать на запросы. Тут этой задержки нет. Обычно вам нужно выбрать регион работы функции (помните про близость к пользователю?), тут выбирать не нужно, код запустится из самого ближнего к пользователю edge (!) сервера. Обычно эта штука стоит недешево, здесь она примерно в 3-10 раз дешевле, чем у конкурентов. Весь этот банкет за счет того, что наш код работает не контейнерах, а v8-изолятах, то есть частично — на движке гугл-хрома! (тут рассказано, как их выбрали). Но это всё закуска, кайф — дальше.

У облачных функций есть слабое место — координация пользователей. Например, мы хотим сделать копию сервиса Гугл-документов или сервис чатов — то есть несколько людей подключаются к одной программе, могут в неё писать и читать общие данные. Решений два — либо запускаем программу по-старинке, один экземпляр на сервере и храним данные в памяти (быстро!), либо запускаем в функциях, но тогда нужна будет очень быстрая общая база данных и то скорость будет ниже, потому что функциям нужно будет ходить в центральную базу данных.

Cloudflare эту проблему решили с помощью Durable Objects — это такие воркеры, которые а) уникальны, то есть гарантированно запускается только один экземпляр б) имеют доступ к надежному и быстрому хранилищу в) запускаются там, где большинство пользователей и могут самостоятельно мигрировать между серверами. Получается, что большинство операций происходят в памяти, но при этом самостоятельная серверная программа не нужна. Красиво! В статье примеры каунтера и чата, простота кода впечатляет.

Отдельно подчеркну достойную документацию и хороший инструментарий разработчика.

Перечисленное выше — базовые технологии, на которых можно строить впечатляющие бизнес-решения.

Вот, например, сам Cloudflare предлагает ускорить Wordpress-сайты в 3,5 раза. Просто подключаешь плагин и сайт начинает грузиться в разы быстрее, а это, между прочим, самый популярный движок для сайтов в мире и такое ускорение напрямую влияет на бизнес.

Или вот чуваки приняли 5 миллионов евро пожертвований за 2 часа, написав смешной объем кода и не упали! Вот инженер из Vox Media запустил React прямо на edge-серверах!

В интересное время живем, товарищи!

N.B. Федя добавляет, что красота красотой, но начинать лучше с классических фреймворков и 5-долларового сервера в DigitalOcean, а как только пойдет трафик и станет понятно, что код приносит деньги — вот тогда уже думать об облаках. Аминь.

Это — важный пост про права в интернете. И повод достойный: президента США забанили Твиттер и Фейсбук.

🍆 События: Дональд Трамп на днях сказал толпе на митинге «идите на Капитолий», толпа пошла и вломилась в парламент, где депутаты как раз считали голоса президентских выборов, на которых Трамп проиграл (у них хитрая система, и это важный процессуальный шаг).

Дальше Трамп выпустил заявление, что «уважаемые погромщики, мы вас очень любим (you are very special, sic), но идите уже домой». И ещё добавил «выборы у нас украли. PS на инаугурации не буду».

Твиттер и Фейсбук психанули и забанили Трампа навечно, а у Трампа, на минуточку был один из самых популярных аккаунтов на платформе и за него проголосовала почти половина страны. Объяснение дали такое, что мол «не буду на инаугурации» — значит «можете устроить там небольшой теракт» и вообще, «нарушает правила платформы». Логика конечно так себе, правила платформы он нарушал 5 лет подряд и у всех есть важное мнение, кто в Америке не прав, но нас интересует другое.

👆 Важно другое:
Твиттер и Фейсбук в последние годы являются де-факто «публичным пространством» (они себя так и называли, town hall, буквально городская ратуша), но при этом управляются частными лицами. Фейсбуку, например, даже на акционеров пофигу, там такая акционерная структура, что все решения принимает Цукерберг.

Весь западный мир построен на концепции Due Process. Это значит, что есть законы, по которым существует общество и есть публичные механизмы, как эти законы исполняются. Проще говоря, правила игры известны заранее. Это — супер мощная идея и я не хочу жить в мире, который построен по другим принципам (хотя, по принципу любви наверное хочу, но это уже совсем другой разговор).

Подробнее про Due Process рекомендую почитать у основателя Cloudflare Мэтью Принца, он юрист по образованию и мало кто разбирается в интернете лучше него: раз, два, три.

В случае фейсбука, твиттера, apple, google и других популярных онлайн платформ — никакого Due Process нет и никогда не было. Есть некоторые неизвестные нам люди, которые принимают решения по неизвестным нам правилам, что нам можно на этих цифровых платформах делать, а что нет. 99% времени все довольны, но законы нужны как раз для тех случаев, когда стороны не могут договориться по-хорошему, это, надеюсь, очевидно всем. У всех платформ есть длинные «правила поведения», но это всё филькина грамота, решения кого забанить, а кого нет принимаются совсем не по этим бумажкам. (Кек, очень похоже на российскую правоохранительную систему в области политических дел.)

❓ Что делать?

1️⃣ Одна сторона говорит: интернет-платформы — частные компании, не нравится что делает её владелец — иди на другой сайт, устанавливай другое приложение, покупай другие телефоны и пользуйся ими. Мы ведь не можем заставить технологические компании оказывать услуги всем подряд? Обычно так говорят люди, которым нравится кого прямо сейчас прессуют техногиганты. Прямо сейчас — это демократы в США.

2️⃣ Вторая сторона возражает: современный мир такой, что бан в крупных соцсетях и техноплатформах — это как если бы мы отключали своим конкурентам воду, канализацию и электричество! (В штатах это запрещено). Прямо сейчас эту позицию занимают сторонники Трампа.

Оба довода — очень сильные. Как их поженить — я не знаю. Я вижу, что сейчас почти никто из политиков не признает логику и ту часть правды, которую говорит противник. Это очень печально, потому что наша цивилизация построена на возможности взрослого диалога и компромиссов. Именно благодаря умению найти общее и договориться мы сделали антибиотики, (почти) победили голод (когда вы в последний раз работали для того, чтобы не умереть с голоду?), получили возможность списываться и созваниваться с близкими на других континентах. Будет жалко всё это потерять.

Завёл канал про психотерапию: буду делиться чему научился, опытом и историями; цитировать классиков и бессовестно пересказывать остальных. Короткие посты раз в день. Подписывайтесь @psythings 👯‍♂️

Кстати, встроенные отложенные сообщения в телеграме стал круче, чем то, что есть в @controllerbot.

И ими можно пользоваться не только для каналов!

Просто напишите сообщение как обычно и зажмите кнопку «отправить» — появится попап с предложением отправить сообщение позже. А ещё можно посмотреть и отредактировать все отложенные сообщения нажав на «часики» в поле редактирования. 🚀

Супер история о том, как Амазон чуть не умер и переехал с серверов Sun на Linux. Это — история зарождения Amazon Web Services — облака, на котором сегодня работает добрая половина интернета.

Рассказывает один из непосредственных участников.

Самые впечатляющие моменты:

❧ в 2000 лопнул пузырь доткомов — технические компании обесценились в сотни раз, на фондовом рынке кончились деньги и Amazon начал жечь собственные средства — 1 миллиард долларов в год; самой крупной статьей расходов были серверы — их делал Sun, они стоили дорого;

❧ можно было перекупить серверы Sun у компаний, обанкротившихся на пузыре доткомов, но техдир Амазона пошел ва-банк — решил переехать с Sun на обычное железо Hewlett Packard на Линуксе; ядру лунукса тогда было всего 6 лет;

❧ на время переезда они остановили ВСЮ продуктовую разработку! ВСЕ занимались только переездом. В бэклоге лежали сотни функций для увеличения продаж, но все ждали, пока закончится переезд;

❧ заморозка развития сервиса привела к падению продаж → пришлось повышать цены на товары → продажи упали ещё сильнее, запустилась «спираль смерти»;

❧ у Амазона оставалось буквально несколько кварталов до смерти, когда деньги на счету кончатся, но они успели и запустили всё нормально, стоимость масштабирования инфраструктуры упала на 80%;

❧ продажи — сезонный бизнес и Безос придумал, почему бы не сдавать простаивающие серверы в низкий сезон другим компаниям? На презентации он привел аналогию с электрической сетью — в 1900 годы каждый завод строил свою собственную электростанцию, почему бы не сделать «электрическую сеть» для IT? Плюс это круто сочеталось с его идеей разделить команды внутри компании, чтобы команды могли развиваться самостоятельно — каждая команда стала независимым API.

Ну а дальше вы знаете. Сегодня Амазон — это не только интернет-магазин, но и одна из крупнейших IT компаний планеты.

https://twitter.com/DanRose999/status/1347677573900242944

Каникулы скоро закончатся. Вот два приема, которые сделают видео-созвоны и вообще работу за компьютером чуть приятнее.

1. Избавьтесь от промежуточной веб-страницы при переходе по зум-ссылкам. Я для этого использую утилиту choosy. В ней можно настроить, в каком браузере будут открываться те или иные ссылки. Я добавил правило, что ссылки начинающиеся на https://zoom.us/j/ сразу открываются в зуме. Теперь ссылки на зум-созвоны из телеграма или календаря будут сразу запускать зум, без лишних кликов. То же самое можно настроить для фигмы, ноушен и других популярных веб-сервисов. Стоит 10 долларов. Есть бесплатная альтернатива, которая настраивается через js-функцию, а вот альтернатива для windows.

2. Настройте автозамену для ссылки вашего личного кабинета в зуме. В маках и айфонах эта функция называется «замена текста» и работает совершенно магически: набираете заданное вами волшебное слово, нажимаете пробел и оно заменяется на выбранный вами текст или число. У меня ещё настроены «сокращения» для номеров телефона и паспорта — это здорово экономит время и нервы. Андроид клавиатура от гугла такое тоже умеет, а виндоусу потребуется программа, например beeftext.