Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microservices: Breaking Apart the Monolith

2,700 views

Published on

Slides for a live Iron.io webinar on Microservices. Abstract:

With the continued proliferation of the cloud and connected devices, microservices has emerged as a dominant architectural pattern for building modern applications by separating components around specific business capabilities.

This webinar goes beyond introducing the theory of microservices to provide a comprehensive guide for building your own large-scale applications. Whether you are looking to move away from a monolithic app or are starting a new project, you’ll walk away with enough knowledge to take full advantage of all that microservices has to offer.

Watch the webinar to learn:

- The rise of microservices in the modern cloud era
- How to break apart components into discrete services
- Best practices for communication & workload processing
- The crucial role of the API Gateway
- Implications on DevOps and the deployment cycle
- How to bring it all together with monitoring & analytics

Published in: Technology

Microservices: Breaking Apart the Monolith

  1. 1. MICROSERVICES BREAKING APART THE MONOLITH www.iron.io
  2. 2. About the Presenter Ivan Dwyer | Business Development ● Joined Iron.io in early 2014 to collaborate with cloud ecosystem ● Founder of a Web 1.0 Startup in 1999 ● Helped build the first mobile app program at PalmSource ● Spent 10 years in international business with ACCESS @fortyfivan
  3. 3. Agenda ⬢ The Rise of Microservices in the Modern Cloud ⬢ How to Decouple Processes Into Discrete Microservices ⬢ Best Way to Keep Microservices and Connected Devices in Touch ⬢ Best Practices Around Event-Driven Asynchronous Processing ⬢ The Role of the API Gateway ⬢ How to Deal With State ⬢ DevOps & The Continuous Deployment Cycle ⬢ Bringing it All Together With Monitoring & Analytics
  4. 4. Evolution
  5. 5. How We Got Here Expensive to Scale Difficult to Scale Unnecessary Overhead Complex Configurations Granular Compute Effective Separation Monolith Multi-Tier / SOA Microservices
  6. 6. The Modern Cloud {} Cloud-Native Protocols RESTful APIs that communicate over HTTP with JSON serialization Agile Operations Consistent environments for development and deployment Elastic Workloads Granular workload-aware computing for effective scalability
  7. 7. Microservices represents the convergence of the modern cloud and modern application development.
  8. 8. Microservices
  9. 9. Common Characteristics Single Responsibility Independent Loosely Coupled Stateless Asynchronous Interchangeable
  10. 10. Organizational Impact Technology Smaller services centered around specific capabilities Independently developed and deployed functional components Lightweight cloud-native communication and processing Multiple language and data sources fit for the service Business Focused and flexible workgroups Shorter release cycles Cost-effective scalable systems No vendor or framework lock-in
  11. 11. Considerations ➔ Building and maintaining highly available distributed systems is complex ➔ More moving parts means more components to keep track of and configure properly ➔ Loosely coupled services means steps must be taken to keep data consistent ➔ Distributed asynchronous processes create network latency and more API traffic ➔ Testing and monitoring individual services is challenging
  12. 12. Microservices are meant to make development and deployment better, but not necessarily easier.
  13. 13. Decoupling
  14. 14. Where to Start From Scratch Refactor New Features
  15. 15. Identify Candidate Components ➔ Outside of user response loop ➔ 3rd party service API calls ➔ Long running processes ➔ Transaction Processing ➔ Scale-out / burst processing ➔ Scheduled jobs Business Capability
  16. 16. Loosely coupled microservices centered around specific business capabilities lead to more flexible and agile workflows across your entire organization.
  17. 17. Communication
  18. 18. More Moving Parts
  19. 19. Queue all the Things ➔ Acknowledge data delivery ➔ Retry down endpoints ➔ Act as delivery buffer ➔ Keep data ordered properly POST -> GET -> DELETE
  20. 20. Problems with Dumb Pipes Down endpoints Overloaded endpoints
  21. 21. Message Queueing for the Modern Cloud Queue as a Service Cloud-Native Protocols Reliable Data Persistence Advanced Feature Set Detailed Monitoring Multiple Language Support
  22. 22. Leveraging a message queue ensures reliable data transmission across services and connected devices.
  23. 23. Compute
  24. 24. Event-Driven Asynchronous Patterns Webhooks Respond to events from external services to initiate a process Scheduled Jobs Cron-like processes that occur on a regular schedule. Streams Real-time activities through long running agent/daemon processes Fan Out Respond to events and push to multiple process/data endpoints
  25. 25. Compute Environment Load Balancer Traditional Hosting Model (Apps) Ephemeral Micro Computing (Tasks)
  26. 26. Distribute the Load A master service can orchestrate slave services to run concurrently to handle spikes in traffic or bursts Single responsibility microservices can scale more effectively and cut down total processing time Ex: Send 4000 emails 1-1000 1001-2000 2001-3000 3001-4000
  27. 27. Highly Scalable Asynchronous Task Processing Containerized Environment Event-Driven Flexible Scheduling Reliable and Secure Detailed Monitoring Multiple Language Support
  28. 28. This new pattern of event-driven asynchronous processing with the container as the unit of scale leads to more efficient and cost-effective systems.
  29. 29. API Gateway
  30. 30. Request Handling / Routing API Gateway Auth User Request REST
  31. 31. Considerations Keep it Light Focus on handling requests and routing to appropriate microservices Make it Highly Available Must be deployed in a fault-tolerant distributed manner Load Balanced Must be able to handle incoming traffic spikes elastically
  32. 32. The API Gateway provides the foundation for your entire architecture.
  33. 33. State
  34. 34. Connections, Payloads & Caching Deliver payload Secure DB connection In-process temp storage
  35. 35. Polyglot Persistence Key/Value Rapid access for reads/writes SQL Transactional data NoSQL High volume reads FIle Distributed file system
  36. 36. While preserving stateless microservices, choose the right data store and connection for the process.
  37. 37. Presentation
  38. 38. Client Frameworks
  39. 39. Considerations ➔ Route via the API gateway not directly from devices ➔ Fine-grained auth support may be needed in certain cases ➔ Balance inline processing vs out-of- process ➔ Pre-process for faster loading times ➔ Out-of-process for greater responsiveness ➔ Distribute processing but not necessarily core storage
  40. 40. Always remember that your users see your application as one unit regardless of architectural pattern.
  41. 41. Operations
  42. 42. Configuration Environments Dependencies Deployment Support for easier migration paths Consistent runtime from development to production Empowers independent teams and workflows Choose the right language for the specific microservice Limited scope of dependent services and libraries Scoped environment variables and runtimes Build, test, and deploy on a simpler scale Smaller services and teams means faster iterations Leverage a PaaS for automated deployment configuration
  43. 43. Continuous Delivery Code Test Deploy
  44. 44. Monitoring & Analytics
  45. 45. Responsibilities Runtime Monitoring Audit trails Logging Error Handling Alerting Performance Testing
  46. 46. Keeping it Together STDOUT Errors Runtime Performance
  47. 47. With microservices, monitoring and analytics must be done at both the individual level and as part of the whole application.
  48. 48. Conclusion
  49. 49. Full Microservices Stack API Infrastructure Compute Storage Networking Message Queue Scheduler Monitoring
  50. 50. How We Can Help Pair Programming Get a hands-on walkthrough of our platform Architecture Review Let us share some best practices and advice Start a Free Trial Start building with Iron.io in minutes
  51. 51. Iron.io 325 9th St San Francisco, CA 94103 1-888-939-4623 www.iron.io ivan@iron.io THANK YOU QUESTIONS?

×