Практика реализации Референсной архитектуры SDLC в Телекоме

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

Технологии бессерверных вычислений

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

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

Сегодня бо́льшая часть production-решений продолжает резервировать собственные мощности под базы данных. Да, это надёжно и привычно, но тем не менее всё больше проектов обращается к бессерверным инструментам, в том числе и к базам данных. Создатели находят этим инструментам применение в распределённых приложениях и микросервисах, где важна скорость разработки и возможность масштабирования.
Бессерверные базы данных развивались последние несколько лет параллельно с бессерверными вычислениями, и сейчас можно условно выделить два типа СУБД: адаптирующие популярные базы данных под бессерверное использование и разработанные под бессерверный режим. В этой статье я расскажу об их особенностях и дам примеры применения.

Сложно в одном тексте описать всё необходимое для разработки даже самого простого навыка для Алисы с одной стороны. А с другой стороны, показать разработку на serverless-стеке так, чтобы и новичку было не так сложно и заядлому девелоперу было не скучно. Но попробую осилить эту задачу, написав навык на Go. и будет у меня семейный список дел.

$ yappa deploy
Все.
Твое python приложение доступно в яндекс облаке, у него есть свой урл, оно готово к любому наплыву посетителей. А платишь ты только за время цпу, затраченное на обработку запросов.


Если вы интересуетесь serverless computing (бессерверными вычислениями), наверняка видели публикации с примерами запуска небольших приложений или MVP на Azure Functions или AWS Lambda. А можно ли запустить в serverless коммерческую платформу B2B электронной торговли Virto Commerce, написанную на .NET Core? Ответ положительный, но есть и нюансы.

Не думаю, что многие разработчики сегодня используют CGI-скрипты и старый добрый PHP. Поэтому у каждого из нас есть любимый фреймворк, с помощью которого мы и создаём свои веб-приложения. Чем бы мы ни занимались — составлением стандартного юридического контракта или съёмками голливудского блокбастера, — всегда полезно начать с какого-нибудь шаблона. Фреймворк придаёт структуру вашему приложению и избавляет вас от необходимости снова и снова изобретать велосипед. Это может быть навороченная платформа — своего рода конструктор, в котором есть всё, что нужно, даже батарейки (Rails, Django, Spring Boot, Nest), — либо минималистичный, но удобный фреймворк, работающий по принципу «тяп-ляп — и готово» (например, Flask или Express).

Добрый день. Многие знают, что программисту приходится следить за развитием технологий, даже тех, которые не касаются его текущего стека. Ну, или ему это доставляет удовольствие, которое он оправдывает необходимостью держать руку на пульсе. Так обычно зарождаются разнообразные домашние проекты. Я решил свести в один пост свои наработки по написанию Node.js-бота для Discord Slash API с использованием Serverless-подхода в Yandex Cloud. Использование готовых библиотек сведено к минимуму.

Фото Cenk Batuhan Özaltun, Unsplash.com
На конференции QCon в марте я рассказывал об эволюции распределённых систем в Kubernetes. Главный вопрос: что будет после микросервисов? У вас наверняка есть мнение на этот счет. У меня оно тоже есть. В конце вы узнаете, что я думаю. Но для начала давайте обсудим потребности распределённых систем. Как эти потребности развиваются с годами, начиная с монолитных приложений до Kubernetes и таких новых проектов, как Dapr, Istio, Knative, и как они меняют наши методы работы с распределёнными системами. Попробуем сделать несколько прогнозов на будущее.

Обсудили с автором телеграм-канала Так говорил 2Pizza разработчиком Кирой 2Pizza идею и реальное применение Serverless. Технологические новинки часто используют просто потому, что это модно. По мнению Киры, хайп вокруг Serverless приведет к тому, что мы окажемся в добровольном рабстве у Амазона и Гугла. Компании будут забирать всю прибыль, а инженеры — сидеть на цепи без единой возможности сбежать.
Кира работает на американском рынке: помогает компаниям и стартапам, которые ищут лекарство от рака. В индустрии больше 10 лет, успел поработать на бекенде, фулстеке, был тимлидом.

Мы не любим отвлекаться от текущей работы, копаться в трекере задач и почте, чтобы найти нужный тикет или письмо от клиента. Нас беспокоят пропущенные напоминания и недоступные логи. Чат-боты и боты для поддержки процессов разработки популярны у разработчиков именно потому, что избавляют нас от нелюбимой рутины. Боты помогают нам в DevOps-трансформации.
Для разработки ботов удобно использовать serverless-технологии. Одно из преимуществ при работе с приложениями облачного бота, которые тоже размещены в облаке, — моментальный доступ к ним. В докладе на DevopsConf 2021 я подробно рассказал о концепции СhatOps и о том, какие из serverless-технологий стоит взять на вооружение уже сейчас. Кажется, что СhatOps и serverless созданы друг для друга.

