O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Globalcode – Open4educationGlobalcode – Open4education
Trilha – Arquitetura .NET
Caliel Costa
Nerd, ouvinte de blues, pesq...
Globalcode – Open4education
Agenda
• Definições Básicas
• Necessidade
• Problema
• Solução
• Implementando
• Próximos pass...
Globalcode – Open4education
escalabilidade
através de
micro
serviços
Globalcode – Open4education
serviços
Substantivo, masculino singular
Com origem no termo latim servitĭum, a palavra serviç...
Globalcode – Open4education
micro
Substantivo, masculino singular
A palavra micro provém do idioma grego e significa “pequ...
Globalcode – Open4education
através de
Advérbio
Do Latim ad + transverse
Por entre
Pelo meio de
De um para outro lado de
Globalcode – Open4education
escalabilidade
É uma característica desejável em todo o sistema ou processo
Indica sua habilid...
Globalcode – Open4education
escalabilidade
40Kg
20Kg 20Kg
Escalabilidade Vertical
(Scale Up)
Escalabilidade Horizontal
(Sc...
Globalcode – Open4education
Superplayer é um serviço de recomendação musical focado em melhorar
todos os momentos da vida ...
Globalcode – Open4education
Web, Android, iOS, Windows Phone, ...
+ 8.500.000
USUÁRIOS ÚNICOS
ACUMULADOS
+ 1.400.000
USUÁRIOS ÚNICOS POR MÊS
+ 4.500.000
VISITAS POR MÊS
Globalcode – Open4education
Problema
• Estatísticas
• Métricas
• Previsão
Globalcode – Open4education
Quais as playlists mais ouvidas?
API
/play
Globalcode – Open4education
Problema
• Estatísticas
• Métricas
• Previsão
Globalcode – Open4education
Quais as playlists mais ouvidas em Porto Alegre e
São Paulo
API
/play
Globalcode – Open4education
Mas a Natureza é sábia....
Quando temos uma vírus…
o corpo não cria uma supercélula
Globalcode – Open4education
Globalcode – Open4education
Escalabilidade Horizontal para
resolver o problema
Globalcode – Open4education
Nuvem de serviços
Globalcode – Open4education
Aka Beet
Globalcode – Open4education
Quais as playlists mais ouvidas em Porto Alegre e
São Paulo
API
/play
Beet
Globalcode – Open4education
Beet
Dó Ré Mi
Fá Sol Lá Si
Globalcode – Open4education
Princípio da Responsabilidade Única
(The Single Responsability Principle)
"A class should have...
Globalcode – Open4education
Escalabilidade Horizontal
Dó
Ré
Mi
Fá
Sol Lá Si
Ré
Ré
Globalcode – Open4education
Alteração de Tecnologia
Dó
Ré
Sol Lá Si
Ré
Ré
Mi
Fá
Globalcode – Open4education
Arquitetura
Web Android iOS WP
APIs
SQL
Server
Mongo
DB Beet
Back office
Globalcode – Open4education
Plataformas
API WEB API
REST
Estalabilidade Horizontal
Sincrono
Beet
Agents
NancyFX
REST
Respo...
Globalcode – Open4education
NancyFX
Nancy is a lightweight, low-ceremony, framework for building HTTP
based services on .N...
Globalcode – Open4education
NancyFX
public class SampleModule : Nancy.NancyModule
{
public SampleModule()
{
Get["/"] = _ =...
Globalcode – Open4education
CODE TIME
Globalcode – Open4education
Time line
Back
office
SQL
Server
Playlists
Track
Artista
Album
Playlist
Mongo
DB
Playlist
Trac...
Globalcode – Open4education
Time line
Play
Mongo
DB
Playlist
Track
Album
Artist
Track
Album
Artist
Track
Album
Artist
API ...
Globalcode – Open4education
API
BeetSDK
Back Office
1
Back Office
2
Back Office
2
BeetSDK
Beet
HttResquest
Globalcode – Open4education
14 Agentes Diferentes
Playlist PushSpotPlay Track Suggestion
Globalcode – Open4education
Hardware
Load Balancer
Beet
Beet
Beet
Globalcode – Open4education
Closure
A separação em serviços externos facilitou a integração
entre os bancos de dados
Facil...
Globalcode – Open4education
Perguntas?
Globalcode – Open4education
jointheband@superplayer.fm
Próximos SlideShares
Carregando em…5
×

Dividindo para Conquistar: microserviços com o jeitinho .NET

3.153 visualizações

Publicada em

A utilização de microserviços cresceu muito em 2014. Eles ajudam a separar responsabilidades e manter o foco em grandes equipes. Nessa palestra será mostrado um exemplo prático de como utilizamos microserviços no Superplayer. Desde o projeto inicial, passando pelo seu desenvolvimento utilizando NancyFX, até a sua utilização e melhorias em produção. Quais vantagens e desvantagens na sua utilização e o futuro que vemos para este modelo.

Link: http://blog.calielcosta.com/2015/07/29/dividindo-para-conquistar-microservicos-com-o-jeitinho-net/

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Dividindo para Conquistar: microserviços com o jeitinho .NET

  1. 1. Globalcode – Open4educationGlobalcode – Open4education Trilha – Arquitetura .NET Caliel Costa Nerd, ouvinte de blues, pesquisador, esportista e fotógrafo amador, desenvolvedor e projetista de soluções em TI. Software Designer no Superplayer.
  2. 2. Globalcode – Open4education Agenda • Definições Básicas • Necessidade • Problema • Solução • Implementando • Próximos passos
  3. 3. Globalcode – Open4education escalabilidade através de micro serviços
  4. 4. Globalcode – Open4education serviços Substantivo, masculino singular Com origem no termo latim servitĭum, a palavra serviço define a ação de servir (estar sujeito a/ser prestável alguém por qualquer motivo, fazendo aquilo que essa pessoa quer ou pede). Substantivo utilizado para designar tarefa, trabalho ou obra em execução, a ser executado ou já realizado Ato ou efeito de servir
  5. 5. Globalcode – Open4education micro Substantivo, masculino singular A palavra micro provém do idioma grego e significa “pequeno” Significando também o conjunto de pequenos componentes para montar um todo Convém destacar que em alguns países latino-americanos é usado o vocábulo micro enquanto sinónimo de autocarro. Milésima parte do milímetro
  6. 6. Globalcode – Open4education através de Advérbio Do Latim ad + transverse Por entre Pelo meio de De um para outro lado de
  7. 7. Globalcode – Open4education escalabilidade É uma característica desejável em todo o sistema ou processo Indica sua habilidade de manipular uma porção crescente de trabalho de forma uniforme ou estar preparado para crescer
  8. 8. Globalcode – Open4education escalabilidade 40Kg 20Kg 20Kg Escalabilidade Vertical (Scale Up) Escalabilidade Horizontal (Scale Out)
  9. 9. Globalcode – Open4education Superplayer é um serviço de recomendação musical focado em melhorar todos os momentos da vida das pessoas através da trilha sonora perfeita. Startup brasileira Criado em 2012
  10. 10. Globalcode – Open4education Web, Android, iOS, Windows Phone, ...
  11. 11. + 8.500.000 USUÁRIOS ÚNICOS ACUMULADOS
  12. 12. + 1.400.000 USUÁRIOS ÚNICOS POR MÊS
  13. 13. + 4.500.000 VISITAS POR MÊS
  14. 14. Globalcode – Open4education Problema • Estatísticas • Métricas • Previsão
  15. 15. Globalcode – Open4education Quais as playlists mais ouvidas? API /play
  16. 16. Globalcode – Open4education Problema • Estatísticas • Métricas • Previsão
  17. 17. Globalcode – Open4education Quais as playlists mais ouvidas em Porto Alegre e São Paulo API /play
  18. 18. Globalcode – Open4education Mas a Natureza é sábia.... Quando temos uma vírus… o corpo não cria uma supercélula
  19. 19. Globalcode – Open4education
  20. 20. Globalcode – Open4education Escalabilidade Horizontal para resolver o problema
  21. 21. Globalcode – Open4education Nuvem de serviços
  22. 22. Globalcode – Open4education Aka Beet
  23. 23. Globalcode – Open4education Quais as playlists mais ouvidas em Porto Alegre e São Paulo API /play Beet
  24. 24. Globalcode – Open4education Beet Dó Ré Mi Fá Sol Lá Si
  25. 25. Globalcode – Open4education Princípio da Responsabilidade Única (The Single Responsability Principle) "A class should have one, and only one, reason to change." ("Uma classe deve ter um, e somente um, motivo para mudar.") Robert "Uncle Bob" Martin
  26. 26. Globalcode – Open4education Escalabilidade Horizontal Dó Ré Mi Fá Sol Lá Si Ré Ré
  27. 27. Globalcode – Open4education Alteração de Tecnologia Dó Ré Sol Lá Si Ré Ré Mi Fá
  28. 28. Globalcode – Open4education Arquitetura Web Android iOS WP APIs SQL Server Mongo DB Beet Back office
  29. 29. Globalcode – Open4education Plataformas API WEB API REST Estalabilidade Horizontal Sincrono Beet Agents NancyFX REST Responsabilidade Única Escabilidade Horizontal Assincronos
  30. 30. Globalcode – Open4education NancyFX Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono. The goal of the framework is to stay out of the way as much as possible and provide a super-duper-happy- path to all interactions. http://nancyfx.org/ Pode ser hospedado com IIS, Azure, Owin (Katana ou self-hosted), Nginx
  31. 31. Globalcode – Open4education NancyFX public class SampleModule : Nancy.NancyModule { public SampleModule() { Get["/"] = _ => "Hello World!"; } }
  32. 32. Globalcode – Open4education CODE TIME
  33. 33. Globalcode – Open4education Time line Back office SQL Server Playlists Track Artista Album Playlist Mongo DB Playlist Track Album Artist Track Album Artist Track Album Artist
  34. 34. Globalcode – Open4education Time line Play Mongo DB Playlist Track Album Artist Track Album Artist Track Album Artist API Web Play @Rock Playlist com tracks Suggestion
  35. 35. Globalcode – Open4education API BeetSDK Back Office 1 Back Office 2 Back Office 2 BeetSDK Beet HttResquest
  36. 36. Globalcode – Open4education 14 Agentes Diferentes Playlist PushSpotPlay Track Suggestion
  37. 37. Globalcode – Open4education Hardware Load Balancer Beet Beet Beet
  38. 38. Globalcode – Open4education Closure A separação em serviços externos facilitou a integração entre os bancos de dados Facilitou a transformação de dados em informação Estamos ajustado o processo de deploy e referência entre os serviços
  39. 39. Globalcode – Open4education Perguntas?
  40. 40. Globalcode – Open4education jointheband@superplayer.fm

×