Как стать автором
Обновить
42.27

Микросервисы *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Микросервисы глазами аналитика

Время на прочтение14 мин
Количество просмотров34K

Расскажу про системы с микросервисной архитектурой (MSA). Как они устроены, как я их анализировала, какие увидела проблемы и преимущества.

Статья не раскрывает лучшие практики использования микросервисов и не разоблачает их излишнюю популярность. Основная цель - описать технологию и процесс работы с ней с точки зрения системного аналитика.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии25

Разработка системы заметок с нуля. Часть 2: REST API для RESTful API Service + JWT + Swagger

Время на прочтение9 мин
Количество просмотров12K

Продолжаем серию материалов про создание системы заметок. В этой части мы спроектируем и разработаем RESTful API Service на Golang cо Swagger и авторизацией. Будет много кода, ещё больше рефакторинга и даже немного интеграционных тестов.

Подробности в видео и текстовой расшифровке под ним.

В первой части мы спроектировали систему и посмотрели, какие сервисы требуются для построения микросервисной архитектуры.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии4

Разработка системы заметок с нуля. Часть 1: проектирование микросервисной архитектуры

Время на прочтение4 мин
Количество просмотров13K

Данный проект рассматривается как pet-project. Любую критику и советы готов увидеть в комментариях.

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

Репозиторий с исходным кодом: https://github.com/theartofdevel/notes_system

Видео версия: https://www.youtube.com/watch?v=Txi95RQPRP0

Под катом текстовая расшифровка.

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии7

Микрофронтенды: наш путь к более быстрому и гибкому сайту

Время на прочтение8 мин
Количество просмотров7.6K

Привет, Хабр! Сегодня мы хотим поделиться нашим опытом создания собственной платформы микрофронтэндов и постепенной миграции веб-сайта компании на микросервисы. В этом посте вы узнаете, как мы пришли к этому решению, каким образом организовано тестирование фрагментов сайта, а также немного о повседневных задачах разработчиков, которые создают компоненты для такого модульного сайта. Если вы тоже занимаетесь микрофронтами или планируете это делать, обязательно делитесь опытом и присоединяйтесь к нашей дискуссии.

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии10

whois micro web-api

Время на прочтение1 мин
Количество просмотров2.2K

Не так давно появилась задача получения информации о доменах в whois.

Требование простое, дернуть curl-ом и получить json, и чтобы было бесплатно.

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

Получился простой скрипт на flask завернутый в докер. Для работы с whois использовал библиотеку. Тут стоит отметить что служба whois достаточно архаична и децентрализованна. В связи с этим есть проблема с новыми зонами, особенно из New gTLD. Понемногу в проект добавляются новые зоны, но до конца списка еще далеко. Так же, можно отправлять реквесты на добавления нужных зон.

Репозиторий проекта

Подергать его можно тут

Для того чтобы получить инфу по домену нужно просто дернуть его следующим образом.

На этом все, спасибо за внимание :)

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии7

Микро-фронтенд. Обзор архитектуры и рекомендуемые практики

Время на прочтение9 мин
Количество просмотров34K

Концепция микро-фронтенда – это микросервисный подход при разработке клиентской части. В настоящее время есть тенденция создавать мощное и функционально насыщенное веб-приложение, расположенное поверх микросервисной архитектуры. Со временем микро-фронтендовая архитектура становится частью приложения, зачастую ее разрабатывает отдельная команда. Эта архитектура растет, ее становится сложно поддерживать. Возникает так называемый «фронтендовый монолит». Для решения этой проблемы была сформулирована концепция микро-фронтендов.

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

Текст
Всего голосов 19: ↑15 и ↓4+11
Комментарии13

Сравнение подходов к реализации распределенных транзакций для микросервисов

Время на прочтение21 мин
Количество просмотров40K

Как архитектор-консультант в Red Hat, я имел возможность поработать над множеством проектов для наших клиентов. У каждого из них есть свои особенности, которые, однако, имеют некоторые общие черты. Большинство клиентов хотят знать, как скоординировать запись в несколько систем одновременно. Ответ на этот вопрос обычно включает подробное объяснение двойной записи, распределенных транзакций, современных альтернатив, а также возможных сценариев сбоев и недостатков каждого подхода. Как правило, именно в этот момент заказчик понимает, что разделение монолитного приложения на микросервисы - долгий и сложный путь, обычно требующий компромиссов.

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Комментарии9

Микросервисы. Не всё то золото, что хайп

Время на прочтение7 мин
Количество просмотров30K

Привет, меня зовут Владимир Кустиков, я — архитектор решений в e-Legion. И сегодня я хотел бы рассказать вам про микросервисы.

Наверное, я где-то неправ. А возможно, что у меня просто подгорело. Но в какой-то момент после запроса рассказать о том, в каких проектах я успешно применял микросервисы, мое терпение лопнуло. Ни в каких, понятно?! И это мой персональный повод для гордости. Если вам вдруг стало интересно, что еще может рассказать этот странный безумец с пылающим взором, то у меня есть хорошая новость — ниже о микросервисах будет адаптированный под хаброформат рассказ с картинками. А если нет — смело закрывайте эту статью.

Читать далее
Всего голосов 78: ↑73 и ↓5+68
Комментарии109

Архитект Проггер и кабинет приемной комиссии

Время на прочтение16 мин
Количество просмотров3K

Этим летом абитуриентам было жарко, МГУ по проходному баллу почти превратился в ПТУ, а кто-то успешно поступил в вооруженные силы РФ, сам того не желая. Отсутствие автоматизации в 2021 году, способной обработать распределение абитуриентов по учебным заведениям, а так же необходимость написать продолжение предыдущей статьи, описывающей основы теории о Распределенной Авторизации (РА) побудило решить эту детскую задачу автоматизации. Посмотрим, сколько же рпс нам в этом раз отсыпет антилопа.

