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

2.988 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
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.988
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.611
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

×