Микросервисы / распределенные системы
4.21K subscribers
107 photos
1 video
21 files
318 links
Мысли, новости и ссылки по распределенным система и распределенной разработке.

Рекламу не размещаю.
Download Telegram
Так выглядит микросервисная архитектура PayPal.

#case
Список open source инструментов для микросервисов
(со ссылками на сайты, репозитории с исходниками и лицензиями)

Контейнеры: rkt, Docker, FreeBSD Jail, LXC, OpenVZ
Оркестраторы контейнеров: Kubernetes, OpenShift, Nomad, LXD
API Gateways: 3scale, API Umbrella, Apigee, Apiman, DreamFactory, Fusio, Gravitee, Kong, KrakenD, Tyk
CI/CD: Jenkins, GitLab, Buildbot, Concourse, GoCD, Hudson, Spinnaker
Балансировщики: HAProxy, Apache modules, Balance, Distributor, GitHub Load Balancer (GLB) Director, Neutrino, OpenLoBa, Pen, Seesaw, Synapse, Traefik
Service registry/discovery: Baker Street, Consul, etcd, Registrator, Serf, ZooKeeper
Мониторинг: OpenNMS, Grafana, Graphite, Icinga, InfluxDB, LibreNMS, Naemon, Nagios, ntop, ELK, Prometheus, Sensu, Zabbix, Zenoss
Роль Enteprise Architect сегодня

Статья просто и понятно объясняет изменения роли EA. Актуально для микросервисного стиля, как для частного случая.

В начале статьи автор рассказывает небольшую историю и задает контекст
- Команды стали автономнее
- Команды могут принимать серьезные инженерные решения (делегирование решений в команды)
- Команды стали изолированнее, знания в большей степени накапливаются в командах

Основываясь на своих наблюдениях автор пришел в выводу, что в современном мире EA должен:

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

Обеспечивать простой доступ к архитектуре каждому заинтересованному в ней
- Управление архитектурной базой знаний таким образом, чтобы каждый мог получить нужную информацию в нужное время
- Особенно о том, что уже реализовано и реализуется, чтобы не решать задачу дважды, трижды
- Пример из статьи — подготовить постер с архитектурой и раздать каждой команде, пусть висит на стене на видном месте, его сложнее игнорировать, чем wiki-страничку

Выстраивать мосты между командами
- Команды становятся изолированными друг от друга за счет своей автономности, архитектор за счет парной работы с членами команд может найти наилучших кандидатов для выстраивания мостов между командами
- И снова, за счет плотной работы с командами, архитектор может обнаружить команды, решающие похожие задачи и выстроить мостик вокруг этих задач
- Обнаружить разработчиков, у которых горят глаза от определенных технологий, платформ и помочь им в обучении других людей
- Собирать мнения команд о степени доступности, понятности и полезности архитектурной базы знаний и улучшать её на основе этих мнений

Таким образом цели и отвественность остаются теми же, что и раньше, но подход к работе меняется. И такой подход ведет к эволюционному развитию архитектуры в направлениях, о которых и подумать было сложно.
Titan — Data as a Code проект с открытым исходным кодом

Официальное описание:
«Titan's git-like CLI enables developers to clone, commit, checkout, push, and pull data just like code, making it easy to rollback to a previous state, build a test data library, or share a structured dataset with collaborators.»

Мы все ближе к Everything as a Code 🙂

#tools
Ода языку Go, микросервисы для Enterprise 🙂

Go преподносится как язык следующего поколяния для Entperprise-компаний.
На Go написаны Docker, etcd, Kubernetes, Terraform и istio; его используют такие компании как google, apple, dropbox, bbc, the economist, the new york times, ibm, twitter, facebook.

Go активно поддерживается Google, а его авторы активно участвовали в жизни C, Unix и JVM и него обширное и сильное сообщество (Gophers).

Далее приводится еще несколько преимуществ:
- Отличная реализация Concurrency
- Кросс-платформенность
- Garbage Collection
- Статическая типизация
- Приведена сравнительная таблица Go vs Java

В завершении примеры кода для реализации слоя контроллеров, слоя логирования, инит тестов, моков, реализации OAuth.
Сравнение SOA и микросервисов от pwc.

Похоже, что pwc брали не академически-теоретический идеальный SOA из учебников, а среднестатистическую реализацию. А вот для микросервисов взяли эталон. Оно и понятно, это базовые свойства микросервисов и среднестатистически близкие к эталону реализации встречаются чаще просто потому, что иначе их совершенно невозможно поддерживать и развивать.

#common
Язык, редактор и инфраструктура — три в одном.

Речь о языке Dark.
Основная идея выражена во фразе «Speed of developer iteration is the single most important factor in how quickly a technology company can move».
Интересно как минимум ознакомиться с видео на сайте и статьями в блоге. Пока тенденция слабая, но все больше появляется языков со встроенными механизмами снижения инфраструктурной сложности (другой пример — ballerina.io), присущей микросервисным решениям.

В настоящий момент Dark находится в beta-тестировании.

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

#tools
​​Пример организации пакетов при использовании DDD

Из примера видно, что одна команда может владеть несколькими сервисами, но вот несколько команд одним сервисом — уже нет. На каждом из уровней полная изолция по горизонтали. Домены и/или контексты могут общаться только либо через четко определенный интерфейс, либо через Anti Corruption Layer.
Тезисно перевел статью о том, как организовать поиск, если у вас микросервисы. В статье два подхода со своими плюсами и минусами. Статья больше для того, чтобы самостоятельно подумать и принять решение, какой подход подойдет лучше.

#patterns
​​Видео с ArchDays'19 уже заливается на youtube и завтра первые ролики будут опубликованы.
А пока — написал пост с анонсом ArchDays 2020.
Из важного — расширение тематики конференции.

