MicroservicesFlávio Secchieri Mariotti
Enterprise ArchitectSetembro, 2015
Objetivo
O que são Microservices
Características do Microservices
Os princípios dos Microservices
Vantagens
Desvantagens
Microservice é o futuro?
Referências
Q&A
Agenda
Beleza, mas quem é você...
Flávio Secchieri Mariotti
Mestrando em Engenharia da Computação com ênfase em Engenharia de Software pelo IPT/USP. Pós-Graduado pelo
Instituto Brasileiro de Tecnologia Avançada IBTA em Engenharia de Software baseado em SOA. Bacharel em Sistemas
de Informação pela UNIUBE e Técnico em Processamento de Dados pelo UniFeb.
Brazil Architecture Manager na CSC - Computer Sciences Corporation, Professor Universitário, Articulista, Palestrante
e Consultor especializado em desenvolvimento de software orientado em arquiteturas OO, SOA, GIS, Mobile, Cloud
Computing com tecnologia Microsoft. Profissional Certificado ITIL, PSM e MCP.
Professor de Pós-Graduação na FIAP a mais de 5 anos das disciplinas: SOA, Cloud Computing (Azure), Windows
Phone e Arquitetura de Soluções (TOGAF).
https://br.linkedin.com/in/flaviomariotti
@FlavioSMariotti
Que horas vamos falar sobre
Microservices...
novo paradigma para arquitetura de software. Um novo estilo de arquitetura de software que propõe uma nova abordagem
arquitetural, visando reduzir acoplamento e aumentar a
flexibilidade do sistema, facilitando, assim as adequações
requeridas em um cenário cada vez mais complexo de aplicações
compostas por vários elementos, tais como: APIs, processos
independentes de comunicação, ecossistema heterogêneo e tecnologia agnóstico.
Objetivo
Entender...
SOA vs Microservices
De novo esse papo
de flexibilidade,
desacoplamento e
serviços, já vi isso
tudo em SOA...
Um pouco de contexto sobre
SOA
Definição
O que é SOA?
SOA é um estilo arquitetural que diminui o acoplamento, aumenta a
flexibilidade e torna a interoperabilidade e troca de mensagens entre
sistemas mais simples.
Por que existem diversas definições de SOA?
Explicar o que é SOA para um CEO é diferente de explicar o que é
SOA à um programador.
Arquitetura Orientada a Serviços
Services
Serviços representam um processo, atividade ou tarefa de negócio
transformados em componentes de software de alto nível. Se compõe com a
aplicação de princípios do service-orientation e unidades lógicas que podem
existir como objetos, componentes, web-services, ou serviços REST.
Princípios:
Serviços são reutilizáveis
Serviços compartilham um contrato formal
Serviços possuem baixo acoplamento
Serviços abstraem a lógica
Serviços são capazes de se compor
Serviços são autônomos
Serviços devem possuir a capacidade de serem descobertos
Services
Serviços representam um processo, atividade ou tarefa de negócio
transformados em componentes de software de alto nível. Se compõe com a
aplicação de princípios do service-orientation e unidades lógicas que podem
existir como objetos, componentes, web-services, ou serviços REST.
Princípios:
Serviços são reutilizáveis
Serviços compartilham um contrato formal
Serviços possuem baixo acoplamento
Serviços abstraem a lógica
Serviços são capazes de se compor
Serviços são autônomos
Serviços devem possuir a capacidade de serem descobertos
Para Microservices
vamos nos
concentrar nesse
princípio...
Sendo assim...
podemos dizer que
Microserviceé uma forma de projetar
serviços em uma arquitetura
orientada a serviços
SOA
Diferenças significativas existem...
ESBs usado para integrar
aplicações monolíticas
Modelos de governança
centralizadaESBs (API Gateway)
independentes
Modelos de governança
descentralizadaSOA
Microservices
PORÉMMMM!!!!!
Um pouco de contexto sobre
Microservices
O que são Microservices?
Deixa essa comigo!!! Eu sei...
Microservice é um serviço pequeno
Definição
Microservices são um novo estilo arquitetural que propõe uma abordagem de
desenvolvimento de sistemas compostas por um conjunto de pequenos serviços…
Ufa!! Ainda
bem que ele
perguntou...
Acho que entendi..
Mas, como saber se
o serviço está
pequeno?
How Big
Microservices deve ser grande o suficiente para ter uma funcionalidade bem
definida, e pequeno o suficiente para ser independente…
Mas, afinal... Como fazemos hoje?
Características de Arquitetura Monolítica
Any organization that designs a system (defined broadly) will produce a design
whose structure is a copy of the organization's communication structure.
-- Melvyn Conway, 1967
Características de Arquitetura Monolítica
Dificuldades para
escalar…
Características de Arquitetura Microservices
Componetizado por serviços
Organizado em torno de capacidades de negócios
São produtos não projetos
Pontos de conectividade mais inteligentes
Governança descentralizada
Gestão de dados descentralizados
Automação de infra-estrutura (DevOps Skills)
Projetado para o fracasso
Características de Arquitetura Microservices
Componetizado por serviços
Características de Arquitetura Microservices
Organizado em torno de capacidades de negócios
Características de Arquitetura Microservices
Gestão de dados descentralizados
Mais facilidade para
escalar…
Características de Arquitetura Microservices
Automação de infra-estrutura (DevOps Skills)
Características de Arquitetura Microservices
Projetado para o fracasso
Por que devo utilizar?
Vantagens
Alinhamento organizacional
Facilidade para liberação de novas funcionalidades
Escalabilidade independente / Mais flexibilidade
Facilidade para se concentrar nas questões de segurança
Escolha da tecnologia mais adequada
Será???
Sabia que valeria apena
conhecer esse tal de
Microservices...
Só Vantagens
Microservices isn’t a free lunch!!!
Desvantagens
Serviços poliglotas, requer desenvolvedores poliglotas
Leva tempo para chegar lá
Testes são mais complexos
Replicação de dados e regras
Transações
Gestão de configuração e versionamento
Log das aplicações
Quem já está utilizando?
Então é isso... Microservice é melhor que monolítico?
“While our experiences so far are positive compared to monolithic applications, we're
conscious of the fact that not enough time has passed for us to make a full judgement.”
-- James Lewis and Martin Fowler
Referências
ReferênciasLivros, Blogs, Frameworks, e mais...
Microservices is SOA?
https://dmitrio.wordpress.com/2014/05/25/microservices-is-soa/Scrum.org
Microservices
http://martinfowler.com/articles/microservices.html
The principles of Microservices
O’Reilly Conference with Sam Newman
Q&A
DúvidasQ&A
Isso vai cair na prova?
zzzzZZZ What? Já terminou?
Qual o nome dele mesmo?
Ele disse micro ou macro?
Cara, na boa, Microservices e SOA são iguais!!!
Afff, Deveria ter ido na palestra do lado....
Quem tá com fome?
Não entendi NADA!!!