Microserviços: flexibilidade e agilidade a que preço?



Documentos relacionados
TDC2012. EJB simples e descomplicado, na prática. Slide 1

35% GARTNER. Despesas com tecnologia ocorrem fora da T.I. Fazem uso de tecnologias não aprovadas pela T.I.

UFG - Instituto de Informática

Java Web/UI. Maven3 Redmine CVS. Áreas de conhecimento: Web o Aplicativos Web o Portal de conteúdo o REST Services Web Site Performance

Integrações e o ecossistema Java. Fabric8 ao Resgate!

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux

Experiência em missão crítica de missão crítica

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Oracle WebLogic Server 11g: Conceitos Básicos de Administração

Fabio Velloso Lançamento WildFly 8

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

OCEL001 Comércio Eletrônico Módulo 9_3: OpenShift

Escalando a 99Taxis. Lados obscuros de uma arquitetura distribuída

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Spring: Um suite de novas opções para Java EE

Web Services. (Introdução)

Globo-NetworkAPI. globo. ! Network as a Service na Globo.com. .com

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Capítulo 1 - Java EE 6 por alto - 1

Web APIs e delivery. Matando a fome de 1 milhão de pedidos mensais no. Tiago Dolphine

3 Serviços na Web (Web services)

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

ARQUITETANDO E EVOLUINDO. um erp para a nuvem

De gargalos à Oportunidades

Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296

Obtendo Qualidade com SOA

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE. Elias Adriano - UFSCar Daniel Lucrédio - UFSCar

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Desenvolvendo aplicações desktop em Java: presente e futuro

Benefícios e processos relacionados à migração e servidores dedicados para cloud servers. Juliano Simões. Diretor de Tecnologia

CURSO DESENVOLVEDOR JAVA Edição 2010

Padrões Abertos, Componentização e SOA A chave para a evolução e criação de uma nova geração de sistemas de gestão comercial

Java Programação para Fábrica de Software. Fernando Lozano Consultor 4Linux

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação e Configuração de Aplicações JEE. Edilmar Alves

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Como sobreviver com Java 2? Saulo Arruda

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Guilherme Augusto de Assis

Oportunidades em SP. Experiência no mercado financeiro / instituições bancárias / produtos de tesouraria.

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

Varejo Digital Automação Comercial para Cupom Fiscal Eletrônico

Prova Específica Cargo Desenvolvimento

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

Ricardo R. Lecheta. Novatec

CURSO DESENVOLVEDOR JAVA Edição 2009

SenchaTouch + PhoneGap

Daniel Paulo de Assis

DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime

Tuning de Servidores de Aplicação Java EE

Considerações no Projeto de Sistemas Cliente/Servidor

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Introdução aos Sistemas Distribuídos

Do SaaS ao PaaS no Mercado Eletrônico. Ricardo Pardini, qcon SP 13

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

Sistemas de Informações Gerenciais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Webstore Reloaded. A arquitetura do walmart.com.br remodelada

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013.

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

CHOReOS: Automatizando a implantação de web services na nuvem

Material 5 Administração de Recursos de HW e SW. Prof. Edson Ceroni

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

FAI Centro de Ensino Superior em Gestão,Tecnologia e Educação Curso de Sistemas de Informação Supervisão de estágios e de empregabilidade

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Integração de sistemas utilizando Web Services do tipo REST

TECNOLOGIA JAVA TENDÊNCIAS, MERCADO E FUTURO

UFG - Instituto de Informática

SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Abstraindo as Camadas de SOA & Aplicações Compostas

Migrando seu site para o Azure utilizando

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container TomCat Aula 05

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Desenvolvimento de Aplicação Windows Mobile Acessando um WebService

Testes de Performance

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

A Tecnologia Java e o Maior Provedor do Brasil. Daniel Rodrigues Ambrósio

WebApps em Java com uso de Frameworks

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

ANEXO 09 PERFIS PROFISSIONAIS MÍNIMOS

ANEXO 06 AMBIENTE PROCERGS. Desenvolvimento / Testes / Homologação / Produção

Transcrição:

Microserviços: flexibilidade e agilidade a que preço? Summa Technologies www.summa.com.br Einar Saukas Fabio Velloso @fabiovelloso 2005, Summa Technologies, Inc. 1

