Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
A demanda cada vez maior por agilidade, inovação e escalabilidade das soluções digitais tem impulsionado a adoção da arquitetura baseada em microservices. Os benefícios desta abordagem são reais e significativos, mas esse estilo arquitetural traz uma série de novos desafios.
Nesta apresentação, vamos fazer um mergulho profundo a partir de exemplos detalhados sobre as vantagens e desvantagens dessa abordagem arquitetural, como por exemplo:
Explorar como realizar a decomposição funcional e como definir taxonomias e granularidades adequadas para os microservices;
Como solucionar problemas arquiteturais como Client-side service discovery e Server-side service discovery, invocação, logging e monitoramento;
Definir protocolos de comunicação (HTTP, AMQP e Websocket) de forma minimizar a latência e lidar com outros requisitos não funcionais;
Como atacar questões de replicação de dados e regras de negócio e dados;
Design Patterns para problemas arquiteturais recorrentes;
Como conduzir a operação e evolução de um sistema nesta abordagem.
Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
A demanda cada vez maior por agilidade, inovação e escalabilidade das soluções digitais tem impulsionado a adoção da arquitetura baseada em microservices. Os benefícios desta abordagem são reais e significativos, mas esse estilo arquitetural traz uma série de novos desafios.
Nesta apresentação, vamos fazer um mergulho profundo a partir de exemplos detalhados sobre as vantagens e desvantagens dessa abordagem arquitetural, como por exemplo:
Explorar como realizar a decomposição funcional e como definir taxonomias e granularidades adequadas para os microservices;
Como solucionar problemas arquiteturais como Client-side service discovery e Server-side service discovery, invocação, logging e monitoramento;
Definir protocolos de comunicação (HTTP, AMQP e Websocket) de forma minimizar a latência e lidar com outros requisitos não funcionais;
Como atacar questões de replicação de dados e regras de negócio e dados;
Design Patterns para problemas arquiteturais recorrentes;
Como conduzir a operação e evolução de um sistema nesta abordagem.
Understanding the REST API of SharePoint 2013SPSSTHLM
Presented by Paolo Pialorsi at SharePoint Saturday Stockholm 2014
See also http://www.spsstockholm.com/2014/session/understanding-the-rest-api-of-sharepoint-2013/
From a developer perspective, one of the most important new features introduced in Microsoft SharePoint 2013 is the REST API. In this session, you learn about the architecture of the REST API, the main and most useful endpoints, and you see a bunch of real-life usage samples to leverage the API in your SharePoint Apps. To attend this session you should have a good understanding of developing SharePoint Apps.
Una transacción es una unidad de trabajo que se compone de una o más instrucciones SQL que realizan un conjunto de acciones relacionadas.
La transacción puede incluir varias instrucciones SQL, realizando cada una de ellas una tarea específica.
Para que un conjunto de acciones califique como una transacción, debe pasar la prueba ACID. ACID es el acrónimo comúnmente utilizado para referirse a los nombres en inglés de las cuatro características de una transacción (Atomic,Consistent, Isolated y Durable, respectivamente).
Understanding the REST API of SharePoint 2013SPSSTHLM
Presented by Paolo Pialorsi at SharePoint Saturday Stockholm 2014
See also http://www.spsstockholm.com/2014/session/understanding-the-rest-api-of-sharepoint-2013/
From a developer perspective, one of the most important new features introduced in Microsoft SharePoint 2013 is the REST API. In this session, you learn about the architecture of the REST API, the main and most useful endpoints, and you see a bunch of real-life usage samples to leverage the API in your SharePoint Apps. To attend this session you should have a good understanding of developing SharePoint Apps.
Una transacción es una unidad de trabajo que se compone de una o más instrucciones SQL que realizan un conjunto de acciones relacionadas.
La transacción puede incluir varias instrucciones SQL, realizando cada una de ellas una tarea específica.
Para que un conjunto de acciones califique como una transacción, debe pasar la prueba ACID. ACID es el acrónimo comúnmente utilizado para referirse a los nombres en inglés de las cuatro características de una transacción (Atomic,Consistent, Isolated y Durable, respectivamente).
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
Microservices é um estilo arquitetural que têm revolucionado o desenvolvimento de aplicações através de pequenos serviços, desacoplados e com foco em executar uma tarefa específica comunicando-se através de Web APis ou mensagens assíncronas. Nesta palestra será apresentado como microservices é capaz de solucionar seus problemas no desenvolvimento de sistemas robustos e escaláveis. Serão abordadas as principais características deste paradigma, quais as vantagens e desvantagens em comparação a arquiteturas monolíticas, exemplos e situações de uso.
Nessa palestra será apresentada a experiência do iFood no uso de técnicas Reactive, que permitem ganhar desempenho e escala em microservices – em arquiteturas que demandam alto nível de processamento e ao mesmo tempo baixo consumo de recursos. Veremos como o framework Reactor, a base reativa do Spring 5.0, está apoiando a evolução de microservices no iFood. O uso de microservices e Reactive está ajudando a atender um alto tráfego de eventos e requests em tempo real e a acompanhar a demanda de pedidos, que triplica a cada ano. Serão explorados os pilares do reactive manifesto (Responsive, Elastic, Resilient, Message-driven), conceitos de Reactive Streams e Backpressure e de fluxos bloqueantes/não-bloqueantes – e como aplicar muitos desses conceitos na prática usando o framework Reactor e o Spring 5.0.
Nessa palestra será apresentada a experiência do iFood no uso de técnicas Reactive, que permitem ganhar desempenho e escala em microservices – em arquiteturas que demandam alto nível de processamento e ao mesmo tempo baixo consumo de recursos.
Veremos como o framework Reactor, a base reativa do Spring 5.0, está apoiando a evolução de microservices no iFood. O uso de microservices e Reactive está ajudando a atender um alto tráfego de eventos e requests em tempo real e a acompanhar a demanda de pedidos, que triplica a cada ano.
Serão explorados os pilares do reactive manifesto (Responsive, Elastic, Resilient, Message-driven), conceitos de Reactive Streams e Backpressure e de fluxos bloqueantes/não-bloqueantes – e como aplicar muitos desses conceitos na prática usando o framework Reactor e o Spring 5.0.
Um método para o desenvolvimento de software baseado em microsserviçosThiago Pereira
Trabalho de conclusão do curso (TCC 2) de Engenharia de Software da Universidade Federal do Ceará, campus de Quixadá.
Este trabalho propõe um método, ou seja, um conjunto de passos bem definidos para auxiliar o desenvolvimento de software baseado em microserviços.
Introdução a arquitetura Microservices, como evoluímos das arquiteturas monolíticas até padrões de arquitetura Microservice, onde pequenos serviços distribuídos na rede compõem uma grande peça. Serão abordadas técnicas de distribuição de dados e chamadas remotas, gerenciamento dos serviços distribuídos e como minimizar as dores de cabeça. Toda arquitetura e prática será realizada em cima da plataforma NodeJS.
Nessa palestra é apresentada a experiência do iFood no uso de técnicas Reactive, que permitem ganhar desempenho e escala em microservices – em arquiteturas que demandam alto nível de processamento e ao mesmo tempo baixo consumo de recursos.
Veremos como o framework Reactor, a base reativa do Spring 5.0, está apoiando a evolução de microservices no iFood. O uso de microservices e Reactive está ajudando a atender um alto tráfego de eventos e requests em tempo real e a acompanhar a demanda de pedidos, que triplica a cada ano.
Serão explorados os pilares do reactive manifesto (Responsive, Elastic, Resilient, Message-driven), conceitos de Reactive Streams e Backpressure e de fluxos bloqueantes/não-bloqueantes – e como aplicar muitos desses conceitos na prática usando o framework Reactor e o Spring 5.0.
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...Tiago Marchetti Dolphine
Veja nessa palestra como a distribuição de serviços, o uso de Web APIs e processamento assíncrono nos fez atingir objetivos de crescimento agressivo e quebrar a barreira de um milhão de pedidos por mês no iFood.
Entre os assuntos abordados:
Modularização de APIs REST e flexibilidade para suporte de aplicações mobile, web, integrações de parceiros além de serviços internos e uso de SDK;
Caching compartilhado de alta performance com Aerospike e com o uso de filas e eventos na AWS, solucionando problemas de escala e alto processamento;
Microservices e migração de serviços monolíticos utilizando Spring Boot, benefícios e problemas enfrentados;
Coleta de métricas com Metrics e Graphite e o monitoramento de APIs, e como isso pode ser estratégico no desenvolvimento.
São explorados sucessos, dificuldades e falhas neste percurso de evolução de sistemas legados e integrações. Também mostramos como estar preparado para um futuro de alto crescimento e elasticidade de acessos.
Micro-serviços tornaram-se o tema mais quente na arquitetura de software durante o ano passado, e muito pode ser dito sobre os seus benefícios. No entanto, é importante compreender que ao começar a decompor o monolito, entramos no reino de sistemas distribuídos lidando com cenários de transparência de localização, recuperação à falhas, escalabilidade, autonomia, fácil atualização, etc. O projeto Spring Cloud promove ferramentas para facilmente implementar estes conceitos, definindo padrões de implementação para sistemas distribuídos com suporte para gerenciamento de configuração, descoberta de serviços, circuit breakers, roteamento, distribuição de sessão, barramento de controle, dentre outros. Nesta palestra serão demonstrados os conceitos destas ferramentas com a utilização do projeto Spring Cloud e com o suporte da plataforma do Netflix OSS.
Visão geral de um conjunto de Web Tools , estado da arte, capazes de prover uma suíte integrada de desenvolvimento e produção de softwares.
Sistema de gerência - use gratuitamente por 45 dias http://try.fogbugz.com
Para treinar sua equipe
http://training.fogcreek.com/index.php?lang=pt
Se gosta de games: www.futweb.com.br e http://futweb.com.br/ole
FutWeb: http://www.youtube.com/watch?v=eGhyXUtEISE
Ole: http://www.youtube.com/watch?v=cxn2LlWSt-o
Para usuários do Unity e do FogBugz
http://www.youtube.com/watch?v=h23XvVOk4cA
O objetivo desta apresentação é trabalhar os conceitos de aplicações cloud native, containers e microservices.
Reactive microservices, 12 factor apps e container orchestration possuem vários conceitos em comum. Ao falar destes conceitos entendemos que as mudanças do mercados trabalham todas em cima da mesma base.
2. About me
• Físico por formação
• Pythonista desde 2010
• Mineiro agora morando no Rio
• Desenvolvedor na
• Plataformas de publicação
3. Por que falar de
microservices?
Interesse ao longo do tempo
Fonte: google trends
4. Por que falar de
microservices?
• Tendência do mercado
• Implementado nos líderes de tecnologia do mundo
(Amazon, eBay, Netflix, Apple…)
• Resolve bem problemas de desenvolvimento em
larga escala
7. globo.com (Monolito)
pré micro-serviços
• Um grande projeto em Django
• ∞ linhas de código e milhares de testes
• Banco MySQL superinflado
• Vários times desenvolvendo o mesmo codebase
8. Monolito
Principais problemas
1. Baixa velocidade de entregas
• “Time de deploy” e “dia do deploy”
• Refatoração cada vez mais cara
2. Escalabilidade
• Ruim de medir uso de recursos por módulo
• Dificuldade em fazer cache eficiente
3. Resiliência
• Algumas subidas causando instabilidade geral
11. Micro-serviços
Características comuns
• Velocidade de desenvolvimento
• Pequenos em tamanho e limitados por contexto
• Desenvolvidos autonomamente
• Escalabilidade
• Deploys individuais
• Resiliência
• Isolamento
• Automatização de processos (build, release,
monitoração…)
34. • Prototipagem e desenvolvimento rápidos
• Facilidade de instrumentar continuous delivery /
DevOps / automações em geral
• Uso bem difundido de Microframeworks
• É bem fácil fazer comunicação leve entre apps
μservices em Python
Vantagens de usar Python
35. • Podemos combinar com outras linguagens
• Manutenção barata
• Uma boa hora de introduzir Python[3] na stack
μservices em Python
Mais coisas legais
36. • Tornado: Network I/O não bloqueante
• Flask: Zero ao deploy em pouco tempo
• Django: Tastypie, django rest framework, channels
• Nameko: Feito para microservices
• aiohttp: asyncio nativo com network
μservices em Python
Frameworks
37. Considerações Finais
• Monolith-first
• O momento certo é quando sentir a necessidade
• Atenção aos requisitos: Provisionamento de infra,
monitoração, automação…
• A maior mudança é cultural
38. Isso é tudo pessoal!
We’re hiring!
https://talentos.globo.com
Guilherme Vierno
vierno.com.br
40. Nem tudo são flores
• Complexidade de desenvolvimento/operacional
• Duplicação de dados
• Latência adicional
• Desuniformidade
• Refatoração cross-módulo