Современная распределенная СУБД должна уметь поддерживать различные типы нагрузки, удовлетворяя запросы совершенно разных пользователей. СУБД Yandex Database позволяет не только хранить петабайты данных, поддерживать обработку миллионов запросов в секунду, но и предоставляет режим бессерверных вычислений. Эта платформа дает возможность обслуживать проекты с различными типами нагрузки: ключ-значение, традиционные веб-приложения на основе реляционной базы, а также документоориентированные базы данных.
Бессерверные вычисления применяются сейчас в различных сферах — от создания чат-ботов и приложений Интернета вещей до самостоятельных API доступа к сервисам по протоколу HTTP. Платформы для развертывания бессерверных вычислений имеются как у большинства поставщиков облачных решений Yandex Cloud Functions, Amazon Web Services Lambda, Google Functions), так и у Open Source сообщества.

Это вторая часть туториала, посвященного реализации Real World App — подписки на обновления с помощью гугл таблиц, бессерверных функций и реакта.
Напомню, что основной функционал нашего приложения, который мы реализовали в первой части туториала, является следующим:
Дополнительный функционал, реализацией которого мы займемся в этой части:

В этом туториале мы реализуем ~~Real World App~~ — подписку на обновления с помощью гугл таблиц, бессерверных функций и реакта.
Основной функционал нашего приложения будет следующим:
Дополнительный функционал:
В первой части туториала мы реализуем основной функционал, во второй — дополнительный.

Бессерверные вычисления (или serverless-технологии, как их иногда называют) — это перспективная технологическая модель облачных вычислений, появившаяся на горизонте прикладной разработки и архитектуры в последние годы. Именно благодаря стремлению воспользоваться огромным потенциалом бессерверных фреймворков многие крупные рыночные игроки оказались увлечены общим бумом облачных сервисов. Такие гиганты программной отрасли, как Google, Microsoft, IBM и Amazon, уже предлагают своим клиентам перенести локальные бизнес-процессы и обеспечить операционную эффективность на флагманских бессерверных платформах, таких как AWS Lambda и Azure Functions.
Если говорить простым языком, бессерверная архитектура — это технологическое решение, основанное на событиях и запросах, которое позволяет разработчикам приложений создавать в облаке эффективные рабочие среды, обладающие всеми вычислительными ресурсами, необходимыми для организации бесперебойного процесса разработки. Подобные фреймворки очень удобны, особенно в условиях сжатых сроков и ресурсоемкости поставленных задач.
Более того, выбор бессерверных сервисов позволяет оптимизировать процессы разработки приложений и таким образом повысить результативность других практик по оптимизации бизнес-процессов, включая DevOps и Agile.

Добро пожаловать в современный интернет, где большая часть взаимодействия приходится на интерфейсы прикладного программирования — API. На API держится цифровой бизнес: с ними стало возможным предоставлять и получать услуги через приложения и подключённые к Сети устройства. Платёжные системы? Работают через API. Интерактивная карта, показывающая, как добраться от метро до офиса? Снова API. Даже бэкенд строится на API.
Похоже, мы окружены — значит, придётся разбираться. Что такое API, на Хабре уже рассказывали, а я предлагаю рассмотреть поподробнее реализацию API Gateway на облачных платформах.

Первая ассоциация, которая приходит при упоминании serverless-решений это облачные решения вроде AWS Lambda, Azure Functions или Google Functions, а на российском рынке Yandex Cloud Functions. У них имеются определенные бесплатные лимиты и это подкупает. В случаях когда вы уже используете в работе K8s, смысла выносить отдельные части вашего приложения за кластер нет. Если вам интересно познакомиться с возможностями использования функций, с вариантами serverless решений на Bare-metal Kubernetes, а также узнать, как и где можно развернуть свое PoC решение бесплатно на облачной виртуальной машине, то приглашаю под кат.

Когда мы говорим о бессерверной архитектуре, мы обычно выходим далеко за рамки модели «функция как услуга» (FaaS), одной из реализаций которой являются функции AWS Lambda.
Причин высокой привлекательности AWS Lambda две: первая — автоматическое масштабирование (причем в обе стороны), вторая — возможность оплаты по факту использования. Тем не менее, чтобы в полной мере использовать эти возможности и все преимущества бессерверной архитектуры, другие компоненты инфраструктуры должны обладать такой же гибкостью.
Как же будет выглядеть такого рода архитектура в интернет-проекте?
Мы в Theodo очень любим бессерверные технологии и внедряем их во всё новые и новые проекты. Какие-то сервисы и модели мы применяем наиболее широко. Поэтому мы решили поделиться опытом в разработке архитектуры веб-приложений. Если бессерверные технологии вам в новинку и хотелось бы получить общие рекомендации и ответы на вопросы, то вы обратились по адресу!