Напишите, кого из зарубежных спикеров хотелось бы увидеть на конференции, уже пора писать им предложение выступить 🙂
​​Кто/чем управляет от on premise до serverless. Видно как изменяется инфраструктурная сложность при движении слева направо.
Записи докладов с ArchDays 2019, поехали!

"Мы делили апельсин" или эволюция web’а tinkoff.ru за последние 3 года
Александр Поломодов

https://www.youtube.com/watch?v=1I5vwf5Ucbc

В этом докладе будет откровенный рассказ руководителя разработки и одновременно и.о. архитектора о том, зачем, что и как пришлось пройти технической команде привлечения для изменения tinkoff.ru за последние 3 года (spoiler: в заглавии).

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

В итоге, слушатели получат план перехода на микросервисную архитектуру с разделением по областям бизнес/ разработка/тестирование/инфраструктура, который сработал для webа tinkoff.ru.
Inner Source и микросервисы: как получить больше плюсов, чем минусов
Александр Бындю

https://www.youtube.com/watch?v=lgNwo6cYYts

InnerSourcing и микросервисы дополняют друг друга и одновременно повышают порог вхождения новичков в эту тему. Я расскажу с точки зрения IT-архитектора и организатора процесса разработки:
1. В чем конкретно можно выиграть при использовании InnerSourcing.
2. Какие инструменты и паттерны нужны для достижения успеха, и что будет, если их не использовать.
3. С какими проблемами сталкиваются компании, где мы настраивали связку InnerSourcing+микросервисы, даже если делали всё максимально хорошо.
Эволюционная архитектура при внедрении "монолита" (1С:ERP 2)
Глеб Стальной


https://www.youtube.com/watch?v=9pSyPE9z-oI

В докладе будет опровергнут распространенный в IT-среде стереотип, что решения на платформе 1С невозможно ни нормально интегрировать с другими системами, ни встроить в современный pipeline разработки.
На примере работы нашей команды будет показано для 1С:
1. как реализовать событийную архитектуру
2. как подключить гит для версионирования кода 1С
3. как писать BDD-сценарии
4. как настроить Continuous Inspection
И, самое главное, будет описан подход, который позволит расширять типовой функционал 1С:ERP Управление предприятием 2 так, чтобы не было мучительно больно, как во время первоначальной разработки, так и дальнейшей поддержки.
Путь в хаос или как мы строили Chaos Engineering в банке
Дмитрий Якубовский и Максим Козлов


https://www.youtube.com/watch?v=PVufzlkhRcI

Доклад расскажет о том, как мы на реальном проекте погрузились в мир Chaos Engineering (CE), ощутили всю боль мониторинга, узнали о психологии инженеров и как вставляли "напильники в серверы". Мы поговорим о преимуществах Chaos Engineering и без чего он не получится, расскажем, почему он отличается от нагрузочного тестирования и поделимся опытом организации экспертизы в компании. Цель доклада — рассказать о том, с какими проблемами и их решениями мы столкнулись при проведении "атак" на реальном проекте, сравним инструменты и их автоматизацию для проведения этих "атак". Это живой опыт, который мы проходим до сих пор.
От монолита до микросервисов: эволюция архитектуры вслед за бизнесом
Илья Волынкин

https://www.youtube.com/watch?v=pQns6OXIi6k

История о том, как появилась современная МаксимаТелеком с точки зрения сервисов.
Как менялись подход к разработке и архитектура решения вслед за изменением бизнес-стратегии.

Через историю развития компании слушатели узнают, как от простых и дешевых технологий (типа PHP+MySQL) мы переходили к сложным монолитам и позднее к микросервисам, пробовали различные языки программирования и базы данных, создавали нашу BigData, подбирая инструменты под конкретные задачи, и почему мы написали свой RADIUS — систему мониторинга и систему управления оборудованием, несмотря на обилие готовых решений.
Контрактные тесты - что это, и почему они вам очень нужны
Евгений Горбачев

https://www.youtube.com/watch?v=Bt5kC8KlpG8

Поговорим о темной стороне микросервисной архитектуры, когда вы успешно распилили ваш монолит. Узнаем, как подписывать твердые контракты между микросервисами, что такое контрактные тесты, почему они нужны, как их можно организовать и тем самым повысить культуру разработки в компании и отказоустойчивость системы в целом.
Как мы управляем мутацией архитектуры
Евгений Асламов и Максим Шаломович

https://www.youtube.com/watch?v=14q9qtAAGXk

На старте проекта архитектура всех систем идеальна и изящна - никто заранее не планирует комок грязи или спагетти код. Но в процессе работы меняются условия, требования, появляются детали и через несколько витков вся красота и стройность теряется, и на выходе совсем не то, что замышлялось.
Мы на практике опробовали как можно управлять такой мутаций архитектуры и расскажем вам об этом.
Эволюция корпоративной интеграции
Андрей Шиллинг


https://www.youtube.com/watch?v=uG08poIN-wU

Расскажу, как мы в Ак Барс Банке меняем подходы к проектированию и разработке интеграций между системами, отказавшись от концепции единой интеграционной шины, сделав ставку на микросервисы. Рассмотрим - насколько важным аспектом является влияние структуры компании на архитектуру ИТ-систем. Поделюсь инсайтами, полезными практиками и нерешенными проблемами
Как мы пишем понятный коДДД
Евгений Пешков


https://www.youtube.com/watch?v=jgBhSQZ_sfY

Микросервисы и DDD созданы друг для друга.
Я расскажу, как Domain Driven Design помогает нам пилить монолит и писать понятный код. Покажу, какие паттерны и подходы мы используем в работе, и каких антипаттернов можно избежать, если следовать принципам DDD.