Einar Saukas Principal Consultant - Summa Technologies (1998) Co-Fundador e 1 o Presidente - SouJava (1999-2003) Engenheiro Eletrônico POLI/USP Prêmio Itautec (1992) Mestre em Ciência da Computação IME/USP Prêmio Sociedade Brasileira de Computação (1999) Projeto Sistema Único de Saúde/Datasus Prêmio Duke's Choice Award JavaOne San Francisco (2003) Projeto Sistema Integrado de Agendamento de Pacientes de São Paulo Prêmio Duke's Choice Award JavaOne San Francisco (2005) Projeto Central de Cessão de Crédito Câmara Interbancária de Pagamentos Prêmio Duke's Choice Award JavaOne Latin America (2012)

Fabio Velloso Consultor da Summa Technologies Co-Fundador e Diretor SouJava Bacharel em Ciência da Computação - UFSCar Professor de Arquitetura Orientada a Serviços - UFSCar Projetos com Java desde 1996 Ü Atualmente trabalhando em projetos de Integração, Big Data e Cloud Computing Y Palestrante em JavaOne, Abaporu, TDC, JustJava, Dia de Java, Café Brasil, Campus Party

Tópicos Motivação POR QUÊ? Características O QUÊ? Pontos de Atenção QUANDO? Frameworks e tecnologias COMO? Exemplos QUEM?

Motivação POR QUÊ? Componentização em serviços independentes Flexibilidade Escalabilidade Agilidade Liberdade tecnológica Especialização Isolamento de falhas Testes

Características O QUÊ? Componentização e modularização Serviços autônomos e desacoplados Monolítico Escopo e responsabilidade limitada Gerenciamento descentralizado Micro-serviços Deploy e execução isolada

Características O QUÊ? K Equipes multifuncionais por funcionalidade Equipes Especializadas Especialistas Em Front END Especialistas Em JAVA EE, Middleware e Integração Administração de Dados e DBAS Equipes Multifuncionais Funcionalidade de negócio Funcionalidade de negócio Funcionalidade de negócio Monolítico HTML CSS JAVAScript MVC JAVA EJBs Serviços Acesso a Dados Micro-serviços Baseado em http://www.slideshare.net/mstine/microservices-cf-summit

Características O QUÊ? Contexto A Contexto b Conceitos de negócio Bounded Context Domain Driven Design

Características O QUÊ? Produtos e não projetos Desenvolvedor: Ciclo de vida completo Software em produção g Contato com usuários

Características O QUÊ? Bases de dados descentralizadas Monolíticos Microserviços Monolítico Monolítico Monolítico Micro-serviço Micro-serviço Micro-serviço Micro-serviço

Características O QUÊ? Comunicação remota via rede APIs REST e HTTP " AMQP Smart Endpoints e Dumb Pipes

Características O QUÊ? Cultura de automação Design para falhas Design evolutivo Interdependência de serviços Composição

Dificuldades QUANDO? Controle transacional Segurança " Monitoração Performance Resiliência Testes Service discovery " Roteamento Legado

Fallacies of distributed computing The network is reliable Topology doesn't change Latency is zero K There is one administrator " Bandwidth is infinite Transport cost is zero The network is secure The network is homogeneous Fonte: http://en.wikipedia.org/wiki/fallacies_of_distributed_computing

Check-list QUANDO? Melhorias frequentes? Atualizações independentes? Transação isolada? Interface bem definida? Impacto em performance? Alta complexidade? Impacto cultural?

DevOps K Equipes mistas Integração Contínua Entrega Contínua Fonte: http://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2015-state-cloud-survey Computação em nuvem: Infra virou código

DevOps Agilidade " Cenários reais Parceria Feedback Responsabilidade Instrumentação Proatividade

Docker COMO? Container Sem overhead de VMs Isolamento de recursos Gerenciamento como processo de SO

Microframeworks COMO? Core mínimo e simples Web e REST JVM ou Servidor leve Deploy em containers Não padronizado

Dropwizard COMO? Jetty JAX-RS (Jersey) Jackson Metrics

Dropwizard COMO?

VERT.x COMO? Executa na direto na JVM Inspirado em Erlang/OTP e Node.js Event bus Java, JavaScript, CoffeeScript, Ruby, Python ou Groovy Plugins

VERT.x COMO?

