Microservices
Flávio Secchieri Mariotti
Enterprise Architect
Setembro, 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
fmariotti@csc.com / flavio.mariotti@outlook.com
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
centralizada
ESBs (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ências
Livros, 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úvidas
Q&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!!!

Microservices

  • 1.
  • 2.
     Objetivo  Oque são Microservices  Características do Microservices  Os princípios dos Microservices  Vantagens  Desvantagens  Microservice é o futuro?  Referências  Q&A Agenda
  • 3.
    Beleza, mas quemé você...
  • 4.
    Flávio Secchieri Mariotti Mestrandoem 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 fmariotti@csc.com / flavio.mariotti@outlook.com
  • 5.
    Que horas vamosfalar sobre Microservices...
  • 6.
    novo paradigma paraarquitetura 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...
  • 7.
    SOA vs Microservices Denovo esse papo de flexibilidade, desacoplamento e serviços, já vi isso tudo em SOA...
  • 8.
    Um pouco decontexto sobre SOA
  • 9.
    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.
  • 10.
  • 11.
    Services Serviços representam umprocesso, 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
  • 12.
    Services Serviços representam umprocesso, 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...
  • 13.
    Sendo assim... podemos dizerque Microservice é uma forma de projetar serviços em uma arquitetura orientada a serviços SOA
  • 14.
    Diferenças significativas existem... ESBsusado para integrar aplicações monolíticas Modelos de governança centralizada ESBs (API Gateway) independentes Modelos de governança descentralizadaSOA Microservices PORÉMMMM!!!!!
  • 15.
    Um pouco decontexto sobre Microservices
  • 16.
    O que sãoMicroservices? Deixa essa comigo!!! Eu sei... Microservice é um serviço pequeno
  • 17.
    Definição Microservices são umnovo estilo arquitetural que propõe uma abordagem de desenvolvimento de sistemas compostas por um conjunto de pequenos serviços…
  • 18.
    Ufa!! Ainda bem queele perguntou... Acho que entendi.. Mas, como saber se o serviço está pequeno?
  • 19.
    How Big Microservices deveser grande o suficiente para ter uma funcionalidade bem definida, e pequeno o suficiente para ser independente…
  • 20.
    Mas, afinal... Comofazemos hoje?
  • 21.
    Características de ArquiteturaMonolí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
  • 22.
    Características de ArquiteturaMonolítica Dificuldades para escalar…
  • 23.
    Características de ArquiteturaMicroservices  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
  • 24.
    Características de ArquiteturaMicroservices  Componetizado por serviços
  • 25.
    Características de ArquiteturaMicroservices  Organizado em torno de capacidades de negócios
  • 26.
    Características de ArquiteturaMicroservices  Gestão de dados descentralizados Mais facilidade para escalar…
  • 27.
    Características de ArquiteturaMicroservices  Automação de infra-estrutura (DevOps Skills)
  • 28.
    Características de ArquiteturaMicroservices  Projetado para o fracasso
  • 29.
    Por que devoutilizar?
  • 30.
    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
  • 31.
    Será??? Sabia que valeriaapena conhecer esse tal de Microservices... Só Vantagens Microservices isn’t a free lunch!!!
  • 32.
    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
  • 33.
    Quem já estáutilizando?
  • 35.
    Então é isso...Microservice é melhor que monolítico?
  • 36.
    “While our experiencesso 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
  • 37.
  • 38.
    Referências Livros, 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
  • 39.
  • 40.
    Dúvidas Q&A Isso vai cairna 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!!!