План на курса
Въведение
- Системна и сервизна архитектура, PaaS и нативен дизайн в облака
Преглед на монолитната системна архитектура
- Изпълнение на цялостна функционалност на монолитни приложения в един процес
- Scalaспособност чрез репликация в множество сървъри
- Протоколи, използвани в монолитни системи: EAI, CORBA и др.
Преглед на уеб услугите
- Архитектура, ориентирана към услуги (SOA) и Microservices Архитектура
Service-Oriented Architecture (SOA)
- Полза и цена на SOA
- Успехи и неуспехи при внедряването на SOA
- Съобщения и ESB
- Инфраструктура и инструменти, поддържащи SOA
Как Microservices внедряване на концепции за уеб услуги
- Правете едно нещо и го правете добре
- DevOps
- Непрекъснато внедряване и доставка (непрекъснато интегриране, непрекъснат процес на изграждане и т.н.)
- Леки протоколи
Протоколи и стандарти за микросервизи
- HTTP, JMS, AMQP, Websockets, JSON и др.
Рамки за развитие на строителството Microservices
- Java базирани рамки (Spring Cloud)
- Java базирани на скрипт рамки (Seneca)
Декомпозиране на монолитно приложение
- Разработване на независимо внедряеми приложения
- Организиране на приложения за микросервизи около бизнес възможности
- Казус от практиката: Мигриране на монолитно приложение към три основни микроуслуги
Създаване на Spring Cloud среда за разработка
- Настройване на Docker и Docker Compose
- Задаване на променливи на средата
Преглед на Spring Cloud и Spring Boot
- Spring Cloud подпроекти: Config Server & Bus, Eureka, Ribbon, Feign и Hystrix
- Spring Boot
Създаване на Spring Boot приложение
Централизирано управление на конфигурацията с версии с Spring Cloud Config
Актуализации на динамична конфигурация с Spring Cloud шина
Откриване на услуги с Eureka
Балансиране на натоварването с лента
Прилагане на прекъсвачи с Hystrix
Декларативни REST клиенти с Feign
Работа с API Gateway
Защита на приложение за микросервизи
Проследяване на микроуслуги за разкриване на закъснения
Внедряване Microservices
- Контейнери (Docker, K8N, LXC и др...)
- Configuration Management (Ansible и т.н...)
- Откриване на услуга
- Мониторинг и управление Microservices
- Инфраструктура за Microservices
Облачна и автоматична Scalaспособност на Microservices
- Резервиране на микросервизи и отказ
- Мащабируемост на производителността за Microservices
- Автоматична мащабируемост
- Внедряване на Microservices на OpenStack, AWS и други облачни платформи
Отстраняване на често срещани проблеми за разпределени приложения
- Сложност на екосистемата
- Мрежова производителност
- сигурност
- Разгръщане
- Тестване
- Нано-услуги
Последни съображения за изграждане на системи, готови за производство
- Улесняване на системата за начинаещи
- Завършване на системата, така че да може да служи като основа за корпоративни приложения
Обобщение и заключение
Изисквания
- Разбиране на софтуера и системното инженерство
- Java опит в разработката
- Опит с Spring Framework
Публика
- Java разработчици, желаещи бързо изграждане и внедряване на микроуслуги
- Системни архитекти, желаещи да внедрят архитектура на микросервизи