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.

Building scalable cloud-native applications (Sam Vanhoutte at Codit Azure PaaS Event)

Why is integration more important now than ever? Learnings and pitfalls from the field.

  • Login to see the comments

  • Be the first to like this

Building scalable cloud-native applications (Sam Vanhoutte at Codit Azure PaaS Event)

  1. 1. Building scalable, cloud-native solutions. Learnings from the field. SamVanhoutte, CTO @samvanhoutte
  2. 2. Hello world 2 3rd year Azure MVP + 100Active customers 2000 Belgium 2004 France 2008 Netherlands 2013 Portugal 2016 Switzerland 2016 U.K. Close collaboration with Microsoft +120 employees Azure & IoT Advisor 8th year Microsoft P-TSP Azure CAT support Integration Azure IoT API mgmt +32 474 849 993 @SamVanhoutte
  3. 3. Agenda
  4. 4. Why is integration more important now than ever? Architecture is key, integration is the backbone
  5. 5. Typical cloud solutions
  6. 6. The interface is where the profit is the world’s most popular media company creates no content the most valuable retailer carries no stock the world’s largest accommodation provider owns no property the world largest taxi company owns no car
  7. 7. The story of the WiFi-Kettle 7 A British guys wanted his morning tea.
  8. 8. The story of the WiFi-Kettle 8 Luckily he was a geek and decided to live tweet his 11hr struggle.
  9. 9. The story of the WiFi-Kettle 9
  10. 10. The story of the WiFi-Kettle 10
  11. 11. It all starts with an idea 11
  12. 12. Learnings from the field 12
  13. 13. Consumption prediction in Azure PaaS Prediction (start) vs Reality (go-live)
  14. 14. Considerations that impact scalability decouple, partition & throttle Throttling External communications Partitioning MicroservicesResource size Concurrency & locking Communication patterns Caching
  15. 15. Chosing the right communication pattern 15 Information lookup MostWeb API’s Avoid data duplication UI integration RPC Async Durable messaging Scalable & multi-cast Load leveling Temporary unavailable Bulk Scheduled data exchange Bulk or batch data Traditional apps Initial import & data load
  16. 16. Handle external communications 16 Requests outside of app Security, monitoring Documentation, portal DNS handling API Management Queuing Standards based Durable messaging Load leveling Peek/lock/retry Version API versioning Message versioning Monitor usage
  17. 17. ➔ Testing is crucial ➔ Mostly scaling out is easier than scaling up ➔ Autoscaling is welcome, but complex Resource sizes matter 17 Many small vs Few large The rise of serverless Autoscale & test
  18. 18. ➔ Think about downstream (LOB?) systems ➔ Aggregate and forward, when possible ➔ Retries are important, but think about your strategy Throttling will help your connected systems 18 Async messaging Plan retries Timers & Reminders
  19. 19. ➔ Synchronization of cache & data store ➔ Think distributed Cache, but not too much 19 Distributed cache Write through Read behind Stateful actors or services
  20. 20. ➔ Use hashing algorithm, based on functional value ➔ Stateless vs stateful Data & service partioning 20 Colocated data Parallellism over partitions Partitioning scheme
  21. 21. Multi tenancy Isolate data, but allow for anonymized cross tenant analytics
  22. 22. Track & trace 22 Tracing frameworks ➔ Opt for centralized monitoring ➔ Extract ‘functional’ metadata Correlation Management Application insights
  23. 23. DevOps 23 More self-service Security & RBAC Staging & ALM External connections ➔ Align procedures ➔ Good communication between Dev & Ops ➔ Automation of ALM
  24. 24. Fast iterations in the cloud 24 New services New features Backwards compatibility Deprecation of services ➔ Closely follow up on roadmap & announcements ➔ Design for change ➔ Use abstraction to cope with changes ➔ Foresee versioning or compatibility for externalAPI