Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017

27
Microserviços

Transcript of Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017

Microserviços

Cristiano Diedrich

● Graduado em Sistema de Informação

● Atualmente Container Specialist na Umbler

● Busco soluções simples e eficientes utilizando Docker

● O que é

● Características

● Micro x Monilito

● Desafios

● Quando usar

Características

● Pronto para scalling

● Banco de dados separado

● Com comunicação remota, muitas vezes efetuadas através de HTTP

ou protocolos de mensageria

● Cada micro-serviço geralmente implementa uma pequena função de

negócio que compõe aplicações maiores

● Permite o desacoplamento tecnológico com o desenvolvimento

usando múltiplas linguagens e frameworks harmonicamente na

arquitetura

● Estilo de Arquitetura que usa componentes pequenos e com baixo

acoplamento

● Arquiteturas tolerantes a falhas em múltiplos componentes

Micro x Monilito

Desafios

● Controle do Estado em instâncias individuais

● Componentes que permitam aumentar linearmente a escrita

● Alta disponibilidade geográfica

● Processos de deploy mais leves e seguros

Como resolver?

Controle do Estado em instâncias individuais

❖ Sessões Web/HTTP

• Repositório de sessão compartilhado: Memcached, Redis,

DynamoDB, etc

❖ Uploads e gerenciamento de arquivos

• Sistema de arquivos distribuído e compartilhado: S3, Azure Blob,

OpenStack Swift, GlusterFS, etc

Controle do Estado em instâncias individuais

❖ Caches locais

• Sistemas de cache distribuídos: memcached, redis, Infinispan,

Elastic Search, etc

Componentes que permitam aumentar linearmente a escrita

❖ Usar outros tipos de bancos de dados em conjunto com o relacional

• Muitos bancos NoSql suportam particionamento: CAP Theorem

❖ Topologias multi-master são raras e normalmente caras

• Implementar o máximo de processamento assíncrono, com

abordagens de retentativas e capacidade de controlar a vazão

Alta disponibilidade geográfica

❖ Falhas em datacenters individuais são comuns

• Topologias multi-datacenter, com nuvens públicas ou híbridas

❖ Falhas em componentes individuais são ainda mais comuns

• Privilegiar componentes de software que permitam replicação

distribuída e preferencialmente sharding

Alta disponibilidade geográfica

❖ Cada vez mais precisaremos de arquiteturas distribuídas de alto

volume

• Avaliar o uso de componentes clusterizáveis e sem limitações de

armazenamento, escrita e leitura

Processos de deploy mais leves e seguros

❖ 12 Factor App

❖ Automação em Ops

❖ Continuous Integration/Deploy

❖ Orquestração

❖ API Gateways

❖ Service Discovery

Quando usar?

❖ Empresas/Startups que já tenham um modelo de negócio definido

❖ Tecnologias Agnósticas

❖ Diminuir impacto ao usuário

❖ Otimizar recursos

Dúvidas?

18/11 - devday.rs

04/10 - goo.gl/XnELdR

08 a 11/11

mundodocker.com.br

[email protected]

[email protected]

@mundodocker

facebook.com/mundodocker

http://www.mundodocker.com.br

Contatos