building scalable cloud-native applications (sam vanhoutte at codit azure paas event)

24
Building scalable, cloud-native solutions. Learnings from the field. Sam Vanhoutte, CTO @samvanhoutte

Upload: codit

Post on 07-Jan-2017

55 views

Category:

Technology


3 download

TRANSCRIPT

2014_Codit-company-presentation_LIGHT

Building scalable, cloud-native solutions.Learnings from the field.Sam Vanhoutte, CTO@samvanhoutte

1

Hello world23rd year Azure MVP+ 100 Active customers2000 Belgium2004 France2008 Netherlands2013 Portugal2016 Switzerland2016 U.K.

Close collaboration with Microsoft

+120 employees

Azure & IoT Advisor8th year Microsoft P-TSPAzure CAT support

IntegrationAzureIoTAPI [email protected]+32 474 849 [email protected]/in/samvanhoutte

2

AgendaContext & positioningConsumption predictionMake it scaleMulti-tenancyTracing & loggingGeneral cloud aspects

Multi tenancyTracing & loggingAPI management from the beginningScalability and partitioningSecurity concernsPricingStateful vs statelessServerlessScalability (small vs large)Geo-deployments (traffic manager / cdn)Concurrency & locking when scalingThrottling

3

Why is integration more important now than ever?

Digital transformationApp is king

Data is everywhereEverything is connected

Architecture is key, integration is the backbone

Businesses are seen as being innovativeIT is seen as catching up to innovation

3 components: proliferation of apps, data as management nightmare, smart devices that need to interact

4

Typical cloud solutions

Which of the following types of applications are you currently developing using a cloud environment or have you delivered to a cloud environment in the past 12 months?Application integrationInternal web business applicationsMobile sites/applicationsHigh-performance computingApplication testing and QACorporate intraneteCommerce siteSocial computing/collaborationA new business serviceMarketing siteBatch jobs

39% 39% 37% 35% 33% 32% 32% 30% 27% 26%25%Source: Improve Quality and Speed with Application Testing in the Cloud, Forrester Research, Inc., January 28, 2016.

Forrester report that surveyed 675 cloud developers

39% delivering an application integration solution

Higher than mobile, e-commerce S4 Solution Specialist Sales Summit 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.10/25/2016 6:38 AM5

The interface is where the profit is

the worlds most popular media company creates no contentthe most valuable retailer carries no stockthe worlds largest accommodation provider owns no propertythe world largest taxi company owns no car

control the interface between the consumer and the provider take a cut from the millions of consumers6

The story of the WiFi-Kettle7

A British guys wanted his morning tea.

7

The story of the WiFi-Kettle8

Luckily he was a geek and decided to live tweet his 11hr struggle.

The story of the WiFi-Kettle9

The story of the WiFi-Kettle10

It all starts with an idea11

Learnings from the field12

Consumption prediction in Azure PaaS

What will it cost ?Business modelCost prediction needed

Architecture needs to be designedLoad predictability is needed

Prediction (start) vs Reality (go-live)

Businesses are seen as being innovativeIT is seen as catching up to innovation

3 components: proliferation of apps, data as management nightmare, smart devices that need to interact

13

Considerations that impact scalabilitydecouple, partition & throttle

Throttling

External communications

Partitioning

Microservices

Resource size

Concurrency & locking

Communication patterns

Caching

X API management from the beginning (external buffer)X Scalability and partitioningX Microservices - Stateful vs statelessServerless (attention points)X Scalability (small vs large)X Concurrency & locking when scalingX Throttling14

Chosing the right communication pattern15Information lookupMost Web APIsAvoid data duplicationUI integrationRPC

AsyncDurable messagingScalable & multi-castLoad levelingTemporary unavailable

BulkScheduled data exchangeBulk or batch dataTraditional appsInitial import & data load

Handle external communications16Requests outside of appSecurity, monitoringDocumentation, portalDNS handlingAPI Management

Queuing Standards basedDurable messagingLoad levelingPeek/lock/retry

Version API versioningMessage versioningMonitor usage

Testing is crucialMostly scaling out is easier than scaling upAutoscaling is welcome, but complexResource sizes matter17Many small vsFew large

The rise of serverless

Autoscale & test

Think about downstream (LOB?) systemsAggregate and forward, when possibleRetries are important, but think about your strategyThrottling will help your connected systems18Async messaging

Plan retries

Timers & Reminders

Synchronization of cache & data storeThink distributed Cache, but not too much19Distributed cacheWrite throughRead behind

Stateful actors or services

Use hashing algorithm, based on functional valueStateless vs stateful

Data & service partioning20Colocated dataParallellism over partitions

Partitioning scheme

Multi tenancy

Design for multi-tenancy from the beginningHow do tenants impact your costs? Isolate data per tenantavoid app filtering on tenantsAuto deploy for tenant creationIsolate data, but allow for anonymized cross tenant analytics

Businesses are seen as being innovativeIT is seen as catching up to innovation

3 components: proliferation of apps, data as management nightmare, smart devices that need to interact

21

Track & trace22Tracing frameworksOpt for centralized monitoringExtract functional metadata Correlation

Management

Application insights

CIC demoRefer to ALM22

DevOps23More self-service

Security & RBAC

Staging & ALM

External connections

Align proceduresGood communication between Dev & OpsAutomation of ALM

RBAC in Azure portal23

Fast iterations in the cloud24New servicesNew featuresBackwards compatibilityDeprecation of servicesClosely follow up on roadmap & announcementsDesign for changeUse abstraction to cope with changesForesee versioning or compatibility for external API

API management 24