Шалить нельзя думать
Всего голосов 2: ↑2 и ↓0+2
Комментарии11

Масштабирование микросервисов Spring Boot

Время на прочтение4 мин
Количество просмотров3K

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

Так что же может помешать нам просто взять и запустить еще несколько инстансов?

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии3

Экспресс-поддержка

Время на прочтение6 мин
Количество просмотров1.8K

Никому не нравится стоять в очереди на кассе, особенно для покупки всего одного или парочки товаров. В условиях пандемии мы вовсе не хотим рисковать и находиться долгое время вблизи незнакомых людей. Год назад мы в Х5 Group решили помочь нашим покупателям и создали приложение для самостоятельных покупок «Экспресс-Скан». Оно принадлежит к системам класса Scan & GO и позволяет покупателю добавлять товары из магазина в виртуальную корзину приложения через сканирование штрих-кода товара с помощью камеры смартфона. Главный плюс -  оплачивать товары можно прямо в приложении, не подходя к кассе и не ожидая в очереди.

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

Читать далее
Рейтинг0
Комментарии2

А должен ли это быть микросервис? Имейте в виду шесть факторов

Время на прочтение8 мин
Количество просмотров10K

Это часть серии публикаций в блоге, посвященных различным факторам проектирования микросервисов. Здесь приведены ссылки на более подробное рассмотрение отдельных тем, представленных в данном посте.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

Независимость микросервисов

Время на прочтение3 мин
Количество просмотров5.4K

Микросервисная архитектура в настоящее время очень популярна. Много кто ее использует, хотя и не всегда на все 100%. Но для успешного применения такого подхода, каждый из микросервисов должен:

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Ближайшие события

Библиотека СleanAPI: cоздаем микросервис на Python за 30 секунд

Время на прочтение4 мин
Количество просмотров20K

Использование микросервисной архитектуры для построения корпоративных приложений взамен традиционной монолитной — популярный тренд в веб-разработке.

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии11

Катастрофы, с которыми я столкнулся в мире микросервисов

Время на прочтение9 мин
Количество просмотров27K

Прим. перев.: автор этой статьи — engineering manager из Испании, работающий в цифровой торговой площадке Adevinta, представленной в 16 странах, — делится своими наблюдениями о частых проблемах, которые он встречал у создателей микросервисов. Об этих вызовах стоит знать заранее, чтобы не столкнуться с ними тогда, когда их решение может оказаться слишком затратным.

Когда пост Мартина Фаулера о микросервисах вышел в 2014 году, команды, в которых я работал, уже занимались SOA-приложениями. Эта статья и последующий хайп коснулись почти каждой команды разработчиков в мире. Стек Open Source-софта от Netflix был самым крутым в то время, поскольку позволял инженерам по всему миру перенимать опыт Netflix в распределенных системах. Если мы взглянем на работу разработчиков программного обеспечения сегодня, более шести лет спустя, большая её часть касается архитектуры микросервисов.

Читать далее
Всего голосов 78: ↑78 и ↓0+78
Комментарии23

Как в восемь раз уменьшить количество DNS-запросов в Go

Время на прочтение6 мин
Количество просмотров12K

Привет, Хабр. Меня зовут Рустам. Я работаю в Ozon: админю Kubernetes и пишу на Go.

У нас очень много сервисов на Go — их количество исчисляется тысячами. Запускаются они внутри кластеров Kubernetes. А я плотно работаю с Kubernetes и заметил, что при запуске кода внутри Kubernetes для резолва одного адреса делается до десяти DNS-запросов. Это, конечно, влияет на производительность.

Я решил разобраться, как Go делает DNS-запросы. В результате мне удалось уменьшить их количество в наших проектах до одного-двух. Как у меня это получилось и можно ли использовать мой опыт в вашем проекте, я расскажу в статье.

Узнать больше про Go+DNS
Всего голосов 91: ↑71 и ↓20+51
Комментарии9

Как сделать alter table в высоконагруженной таблице

Время на прочтение3 мин
Количество просмотров16K

Ещё лет 5 назад на собеседованиях с backend-разработчиками был популярен вопрос: как переименовать колонку в высоконагруженной таблице (возможны вариации: как сделать любой другой alter table)?

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

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Комментарии29

Архитектура приложения стартапа. Взгляд с высоты птичьего полета

Время на прочтение22 мин
Количество просмотров4.9K

Приветствую всех читателей Хабра.

Немного разбросал текущие дела и пришло время для написания следующего поста в моем запланированном цикле статей:

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии6

Модули, монолиты и микросервисы

Время на прочтение13 мин
Количество просмотров15K

Прим. перев.: системный архитектор Avery Pennarun, создавший VPN-решение Tailscale на базе WireGuard, размышляет об отличиях монолитов с модулями от микросервисов. Он рассказывает об эволюции подхода к модульности вообще и о том, почему изоляция до сих пор далека от совершенства, а также делится своим мнением о том, когда проводить границы между сервисами рационально.

В последнее время меня часто спрашивают, в каких случаях переход на микросервисы — хорошая затея. В статье «Systems design explains the world» я размышляю о таких типичных проблемах, как эффект второй системы, дилемма инноваторов и других. Может ли проектирование систем дать ответ на вопрос о микросервисах? Да, хотя ответы могут вам не понравиться.

Читать далее
Всего голосов 39: ↑39 и ↓0+39
Комментарии1

Как я запускал шаблонизатор офисных документов как сервис

Время на прочтение7 мин
Количество просмотров11K

Приветствую!

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

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии8