Designing for Cloud
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Designing for Cloud






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • Delivering hosted services over the InternetIt is sold on demand, by the minute or the hourConsumable as much as neededService is fully managed by the provider
  • Value chain of each layer moving to SaaSIaaS provide middleware vendors and traditional applications or for developers who uses SaaS maturity level 0PaaS prodivde services for SaaS product buildersSaaStargetted for the end users, applicatoin integrator
  • what are their strengths
  • Cloud ServicesHow much specializedSupport for Multi-tenancy (IaaS / PaaS)ALM options (development to hosting)Languages and APIs providedSubscription basedElasticity and ScalabilitySupport and SLAs
  • Your application and storage may be scattered within one data center Carefully select the regions for your distributed components
  • Not bigger hardware, scale in and out using scale units that are easily duplicated
  • Work producers and consumers are decoupledWork produce and they continue on workThroughput is controlled by number of web and worker role instancesService bus queues with or without topics, publisher and subscriber
  • Transient errors and throttling are normal in distributed systemsInstead of simply failing have retry mechanisms to manage transient conditionsCheck out Transient application block
  • Durability of roles not quaranteedDon’t use file systemsDon’t use in memoryUse external storage to keep sessions and states, so that recovered roles can pick them anywhere
  • Network calls make overhead for packet framing, serialization, processing.Batch in chunks and communicatePossibility of loosing data and increased latency
  • Throughput and latency are normally bound by how quickly data and context can be retrieved, shared, and updatedDistributed cache in azure, this also visible to all scaled nodes
  • Horizontal partitioningDuplicate tables in across diferent databases according to a key
  • Platform is provides time to market re-usable technical components for product business modulesHave PaaS specific dependencies and configure them at deployment timeAt the same time make sure to use native services for greater performance and reliabilityResilliant against PaaS API changes, If there’s business sense you should be able to move in out from cloud to onpremise by using component configurations only.Sometimes you may choose another PaaS provider as you might have some issues with current provider
  • Instrument the application to monitor potential bottlenecksMonitoring inside application allow us to know when to scale out Monitoring from outside allow us to check whether service performance within acceptable range

Designing for Cloud Presentation Transcript

  • 1. {Designing for CloudWindows Azure
  • 2. What is Cloud Computing?
  • 3. Broad CategoriesApplicationDevelopment /DeploymentEnvironmentCompute Resources /Managed Resources
  • 4. Few Providers
  • 5. Who’s the best Cloud provider?Azure Amazon AWSVs
  • 6. IaaS uses VirtualizationData Center 1ResourcePool 1Network scaleunitCompute scaleunitStoragescaleunitResourcePool nNetwork scaleunitCompute scaleunitStoragescaleunitData Center nResourcePool 1Network scaleunitCompute scaleunitStoragescaleunitResourcePool nNetwork scaleunitCompute scaleunitStoragescaleunitPaaS
  • 7. Designing a product for a SaaSProviderTargeting Windows Azure
  • 8. Current Product Vs Company GoalsBusiness• Unable to reach small and large customers• Inflexible product subscription vs Modulersubscription• Time-to-marketTechnical• Many product code bases• Tedious deployments• Scalability• Extensibility and maintainability
  • 9. Goal for new productdevelopmentMake use of PaaS as mechanism to deliver product toend-usersTest the high level structure of new product on Cloudplatform before invest on the full-fledged systemdevelopment
  • 10. Identifying the Technical Product
  • 11. Architectural Release• Early Performance testing• Early Reliability testing – e.g transient conditions• Early Scalability testing• Adapt Best Cloud practices• Once the component structure is ready we caniteratively evolve the solution
  • 12. Design Techniques
  • 13. Scale UnitsWeb Role Worker RoleSupport Services
  • 14. Decoupled IntegrationsWeb Roles Worker Roles
  • 15. Transient ConditionsWorker Db
  • 16. State ManagementWeb RoleWorkerWebStore
  • 17. Message frequency and sizeWorker WorkerWorker Worker
  • 18. CachingWeb RoleWorker RoleCacheDb
  • 19. Database ShardingRoot201>101-2000-100Partitions
  • 20. PortabilityTechnical Product PlatformModule 1 Module NDeploymentAbstractionComponentconfigurationsPaaS
  • 21. Monitoring
  • 22. Azure Service BUSImport WebRoleSign-in andSign-up WebRoleSSO &User Profiles(NoSql)Web ClientDistributed CacheQueuesImport DataTransformWorkerImportBlob Store(Text)ImportTransformWorkflowTransformed/Open Data(Table - NoSql)Reconcile WebRoleAutoMatchingWorkerBusinessReportingStore (Sql)Reporting WebRoleUsageStore (Sql)Usage DataCollectionWorkerLevel 0 SolutionComponent View
  • 23. Why a Service Bus?• Enable us to build loosely coupled integrated systemthat is more resilient to network failure• Easily scale out based on demand and support loadbalancing• Eliminates direct dependencies between differentcomponents.
  • 24. ScalabilityWeb RoleInstanceWeb RoleInstanceWeb RoleInstanceWeb RoleInstanceService BusQueueRequestMessageMatchingServiceInstanceMatchingServiceInstanceMatchingServiceInstance
  • 25. Azure Service BUSWeb ClientQueuesTransformed/Open Data(Table - NoSql)Reconcile WebRole Instance 1AutoMatchingWorkerBusinessReportingStore (Sql)Runtime ViewReconcile WebRole Instance2Reconcile WebRole InstanceNAutoMatchingWorkerAutoMatchingWorker NSubscription SubscriptionSubscription
  • 26. Implementation View• Technical product components• Business product components• Cloud framework• Runtime platform dependency by configuration
  • 27. Migrating Existing apps• Check for file system dependencies• Compatibility of Database (ANSI / Sql 2008)• Resource Throttling• Refactor to take advantage of shared storages
  • 28. Thank you!