spring boot COMO? Simplificar o desenvolvimento Spring Sem XML e starter POMs Tomcat embutido Declarar dependências Spring Boot Spring Data, Batch, Integration, Web, JDBC, Security JAX-RS

spring boot COMO?

Spark Java COMO? Inspirado no Sinatra Jetty Maven Dependências no POM Java 8 na versão 2

Monitoração e Log COMO? Monitoração Log JMX Graylog2 Graphite ELK stack Jolokia Log4j Metrics Janitor Mecanismos de segurança: circuit breaker e timeout

PRoblemas com Application servers Conflitos de ClassLoaders Uma aplicação por domain Uma Aplicação impacta na outra JVM isoladas Estrutura Complexa Libs, Heap e ClassLoader por aplicação Processo único em memória Upgrades isolados Dificulta Continuous Delivery Monitoração por aplicação Modularização e isolamento

WebLogic server 12.2.1 COMO? Cloud Multitenancy Partition ou tenant Isolamento Aplicações inalteradas Fonte: Oracle Weblogic Server Strategy and Roadmap bit.ly/oow14cafsessions

WebLogic server 12.2.1 COMO? Memória e CPU isoladas Árvore JNDI por partition Virtual host WorkManager Security realm Gerenciamento Fonte: Oracle Weblogic Server Strategy and Roadmap bit.ly/oow14cafsessions

Wildfly swarm (Red hat) COMO? WildFly 9 modular Core mínimo Jar com App Server, dependências e aplicação Dependências explícitas Cada micro-serviço em um pacote

PAyara COMO? Baseado no Glassfish 4.1 Modular Full Java EE, Web Profile e versão Micro JAX-RS, Web Sockets, CDI, JPA, EJB java -jar payara-micro.jar --deploy teste.war

Java EE COMO? JAX-RS JPA CDI Jetty / Tomcat Web profile

Java EE COMO?

Exemplos de Arquitetura COMO? HTTP HTTP HTTP HTTP AMQP HTTP HTTP HTTP HTTP AMQP Microserviço #1 DropWizard Jetty Microserviço #2 Spring Boot Tomcat Microserviço #3 JAX-RS JPA Glassfish Microserviço #4 CXF Open JPA Karaf Jetty Microserviço #5 JVM

Exemplos de Arquitetura COMO? HTTP HTTP HTTP HTTP HTTP AMQP HTTP HTTP HTTP Domain #1 JAX-RS Docker JPA AMQP Docker DropWizard Jetty Docker Spring Boot Tomcat JAX-RS Domain #2 JPA Glassfish JAX-RS JPA Docker JVM

semelhanças com SOA Componentes e encapsulamento Alta coesão Funcionalidades de negócio Independentes de linguagem Comunicação HTTP

diferenças com SOA Hub Central X Smart Endpoints e Dumb Pipes Orquestração (BPEL e BPM) SOAP X REST DevOps, cultura e organização

Netflix QUEM? 50 milhões de assinantes 800 devices 2 bilhões requisições/dia 500 microserviços 30 equipes Múltiplas versões Fonte: http://www.slideshare.net/stonse/pros-and-cons-of-a-microservices-architecture-talk-at-aws-reinvent

Netflix QUEM? Falhas parciais Simulação em produção Monkeys Chaos Latency Conformity Security Janitor Fonte: http://www.slideshare.net/betclictech/betclic-mini-trainingnetflixsimianarmy

Netflix QUEM? Fonte: http://techblog.netflix.com/2012/07/embracing-differences-inside-netflix.html

Arquitetura Micro Service #1 Banco Relacional Micro Service #2 Banco Orientado a Documentos Micro Service #3 Key/Store Data Base Micro Service #4 Graph Data Base

API Gateway HTTP HTTP Micro Service #1 Banco Relacional HTTP HTTP Micro Service #2 Banco Orientado a Documentos HTTP HTTP Micro Service #3 Key/Store Data Base HTTP AMQP AMQP Micro Service #4 Graph Data Base

Amazon QUEM? Equipes descentralizadas Serviços/estruturas independentes Q&A descentralizado Simulações de erros DevOps

CONCLUSÃO Prós x Cons Arquitetura Integração/Entrega Contínua DevOps Testes de Falhas Impacto Cultural Estratégia de Migração

Perguntas??

Obrigado Einar Saukas Fabio Velloso @fabiovelloso