2017 2015-2016: Главный архитектор информационных систем Центрального Банка Российской Федерации (Банк России) 2005-2014: Руководитель Департамента ИТ архитектуры ОАО “ВымпелКом” (торговая марка “Билайн”) 2000-2005: Менеджер по развитию дополнительных услуг связи: платежей, программы лояльности и др. 1995-2000: Эксперт по системам обмена сообщениями, приложениям “Банк-Клиент” и “Банк-Банк” ОАО АБ “Инкомбанк” до 1995: разработчик криптографических приложений (шифрование, цифровая подпись)
скорость” Абонент Автоматизированная система расчетов Оператор связи Абонент Интернет Баланс Пакет услуг Сети передачи данных Сеть 2G звонок, СМС данные S S R
скорость” Абонент Автоматизированная система расчетов Оператор связи Абонент Интернет Сервисная шина Баланс Пакет услуг Сети передачи данных Сеть 2G звонок, СМС данные 1 снизить скорость S S R
скорость” Абонент Автоматизированная система расчетов Оператор связи Абонент Интернет Сервисная шина Баланс Пакет услуг Сети передачи данных Сеть 2G звонок, СМС данные 1 2 снизить скорость отправить СМС S S R
Вызовы: Устаревание программных средств Масштабирование команды Непрерывная проверка гипотез Возможности: использование шаблона command-query responsibility segregation(CQRS) и event sourcing
Characteristics of a Microservice Architecture: 1.Componentization via Services 2.Organized around Business Capabilities 3.Products not Projects 4.Smart endpoints and dumb pipes 5.Decentralized Governance 6.Decentralized Data Management 7.Infrastructure Automation 8.Design for failure 9.Evolutionary Design
http://12factor.net/ Codebase Одна кодовая база, в системе контроля версий – множество развертываний Dependencies Явно объявляйте и изолируйте зависимости Config Сохраняйте конфигурацию в среде выполнения Backing services Считайте сторонние службы подключаемыми ресурсами Build, release, run Разделяйте стадии сборки и выполнения Processes Запускайте приложение как процессs не сохраняющие внутреннее состояние (stateless) Port binding Экспортируйте сервисы через привязку портов Concurrency Масштабируйте приложение с помощью процессов Disposability Максимизируйте надежность с помощью быстрого запуска и корректного завершения работы Dev/prod parity Держите окружения разработки, и развёртывания максимально похожими Logs Рассматривайте журнал как поток событий Admin processes Выполняйте задачи администрирования/управления с помощью разовых процессов
Что такое microservices с точки зрения I&O: 1.Это процесс[ы], предоставляющий в сеть программные интерфейсы (API) 2.Независимо развертываются и исполняются в собственном программном контексте 3.Масштабируются посредством запуска дополнительных экземпляров (stateless) 4.Реализуют отдельные операции для информационных запросов и для команд (CQRS) 5.Предназначены для изоляции отказов и автоматического восстановления
Некоторые DevOps паттерны: 1. Human by Exception 2. Preapproved change 3. ChatOps 4. Canary rollouts 5. Failing forward … Балансировщик нагрузки Релиз 1 Blue environment Green environment Балансировщик нагрузки Релиз 1 Релиз 2 Blue environment Green environment Балансировщик нагрузки Релиз 1 Релиз 2 Blue environment Green environment Балансировщик нагрузки Релиз 1 Blue environment Green environment Балансировщик нагрузки Релиз 1 Релиз 3 Blue environment Green environment Балансировщик нагрузки Релиз 1 Релиз 3 Blue environment Green environment