agiledays 2016. Внедрение agile в Банке

35
Внедрение Agile в Банке Михаил Кононов ООО «Хоум Кредит энд Финанс Банк»

Upload: -

Post on 07-Jan-2017

1.551 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: AgileDays 2016. Внедрение Agile в Банке

Внедрение Agile в Банке

Михаил Кононов

ООО «Хоум Кредит энд Финанс Банк»

Page 2: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP AGILE

Автор: Кононов М.14.03.2016

2

Page 3: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Agenda

1. О Банке HomeCredit2. Блок информационных технологий3. Agile4. Пилотные проекты5. Что от финтех-а применяем6. Микросервисная архитектура7. Open API 8. Результаты пилотов9. Что дальше?10. Вопросы

3

Page 4: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Один из крупнейших банков России

1 5 137место

по POS-кредитам

местопо кредитамналичными

местопо депозитам

физических лиц

местопо кредитным

картам

29.9 млн.клиентов

Нас выбрала почти каждаявторая семья России!

4

Page 5: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Один из крупнейших банков России

87 107точек продаж

4 561

13 880

2 000

805

офисов

сотрудников

населенных пунктов

банкоматов

более

5

Page 6: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Что такое БИТ Home Credit

~600 сотрудников300 - развитие, 300 - сопровождение

Waterfall релизы200 сотрудников развития на релизах

6

Page 7: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

TTM

1 неделя -1 месяц

5 месяцев

Small tasks

Express Releases

Releases 8 месяцев7

Page 8: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Что такое Agile?

Набор ценностей и принципов

Набор практик и методик

Другой образ мышления и подход нацеленный на достижение результата в кратчайшие сроки

8

Page 9: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Зачем Agile?

1. Гибкость2. Сокращение TTM3. Повышение эффективности

+4. Применить технологии ФИНТЕХ-ов

9

Page 10: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Другой подход

10

Page 11: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Конвертация развития в бимодальную схемуРежим 1 Режим 2

Стабильность Цель Гибкость

Предсказуемая производительность за известную цену

Ценности Бренд, впечатления клиента

Waterfall Подход Agile

На основе согласованного плана Управление Непрерывное, адаптируемое на основе опыта

Большие вендоры, корпоративные интеграторы, долгосрочные договора

РесурсыНебольшие\новые вендоры и поставщики, краткосрочные контракты

Эффективен в традиционных процессах и проектах

СпособностиНовые проекты с элементаминеопределенности

IT-центричная, отдаленная от клиента Культура Бизнес-центричная, приближенная к клиенту

Долгое (месяцы) Время цикла Короткое (недели)11

Page 12: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Что такое Agile с технической стороны

1. Continuous Delivery2. Continuous Testing3. DevOps

12

Page 13: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Что такое Agile с точки зрения ИТ в нашем Банке

1. Отстроенный процесс разработки ПО на базе коротких спринтов2. Автоматизация

o Инфраструктуры в подходе Infrastructure as a Codeo Сетевых конфигураций и доступов

• Мониторинг• Централизованное логирование

13

Page 14: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Что такое Agile с точки зрения ИТ в нашем Банке

3. Частая поставка ПО - pipeline для работы с парадигмой ContinuousDelivery

• Автоматизированное развертывание на тестовую \ интеграционные \ нагрузочныесреды

• Автотесты• Нагрузочное тестирование• Автоматизированное развертывание в концепции обновление без остановки

14

Page 15: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Входные данные

1. Использование Open Source2. Delivery Pipeline3. Уход от монолитных приложений

15

Page 16: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

С чего мы начали

1. Выделение 2 команд по 4 FTE от ИТ + 2-3 от бизнесана 3 месяца

2. Пилотные проекты:• Проект “Микросервисная Архитектура”• Проект с монолитной legacy системой

16

Page 17: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Микросервисы vs Монолит

17

Page 18: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Микросервисы vs Монолит

18

Page 19: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Архитектура

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

РазвертываниеКаждый сервис устанавливается на среду исполнения независимо, при помощи

полностью автоматизированного механизма.

Полностью виртуальная инфраструктураВсе сервера, на которых разворачивается платформа – виртуальные и однотипные.

Разновидности контейнеровJava и .Net.

Непрерывная сборка (Continuous Integration)Commit в систему приводит к сборке микросервиса на билд-сервере и развертывании на тестовой среде. 19

Page 20: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Архитектура

АвтотестированиеПроверка микросервиса на уровне исполнения бизнес сценариев

Обновление без даунтаймаМикросервисные приложения обновляются последовательно, без остановки

бизнес сервиса.

Конфигурация также в виде кодаВся специфика конфигурирования сред вынесена в отдельные настройки и также хранится под версионным контролем.

20

Page 21: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

