Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Introduction To Microservices

This presentation is conducted on 14th Sept in Limerick DotNet User Group.
SlideShare Url:

In this presentation, new architectural style - Microservices and it's emergence is discussed. We will also briefly touch base on what are not microservices, Conway's law and organization design, Principles of microservices and service discovery mechanism and why it is necessary for microservices implementation.

About Speaker:

Lalit is a senior developer, software architect and consultant with more than 12 yrsof .NET experience. He loves to work with C# .NET and Azure platform services like App Services, Virtual Machines, Cortana, and Container Services. He is also the author of 'Building Microservices with .NET Core' ( book.

To know more and connect with Lalit, you can visit his LinkedIn profile below.

This presentation will be useful for software architects/Managers, senior developers.

Do share your feedback in comments.

  • Inicia sesión para ver los comentarios

Introduction To Microservices

  1. 1. Lalit Kale @atechiethought Introduction To Microservices Limerick DotNet Azure User Group (LDNA)
  2. 2. About Me • 12 years of .NET • Roles: Software Developer  Sr. Developer  Tech Lead Architect • Limerick DotNet Azure Meetup Organizer Limerick DotNet Azure User Group (LDNA)
  3. 3. Limerick DotNet Azure User Group (LDNA) Sponsors – Thank You!
  4. 4. Why Microservices?
  5. 5. Why Microservices? • As a business transformational instrument in • Organizational Restructuring • Supporting hyper-scale growth • Scaling business capabilities • Provides Business Agility and faster pace to delivery • Unlocks experimentation and learning capabilities on organizational level which is not at all possible with Monolithic architectures
  6. 6. What are Microservices?
  7. 7. Monolith and Microservices Monolith Microservices
  8. 8. Martin Fowler on Microservices • The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often HTTP resource API. • These services are built around business capabilities and independently deployable by fully automated deployment machinery. • There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
  9. 9. Every microservice is different, yet they share some common characteristics. Microservices
  10. 10. Principles of Microservices Deployment Technology Versions Languages Infrastructure Operations Developme nt Testing Security Fail Predictably No SPoF Automated Recovery Based on Business Capability Single Responsibility Hide ‘Implementation’ Independence Independence Independence IsolationIndependence Automation Fail-Safe
  11. 11. What is NOT Microservices?
  12. 12. What is NOT Microservices? Refactor monolithic application into smaller services??
  13. 13. Monolith If you force monolith to get Microservices any which way, all you can get is Microlith Microservice? Microlith Monolith What is NOT Microservices?
  14. 14. What is NOT Microservice?
  15. 15. Microservices Pre-requisites
  16. 16. Conway’s Law "Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization's communication structure.“ -Melvin Conway
  17. 17. Conway’s Law
  18. 18. Conway’s Law Org Structure Architectural Capabilities
  19. 19. Reversing the Conway’s Law • Two Pizza Teams focused on Business Capability • You Build it, You Run it! • Microservices
  20. 20. Designing Microservices
  21. 21. Designing Microservices • ‘Micro’ is misleading most of implementations • It is NOT about how many lines of code in your microservice have • Should be Manageable by a small, self-sufficient team • Evolutionary design
  22. 22. Designing Microservices • Service = Business Capability • Single Responsibility Principle(SRP) • Find the Seams around Service Boundary. • DDD – Follow Bounded Context Pattern • Follow Consumer Driven Contracts
  23. 23. Designing Microservices - Tips • Ensure independent development and deployment of the service • Focus more on the scope of the microservice, but not about making the service smaller • SOA = Coarse Grain Services while microservice should have a very few operations/functionalities and simple message format. • It is often a good practice to start with relatively broad service boundaries to begin with, refactoring to smaller ones (based on business requirements) as time goes on.
  24. 24. Microservices Interactions
  25. 25. Microservices Interactions • Orchestration vs. Choreography
  26. 26. Microservices Interactions • Understanding Message Queue, Message Bus • FIFO • Same system different processes • Separate queues for separate • dependent Process • No sequential preference • Pub-Sub Mechanism • Single Message bus for connecting different applications
  27. 27. Microservices Interactions • API Gateway • Event Sourcing • Eventual Consistency • Compensating Transaction
  28. 28. Microservices Deployment
  29. 29. Microservices Deployment • Understanding Isolation • Importance of Containers Breakthrough • Infrastructure as code
  30. 30. Operations • Pet Vs. Cattle Mindset • Logging & Monitoring • What to measure? • Co-relation Id • Tools: , Splunk, Fluentd, Sensu, Prometheus, Azure Log Analytics, Diagnostics Log, Auditing
  31. 31. Microservices Scaling
  32. 32. Infrastructure Scaling VM Scale Sets Azure Container Service Kubernetes Docker Swarm DC/OS Pivotal Cloud Foundry App Service Azure Functions Docker Containers Web/api/mobile apps Service Fabric Orchestrator Custom Programming Model Host-Guest Executable Elastic & Declarative Open source High-Density Open source PaaS Web/Mobile/ Serverless Stateful & Stateless
  33. 33. AFK Scale Cube
  34. 34. Circuit Breaker Pattern
  35. 35. Scaling Service Design - Service Discovery
  36. 36. Client Side Service Discovery • Azure Load Balancer • Application Gateway • Netflix Eureka
  37. 37. Server-side Service Discovery • Consul • Etcd • Zookeeper
  38. 38. Demo Service Discovery using Consul
  39. 39. Questions and Answers
  40. 40. . This presentation is shared under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. More information for this license is available at All trademarks are the property of their respective owners. Lalit Kale or Limerick DotNet-Azure User Group or it’s members makes no warranties, express, implied or statutory, as to the information in this presentation. Limerick DotNet-Azure User Group Twitter: limerickdotnet