migrando um legado para micro serviços

42
Migrando um legado para Micro Serviços Desafios, estratégias e aprendizados

Upload: rafael-de-paula-souza

Post on 30-Jul-2015

112 views

Category:

Software


1 download

TRANSCRIPT

Migrando um legado para Micro Serviços

Desafios, estratégias e aprendizados

www.ilegra.com

Cenário

O cliente sabe onde estão os problemas

Sabe que está fazendo errado

Mas precisa de ajuda para resolver

Cenário

Velocidade de desenvolvimento

Previsibilidade

Satisfação do cliente

TI e Software legados

“Arquitetura”

Estratégia

Pilares

CoachingArquitetura

DevOps

Tática

- Consultoria de Arquitetura;- Projeto piloto;- Treinamentos;- Evolução de Serviços;- Capacitação gradativa da equipe;- Automação;- Iniciativas de DevOps.

Desafios Técnicos

- Nosso principal problema: Integration Database;- Muita lógica de negócios no banco (procedures);- Evitar “big-bang refactoring”;- Remover features dos legado(s) constantemente;- Features novas entram como serviço.

Cloud?

- Traria agilidade, mas é inviável no momento: Integration Database;- Mas podemos chegar lá:- Trabalhando feed de dados on-premise -> cloud;- Encontrando serviços e componentes candidatos para cloud (menos

dependências dados isolados);- Condução de forma gradativa.

Cloud

ARQUITETURA

Discovery

Projeto Piloto

Time separado (isolamento)

Primeiros serviços

Code Review

Feedback

Simplicidade como Norte

Eliminar complexidade acidental

Spring Boot

“Chassis” de Serviços

POCs / Spikes

- Reduzir riscos;- Ajudar nas estimativas;- Isolamento de complexidade.

Anatomia dos Serviços

Design Estrutural

“Keep the code on the right layer”

Inter-service Communication

REST/Http(sync)

Event Driven(async)

JMS

Log centralizado

Evolução dos Serviços

Foco nas abstrações (contratos,

aggregations, anatomia).

Busca por consumidores (serviço como única fonte de

dados).

Isolamento completo.

Evolução

INFRAESTRUTURA

Automação

Pipeline

Docker

- Centrado na aplicação (e não no servidor/maquina);- Deployment rápido;- Manutenção simplificada (isolamento);- Portabilidade entre maquinas;- Controle de versões;- Crescendo.

Ansible

Docker + Gradle

Dockerfile

build.gradle

Vagrant

API MANAGEMENT

Gateway / Proxy

API Proxy

API Gateway

API Management

Gateway / Proxy

- Traffic Control;- Authentication;- Rate Limits;- Caching;- Analytics;- Transformation;- Monetization;- API Mocks.

Features/Responsabilidades

On-premise

Cloud

Cloud

Próximos Passos

- Finalizar projeto piloto;- Criação de novos serviços;- Trazer mais aplicações como consumidores dos serviços;- Equipes de outros projetos construir serviços;- Diminuir a “força” do Integration Database;- Métricas de delivery;- Maior esforço nas iniciativas DevOps.

OBRIGADO!

Rafael Souza

rafaelsouza.eng.br

rafael_psouza

rafaelpsouza