Микросервисная архитектура (МСА) сравнительно недавно завоевала славу самого популярного архитектурного подхода. Ее использование обеспечивает множество преимуществ на различных этапах жизненного цикла продукта. В частности, МСА позволяет получить меньшее время реакции на требования бизнеса, что зачастую обеспечивает ее превосходство над прочими архитектурными стилями.
Однако, в процессе разработки МСА систем архитектор сталкивается со множеством вызовов, многие из которых заставляют новичков откатываться назад.
Ошибки декомпозиции могу привести к серьёзному увеличению сложности разработки. Производительность страдает из-за непреодолимых сетевых задержек. Распределенное хранение данных не позволяет использовать транзакционную согласованность. Большое количество взаимодействующих по сети компонент снижает надежность. Сложно обеспечивать безопасность. Кроме того, отдельного разговора требует тестирование и обслуживание распределенной системы.
Данный курс покажет преимущества и недостатки использования МСА. Поможет принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.
В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры. Стратегии, механизмы, паттерны, решающие озвученные выше задачи. По каждой рассматриваемой проблеме будут представлены наиболее распространённые инструменты (такие, как Kubernetes, Istio, Histryx, Kibana, и многие другие).
Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть...
- 1. Архитектурные стили (2 ч.)
- Понятия монолита, SOA, MSA.
- Сравнение и обоснование выбора.
- 2. Паттерны декомпозиции MSA (2 ч.)
- Оптимальный размер микросервиса;
- Разбиение на сервисы по бизнес-возможностям;
- Разбиение на сервисы по проблемным областям;
- Практики определения предметных областей;
- Декомпозиция по техническим и организационным аспектам.
- 3. Организация разработки под MSA (1 ч.)
- Организация команд под MSA;
- Организация репозитория кода под MSA.
- 4. Интеграция микросервисов (3 ч.)
- Паттерны взаимодействия;
- Синхронные и асинхронные механизмы взаимодействия;
- Оркестровка и хореография;
- Основные протоколы и технологии (REST, gRPC, GraphQL, Kafka, RabbitMQ и др.);
- Взаимодействие с внешними системами (API Gateway, BFF);
- Реактивные системы;
- Архитектуры управляемые событиями;
- Разделение команды и запроса.
- 5. Организация работы с данными в MSA (3 ч.)
- Паттерны работы с данными;
- Порождение событий;
- Справочные данные в MSA;
- Единый источник истины (Source of Truth) в MSA.
- 6. Основные шаблоны МСА (9 ч.)
- Модифицируемость.
- Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
- Масштабируемость.
- Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
- Производительность.
- Паттерны производительности в MSA (переборка, изящная деградация и пр.).
- Согласованность.
- Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
- Надежность.
- Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
- Безопасность.
- Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
- Тестируемость.
- Пирамида и квадрат тестирования. Особенность тестирования микросервисов.
- Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.
- Удобство обслуживания.
- Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
- 7. Развертывание микросервисов (2 ч.)
- Паттерн «Deployment pipeline»;
- Паттерны развертывания;
- Использование технологий Docker и Kubernetes;
- Использование сетки ISTIO;
- Бессерверное развертывание;
- Стратегии развертывания (сине-зеленые, канареечные и т.д.).
- 8. Стратегии миграции от монолита к MSA (2 ч.)
- Стратегии перехода с монолита на микросервисы;
- Удушение монолита (Strangler monolith);
- Паттерны удушения;
- Связь микросервиса с монолитом;
- Миграция базы данных.
Складчина: новые складчины на курсы и тренинги | страница 34
Страница 34 из 34
Категории
-
[IBS] Микросервисная архитектура (Дмитрий Овчаренко)
16 ноя 2024
-
[Thinknetica] Параллелизм и многопоточность в Ruby и Rails. Тариф Слушатель (Денис Савицкий)
13 ноя 2024
Этот воркшоп для вас если:
- Ваше приложение не справляется с нагрузкой и начинает медленно обрабатывать запросы по мере увеличения числа пользователей
- Ваше приложение часто выполняет задачи в фоновом режиме, такие как отправка писем или генерация отчетов
- Вы работаете с большими объемами данных и сталкиваетесь с продолжительным временем обработки
- Вы хотите раз и навсегда разобраться с concurrency и параллелизмом в Ruby и научиться использовать их так, чтобы не выстрелить себе в ногу
День 1. Основы параллельных вычислений в Ruby
Рассмотрим способы выявления неэффективных процессов, теория основ параллельных вычислений в Ruby, использование Thread и Fiber.
Результат: Поймете, как определить проблему производительности и решишь её “в лоб” используя параллельные процессы в Ruby на практике.
Содержание:
- Введение в многопоточность и параллелизм: различия и преимущества.
- Как находить узкие места производительности в Ruby-приложении.
- Использование потоков (Thread) для параллельных вычислений: создание, управление, проблемы синхронизации.
- Работа с легковесными процессами: введение в Fiber и его применение.
- Практические примеры параллельной обработки: простые задачи и многопоточные решения.
- Проблемы конкурентности: race-conditions, deadlock, и как с ними бороться.
- Ограничения GIL (Global Interpreter Lock) в Ruby и как его обойти.
Узнаем, как параллельные вычисления могут быть интегрированы в веб-приложения на Ruby on Rails, и задействуем второй уровень оптимизации: фоновые задачи и очереди в Sidekiq.
Результат: Сможете настроить параллельных вычислений в фоновых задачах Rails, контролируемо улучшить производительность выполняя задачи параллельно.
Содержание:
- Управление зависимостями и очередь задач в параллельных вычислениях. Обеспечение уникальности выполнения задач, продолжение обработки очереди после ошибки.
- Советы по оптимизации фоновых процессов: минимизация задержек и контроль параллельных операций, логгирование, профилирование.
- Метрики производительности для фоновых задач: мониторинг и оптимизация.
- Подходы к обработке ошибок и ретрай задач в многопоточных системах.
- Race condition, deadlock, retry failures.
- Потеря данных при неожиданном завершении.
- Memory bloat, database contention.
Поговорим о том, как параллельные вычисления помогают ускорить работу с большими объемами данных. Рассмотрим подходы к оптимизации SQL-запросов и блокировках, race-condition при параллельной обработке данных.
Результат: Научитесь оптимизировать запросы к базам данных, минимизировать нагрузку и использовать параллельные вычисления для ускорения работы с большими данными без deadlock и потери данных.
Содержание:
- Параллелизм и базы данных: как эффективно распределить нагрузку между процессами и сохранить консистентность данных.
- Оптимизация SQL-запросов для параллельной обработки: индексирование, версионирование.
- Управление транзакциями в параллельных вычислениях: как избежать конфликтов и deadlock.
- Проблемы блокировок (lock) и race-conditions при многопоточности в работе с базами данных.
- Использование ActiveRecord для параллельных вычислений: как улучшить производительность запросов.
- Кейсы работы с большими объемами данных: импорты, миграции, анализ данных в фоновом режиме.
Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть... -
Большой Курс Python - с нуля до продвинутого. Тариф С поддержкой (Egor Wexler, Ekaterina Wexler)
13 ноя 2024
Программа курса:
Модуль 1
Вступление | Hello World
- О курсе
- функция print
- Примитивные типы данных str, int, float, bool
- Задание переменных разных типов
- Понятие констант
- Как подружиться с ботом
- Как удобнее и эффективнее решать задания
Интерпретация и компиляция
- Что нужно, чтобы компьютер выполнил написанный код?
- Отличие компиляции и интерпретации
- Зачем нужно "Установить Python"на компьютер
- Что такое IDE?
- Зачем нужен IDE?
- list (список/массив)
- dict (хеш-таблица)
- Отличие mutable и immutable
- Посмотрим ещё раз как задавать переменные
- Как делать коллекции и обращаться к отдельным элементам
Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть...Модуль 2
Составные типы данных | Часть 2
- set (набор уникальных элементов)
- tuple (неизменяемый лист)
- None
- Особенности ключей в dict
- Задания на подбор типов данных для различных случаев
- Понятие функции
- Передача параметров в функции
- Вызов функций
- Возврат значений из функций
- Передача значений из одной функции в другую
- Опциональные параметры
- Понятие локальных переменных
- Примеры применения функций
- Дополнительная практика создания и использования функций
- if, else, elif
- Логические операторы not, and, or
- Тонкости сочетания условий между собой
- Описание и практика всех доступных математических операторов
- Применение математических операторов к различным типам данных
- Как вводить данные в вашу программу с клавиатуры (в консоль)
- Конвертация типов данных из одного в другой
Установка на Windows
- Видео-урок по установке Python и PyCharm на Windows
- Видео-урок по установке Python и PyCharm на MacOS
- Как запускать код в PyCharm
- Как писать код в различных файлах и использовать import
- Зачем нужен блокif __name__ == '__main__':
- А заодно:
- Как получить текущую дату (модуль datetime)
- Как получить цифру из ввода командной строки (и использовать для этого рекурсию)
- Зачем нужен дебаггер
- Как использовать дебаггер в PyCharm
-
Освоение Tabnine AI для эффективной разработки кода (Metla Sudha Sekhar)
12 ноя 2024
Вы научитесь:
Введение в поколение ИИ
Исследование Gen AI, Tabnine и пользовательских решений AI
Углубленное понимание Табнина
Узнайте, как Tabnine поддерживает языки и функции
Установите и настройте Tabnine для полной интеграции с популярными IDE.
Узнайте, как Tabnine эффективно генерирует код
Предложения по сигнатурам основных функций и интеллектуальные
Используйте Табнин для процессов самовосстановления
Применение Tabnine в реальных сценариях, генерация кода
Создайте чат Tabnine AI для серверной части RESTful-сервисов.
Подкрепите теоретические знания практическими навыками искусственного интеллекта.
Позиционируйте себя как опытного пользователя Tabnine AI.
Написание сценариев тестирования автоматизации для быстрого тестирования.
Раскройте весь потенциал генеративного искусственного интеллекта с помощью нашего онлайн-курса « Освоение искусственного интеллекта Tabnine для эффективной разработки кода ». Этот курс, идеально подходящий для программистов и разработчиков, погружает в мир искусственного интеллекта и знакомит с такими инструментами, как Tabnine, Copilot, Kite, ChatGPT и другими.
Курс предоставляет практический опыт, помогая учащимся установить Tabnine, интегрировать его с популярными IDE и применить его для генерации кода, от сигнатур функций до процессов самовосстановления. Особое внимание уделяется функциям и возможностям, специфичным для языка, что позволяет участникам получить детальное понимание Tabnine на разных языках программирования.
Курс на английском языке с русской аудио дорожкой.
Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть... -
[IT-Academy] Sales Manager в IT (Надежда Кульба)
6 ноя 2024
Профессиональный курс (для трудоустройства)
Sales Manager в IT — специалист, который ведет коммуникацию с клиентом от первого контакта с ним и предложения услуг компании до заключения сделки. На старте карьеры Sales Manager в IT зарабатывает от 400-500$, но с развитием скиллов и навыков зарплата вырастает до 2000$.
Обучиться на менеджера по продажам вы можете в IT-Academy.
Курс «Sales Manager в IT» — современный подход к работе менеджера по продажам в IT-компаниях. На курсе вы получите полное понимание специфики работы менеджера, узнаете об инсайтах и современных подходах к продажам, о том, как коммуницировать с клиентами, а также научитесь применять стратегии и методики продаж.
Благодаря программе курса вы точно сможете стать хорошим сейлзом. Практика включает работу с реальными клиентскими сценариями, моделированием продаж IT-продуктов и услуг, а также сопровождением процесса продажи от начала до конца. Такая практика позволяет получить опыт в реальных ситуациях, с которыми могут столкнуться начинающие специалисты в своей Sales карьере, и тем самым приобрести уверенность в будущем.
Курс будет полезен всем, независимо от опыта и предыдущей сферы деятельности. Главное — желание понять, как работают Sales-менеджеры, и овладеть навыками IT-продаж.
Для чего этот курс
- Помочь слушателям сменить сферу деятельности на IT.
- Дать понимание работы сейлз-менеджера в IT-компаниях.
- Познакомить со спецификой продаж в айти.
- Развить у слушателей комплексный набор знаний, навыков и умений, необходимых для успешной карьеры в сфере IT-продаж.
Страница 34 из 34