GW Load BalancerService

Discovery

ELK

Microservice A

API

Microservice B

API

Microservice A

API

DB DB

Reverse Proxy

Microservice

API GW

https

http

https

https

Internet access

Balancing

Logging

Monitoring

Service

discovery

For requests

from Internet

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

Service B Load

Balancer

https

API access control, audit,

throttling, etc

http

Service A Load Balancer

API GW

21

Page 22: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

ТехнологииТехнология As Is Пилоты

БД Oracle PostgreSQL

Middleware IIS, Weblogic -

Балансировщик Apache Nginx

Configuration MGMT Ant + ручные операции Ansible

Build MGMT Jenkins Jenkins

Service Discovery - Consul

Container - OS + VM

Development Framework .NET, JAVA NET, JAVA

API Gateway - Netflix ZUUL

22

Page 23: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Pipeline

23

Page 24: AgileDays 2016. Внедрение Agile в Банке

Ключевые принципы• TDD• BDD (Behavior Driven Development)• Тесты не привязанные к среде (1 спецификация тестов на много сред)

Тестирование микросервисов• Unit Тесты• Scenario тесты• Interface тесты

Технологии • CUCUMBER

Запуск тестов• Jenkins• Ручной пуск

Continuous TestingMEMBER OF

PPF GROUP

24

Page 25: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Continuous Testing

25

Page 26: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

@Когда("^выполнен запрос на отправку PASS code с типом шаблона

([\\w_]+)$")

public void createPassCodeJD(String templateCode) throws Exception{

PassCodeRequest request = new PassCodeRequest();

request.setExtId("cucumber");

request.setMobilePhone("9160000000");

request.setTemplate(templateCode);

MvcResult result = mockMvc.perform(post("/PassCode/v1/passcode")

.contentType(MediaType.APPLICATION_JSON)

.content(mapper.writeValueAsString(request)))

.andExpect(status().is2xxSuccessful())

.andReturn();

context.setResponseStatus(result.getResponse().getStatus());

context.setSessionId(mapper.readValue(result.getResponse().getConte

ntAsString(), ObjectNode.class).get("id").asText());

context.setPassCode(service.get(context.getSessionId()).getPassCode

());

}

Continuous Testing

26

Page 27: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

- name: Create directories for binaries

become: yes

file: path="/opt/{{service_name}}" state=directory

owner={{service_name}} group={{service_name}} mode=0755

- name: Create directories for logs

become: yes

file: path="{{log_dir}}" state=directory mode=0755

- name: Install java

become: yes

yum: name={{ java_pkg }}

register: installed_java_result

- name: Create service

become: yes

file: state=link src="/opt/{{service_name}}/{{service_name}}-

latest.jar" dest="/etc/init.d/{{service_name}}"

owner="{{service_name}}" mode=a+x force=yes

Инфраструктура как код

27

Page 28: AgileDays 2016. Внедрение Agile в Банке

Комбинация инструментов:• ELK (LogStash + ElasticSearch + Kibana)• CA WILLy – API• MS SCOM

ELK• Все инфраструктурные компоненты (NGINX, app server, DB)• Приложение / микросервис

Microservice A Microservice B

Elastic

Search

KIBANA

LogStash LogStash

GUI

MEMBER OF

PPF GROUP

Monitoring & Logging

28

Page 29: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

API

29

Page 30: AgileDays 2016. Внедрение Agile в Банке

1. Успешное завершение разработки и тестирования

2. Деплой в продуктив3. Открытое API для наших партнеров

MEMBER OF

PPF GROUP

Результаты

30

Page 31: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Проблемы

Пилот “Микросервисная архитектура”• Для ИТ – Agile, для всех остальных подразделений –

waterfall• Ресурсная проблема (QA дб 1 на 2 Dev)

Пилот с монолитной legasy системой• Нечеткое формулирование требований (не

подготовлены, часто все “Critical” приоритета • Нет выделенной среды – совмещение с waterfall

релизами • Другие подразделения по прежнему в waterfall!

31

Page 32: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Agile Roadmap на 3 месяца

1. Визуализация Scrum процессов — 04.20162. Расширить автотестирование на мобильное

направление — 05.20163. CI \ CD на мобильное направление— 06.20164. Метрики и измерения — 06.2016

32

Page 33: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Итоги

1. DEVPORTAL (описание сервисов для партнеров)2. OPEN API

33

Page 34: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Дальше

1. Появление новых команд (мобильные приложения)2. Синхронизация команд3. Уменьшение waterfall в пользу agile (50% на 50%)

34

Page 35: AgileDays 2016. Внедрение Agile в Банке

MEMBER OF

PPF GROUP

Вопросы

Как связаться:EMAIL: [email protected]Тел. +7-916-028-91-72

35