Скачать mp3 / Весь mp3-архив

Selfcast #6

Микросевисная архитектура

Начну с конца для понимание масштаба Netflix (7 декабря 2016 года):

Качественная речь Josh Evans про микросервисную архитектуру в Netflix. Это не просто её презентация, а рассказ о выстраданном пути. Визуализация для комфортного мониторинга и понимания масштаба. Микросервис состоит из: клиента, основного кода, логики кеширования, базы данных. Клиент высушивается максимально. Микросервисы обеспечивающие работу продукта (Runtime Platform), бизнес логику. Всегда найдется сервис, который должен комуницировать с несколькими клиентами. Если нагрузим его кучей кода клиентских либ, то получим новый монолит. Выделить две группы сервисов: первостепенной важности (edge) и второстепенные. Если крешится второстепенный, то первостепенный должен предусмотреть этот кейс и корректно обработать. Иначе может случиться цепной креш. Два типа микросервисов:

Используют cassandra (репликация данных на ноды из коробки). Понравились анатомические метафоры. Взаимодействие между микросервисами как между нейронами в голове: через аксоны. Захантеные девелоперы с Yahoo притащили HA Proxy: масштабирование по клиенту (partitioning). Каджому клиенту по конкретной ноде. Отказались от этой темы в пользу EVCache Writes: каждая запись провоцирует записи в три БД кеша (три зоны). Чтение в таком случае возможно с любой (из трех) зон. Планируют добавить request-level кеширование. Зачем обращаться каждый раз к кешу или к сервису, если запрос идентичный? Гетерогенная среда. Идеальный стек для микросервиса на Java:

Но появилось куча других стеков на Ruby, Python, Node.js, Docker и т.д. Более 150к просмотров на настоящий момент.

segmentation fault ? strace & gdb

strace дает интформацию о системных вызовах: чтение/запись файлов, сокетов, сетевых интерфейсов и т.д. Куча инфы, в которую надо внимательно построчно вчитываться. Особенно в строчки до падения. Кстати, strace может и к запущенным процессам приатачиться. Часто strace бесполезен в случае seg fault и на выручку спешит gdb. Если до seg fault'а делалось что-то вроде

# ulimit -c unlimited

То получите core-файл, который можно подебажить через gdb. Также можно и сам скрипт запустить через gdb:

$ gdb --args /usr/bin/php /path/to/script.php

Кстати, gdb написал Ричард Столмен. Не знал.

Идеи в воздухе

Codewars сделал платформу для тестирования программистов Qualified. Я на что-то подобное натыкался и даже проходил первичный отсев через подобный сервис.

З/платы разработчиков в мире

Самый крупный рынок - это США. Европа/Канада/Австралия значительно меньше. Почему? В US много малого бизнеса. Глубокое проникновение технологий. Меньше консерватизма.

Приятные мелочи

В zsh есть крутейший hot key: ALT + H. Вводите команду и хотите подсмотреть её хелп? Просто ALT + H и после man page возвращаетесь к своей команде.

Офтоп

The Long Dark - забавная survival игра. Самое оно в плохую погоду.

Опубликовано: 06.10.2017
Теги: Netflix, микросервисы, EVCache Writes, Segmentation Fault, gdb, strace, Qualified, zsh, The Long Dark