SlideShare a Scribd company logo
1 of 50
Scalability in
Cloud Applications



                              Radu Vunvulea
                       vunvulear@gmail.com
           http://vunvulearadu.blogspot.com
Who am I?
        {
            “name” : “Radu Vunvulea,
            “company” : “iQuest”,
            “userType” : “enthusiastic”
            “technologies” : [ “.NET”, “JS”, “Azure”, “Web”,
                “Mobile”, “SL” ],
            “blog” : “vunvulearadu.blogspot.com”,
            “email” : ”vunvulear@gmail.com”,
            “socialMedia” :
                {
                         “twitter” : “@RaduVunvulea”,
                         “fb” : “radu.vunvulea”
                }
        }
Client requests
Is Cloud so different?
Cloud Services
How can we offer value in our solutions?

• Cloud in general offers a lot of services that can make
  our life easier

• Cloud can offer more than machines scalability

• Cloud can help us to create application that are scalable
  in more than one point
How can we offer value in our solutions?

• Cloud in general offers a lot of services that can make
  our life easier

• Cloud can offer more than machines scalability

• Cloud can help us to create application that are scalable
  in more than one point

• We cannot offer a Cloud solution without knowing the
  environment
Table Storage Service
Table Storage Service
• Stores any kind of serializable data
• You don’t need any kind of complex data structure or
  SQL knowledge.
• Is not a relational database
• In the same table you can have more than one entity
  type
• Each entity can have maximum 252 properties + 3
  default
• The maximum size of total tables cannot accede 100.000
  GB (100TB)
• The maximum size of an entity can be 1MB
Windows Azure Blob Storage
Windows Azure Blob Storage
• Block blobs
   • Support multi-upload of blocks in parallel
   • When updating a block, the old version is not
     override until you commit it
   • Can be used for large files

• Page blobs
   • Collection of pages of 512b
   • Can be accessed by an offset
   • Can be used when the content is changing very often

• Maximum size 100TB
SQL Database
• Relational database based on SQL Server
• It is almost like SQL Server from on-premises
• BUT:
   • We don’t have support for distributed transactions
   • Each table have to contain at least one cluster index
   • We cannot attach a database
   • We don’t have support for jobs

• Maximum size is 150 GB
• Double check the total cost of a having a SQL Database –
  there are a lot of times when we can use Table Storage
  Service
Queue Storage Service
Queue Storage Service
• It is very similar with a named queue from Windows
• You can update the message from a queue
• Support batches (maximum 32 messages on each call)
• Operations: peek, insert, delete, get
• Remark: getting a message don’t remove the message
  from queue
• With some work you can even iterate in a queue
• 500 - is the maximum number of messages that can be
  processed per second
• Message is persisted until someone will consume it
Service Bus
Service Bus Queue
•   Similar to Queue Storage Service
•   The order of the message is guaranteed
•   Death Letter support
•   Automatically counter for “number of retrives”
•   Duplicate messaging detection
•   Support for transaction, sessions
•   Are not as fast as Windows Azure Queues
•   The size of a Service Bus Queue is limited to 5 GB
•   Support for ACS (Access Control Service)
•   Any kind of serializable item can be added to the queue
• We can even add stream to a message queue (array of bytes )
Service Bus Topic
• Multi-distribution mechanism for messages
• Using Service Bus Queues we have 1 to 1 communication
• Using Service Bus Topic we have 1 to n communication
• Each “listener” will receive each message from topic
• Sessions, transaction, death letters are supported
• Two ways for “listeners”
   • Receive and delete
   • Peek and lock
• The message type is the same with Service Bus Queue –
   • BrokeredMessage
• Each message can contain 0 to n properties
• We cannot update or add again the same message
Service Bus Relay
• Represent a communication bridge between cloud and on-
  premises world
• It is used with success when working with hybrid
  application
• Expose WCF services from on-premises servers using
  cloud
• Only one entry point
• Requests are persisted even if the on-premises server is
  down
• We can control who access our services
• The only thing that need to be changed is on the
  configuration file of the server and client
• We can only have request of type Fire And Forget
Windows Azure Caching
Windows Azure Caching
• Nice feature: you pay only the machine computation
• All the content is in the machine memory
• 2 types of caching:
   • Dedicated roles
   • Co-located roles (shared memory between application and
       cache)
• Cache cluster support (only in combination with a storage account)
• Maximum size of a cache is 14 GB (limited by the memory size of
  VM role)
• Each item can have an expiration date
• Built in support for storing web session in the cache
Caching Service
• Offer build in caching mechanism
• Can be accessed by anybody from anywhere
  based on the namespace
• Maximum size is 4 GB
• Is more expensive than Windows Azure Caching
  but can be accessed from any location
• This caching mechanism is offered as a service
• It is similar with Caching Server from on-premise
  servers
Azure Access Control Service (ACS)
Azure Access Control Service (ACS)
• Provide us a mechanism to authenticate users from
  different identify providers: FB, Google, Y!, Live … even
  custom identify providers and Active Directory (2.0+)
• Is based on a claim based authentication
• You never work with user credentials
• Depending on the provider, you can access different
  information about user
• You don’t need anymore to implement a user
  management mechanism
   • BUT, if you need, you will need to define roles and
      store user id’s
Shared Access Signature
Shared Access Signature
• Provide a method to offer access to different resources
  from storage account
• You can provide access to resources without requiring a
  user to authenticate
• It is a simple way to control and manage who have
  access to your storage
• The base of this mechanism is a custom token
• You can add, remove and change a SAS at runtime
• Each policy is defined by a unique id
• The validity of a SAS can be limited (time base)
Media Services
Media Services
• The based action that can be done is: content streaming
• Ingest – first step when content is uploaded (upload and encryption)
• Encoding – Process the media content (change the encoding,
  converting and transform) – we can use only supported formats
• Protect – encryption of live streaming using a built-in mechanism
• Streaming – send content to consumers (even Apple HTTP Live
  Streaming is supported)
• Support for CDN (Azure and 3th party CDN’s are supported).
• Supported devices: Android, iOS, ,Mac, Windows Phone, Windows 8,
  X-box, embedded devices, dedicated devices
Computing Services
Windows Azure Websites
• Can be used to develop web-application
• Support different technologies (PHP, node.js, .NET)
• MySQL support 
• Low cost support – shared mode
• Reserved mode – dedicated instance
• Git support and a very fast rollback mechanism
• Web.config – doesn’t need to contain Azure
  configuration
• Each site runs in an isolated environment
Web Roles
• Used to host application composed from multiple tiers
• Each web-role is scalable independently
• In comparison with Azure Websites, a lot of custom
  configuration can be done
• Network isolation
• Support for startup tasks
   • For example we can run a bat that make a custom
      configuration to our firewall or install specific
      applications
• Any kind of framework can be used in this machines
Worker role
• Perfect place to run long running task
• Can be used with success with web-roles for tasks that run in
  background
• Cannot be used to host a web application
• In the moment when the “WHEN(TRUE)” ends the worker role
  process stop
• Can be seen as a process that can execute a specific type for an
  infinite period of time
Virtual Machine
• Can be used to install any kind of operating system from Windows
  to Linux
• Built-in support and images available for different versions of Linux
   and Windows.
• Custom machines can be created with our own VHD
• Built-in support for MongoDB, MySQL, Cassandra
• Migration from on-premises to cloud and cloud to on-premises can
  be done using VHD
Windows Azure Mobile Services
Messaging mechanism
Messaging mechanism
• Windows Azure Queues
• Windows Azure Service Bus Queues
• Windows Azure Service Bus Topics
More messages – What should we do?




• Cloud has is own limits
• Cloud services are like other services
More messages – What should we do?




• Split the messages to more than one messaging service
   • Based on the type
   • Based on the source
   • Based on an attribute
Caching solutions
Caching solutions
• Windows Azure AppFabric Cache
  • Cache is seen as a service
  • For consumer, the location of the cache is not
     relevant
• Windows Azure Cache
  • The cache is unique per instance
  • Cannot be synchronized between machines in real
     time
  • Local cache
  • In-memory cache
Storing binary data
Storing binary data
Storing binary data
Storing binary data
• Images, ISO and binary content
   • Can be stored with success on blobs
   • CDNs
   • Direct access to data (security SAS)
• Videos
   • Blobs
   • Windows Azure Media Services
Storing information
• For cases where we need to write logs or audit data we
  can use with success:
   • Windows Azure Table + SAS

• Storing any kind of data in a non relational database
   • Windows Azure Table + SAS

• Storing relational data
   • SQL Azure
WCF Services
• Can we expose WCF Services from a private network (on-
  premises) into a safe way?

• Can we guaranty that no request will be lost?

• Can we expose services in a manner to be 99% up even if
  our servers are up only 90% of time?
WCF Services
• Can we expose WCF Services from a private network (on-
  premises) into a safe way?

• Can we guaranty that no request will be lost?

• Can we expose services in a manner to be 99% up even if
  our servers are up only 90% of time?

• Windows Azure Service Bus Relay
Long running task
• We have a web application that has long running task
• Each task take more than 5 seconds to execute

• How we can scale?
Long running task
• We have a web application that has long running task
• Each task take more than 5 seconds to execute

• How we can scale?
   • Long running request can run on a worker role, that can scale
     independent
   • The result can be send to web-role using queues
   • Client can be notified using Web Sockets or SignalR
THE END




                        Radu Vunvulea
                 vunvulear@gmail.com
     http://vunvulearadu.blogspot.com

More Related Content

What's hot

Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overviewgavin_lee
 
Build public private cloud using openstack
Build public private cloud using openstackBuild public private cloud using openstack
Build public private cloud using openstackFramgia Vietnam
 
XenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud EnvironmentsXenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud EnvironmentsTim Mackey
 
Azure Storage Performance
Azure Storage PerformanceAzure Storage Performance
Azure Storage PerformanceAnton Boyko
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalleybuildacloud
 
Azure 103 Certification Course
Azure 103 Certification CourseAzure 103 Certification Course
Azure 103 Certification CoursewiTTyMinds1
 
CloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanCloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanKimihiko Kitase
 
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should KnowOracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should KnowFrank Munz
 
User Transparent Service Migration to the Cloud
User Transparent Service Migration to the CloudUser Transparent Service Migration to the Cloud
User Transparent Service Migration to the CloudTim Mackey
 
Windows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldWindows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldMichael Collier
 
Selecting the correct hypervisor for CloudStack 4.5
Selecting the correct hypervisor for CloudStack 4.5Selecting the correct hypervisor for CloudStack 4.5
Selecting the correct hypervisor for CloudStack 4.5Tim Mackey
 
Running an openstack instance
Running an openstack instanceRunning an openstack instance
Running an openstack instancezokahn
 
Using Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStackUsing Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStackTim Mackey
 
Windows Azure Pack: Containerized SQL Server Resource provider
Windows Azure Pack: Containerized SQL Server Resource providerWindows Azure Pack: Containerized SQL Server Resource provider
Windows Azure Pack: Containerized SQL Server Resource providerValio Bonev
 
The Next Big Thing: Serverless
The Next Big Thing: ServerlessThe Next Big Thing: Serverless
The Next Big Thing: ServerlessDoug Vanderweide
 
Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overviewhowie YU
 
Windows Azure Blob Storage
Windows Azure Blob StorageWindows Azure Blob Storage
Windows Azure Blob Storageylew15
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStackJoe Brockmeier
 

What's hot (20)

Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overview
 
Build public private cloud using openstack
Build public private cloud using openstackBuild public private cloud using openstack
Build public private cloud using openstack
 
End-to-end W3C APIs
End-to-end W3C APIsEnd-to-end W3C APIs
End-to-end W3C APIs
 
XenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud EnvironmentsXenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud Environments
 
Azure Storage Performance
Azure Storage PerformanceAzure Storage Performance
Azure Storage Performance
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalley
 
Azure 103 Certification Course
Azure 103 Certification CourseAzure 103 Certification Course
Azure 103 Certification Course
 
CloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanCloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen Japan
 
Cloud stack for_beginners
Cloud stack for_beginnersCloud stack for_beginners
Cloud stack for_beginners
 
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should KnowOracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
 
User Transparent Service Migration to the Cloud
User Transparent Service Migration to the CloudUser Transparent Service Migration to the Cloud
User Transparent Service Migration to the Cloud
 
Windows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldWindows Azure: Lessons From the Field
Windows Azure: Lessons From the Field
 
Selecting the correct hypervisor for CloudStack 4.5
Selecting the correct hypervisor for CloudStack 4.5Selecting the correct hypervisor for CloudStack 4.5
Selecting the correct hypervisor for CloudStack 4.5
 
Running an openstack instance
Running an openstack instanceRunning an openstack instance
Running an openstack instance
 
Using Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStackUsing Packer to Migrate XenServer Infrastructure to CloudStack
Using Packer to Migrate XenServer Infrastructure to CloudStack
 
Windows Azure Pack: Containerized SQL Server Resource provider
Windows Azure Pack: Containerized SQL Server Resource providerWindows Azure Pack: Containerized SQL Server Resource provider
Windows Azure Pack: Containerized SQL Server Resource provider
 
The Next Big Thing: Serverless
The Next Big Thing: ServerlessThe Next Big Thing: Serverless
The Next Big Thing: Serverless
 
Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overview
 
Windows Azure Blob Storage
Windows Azure Blob StorageWindows Azure Blob Storage
Windows Azure Blob Storage
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStack
 

Viewers also liked

Mihai Tataran - Maintenance of Windows Azure Apps
Mihai Tataran - Maintenance of Windows Azure AppsMihai Tataran - Maintenance of Windows Azure Apps
Mihai Tataran - Maintenance of Windows Azure AppsITCamp
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)maditabalnco
 
What's Next in Growth? 2016
What's Next in Growth? 2016What's Next in Growth? 2016
What's Next in Growth? 2016Andrew Chen
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsBarry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
 

Viewers also liked (6)

Mihai Tataran - Maintenance of Windows Azure Apps
Mihai Tataran - Maintenance of Windows Azure AppsMihai Tataran - Maintenance of Windows Azure Apps
Mihai Tataran - Maintenance of Windows Azure Apps
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)
 
What's Next in Growth? 2016
What's Next in Growth? 2016What's Next in Growth? 2016
What's Next in Growth? 2016
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Similar to Scalability in cloud applications

Microsoft Azure Veri Servisleri
Microsoft Azure Veri ServisleriMicrosoft Azure Veri Servisleri
Microsoft Azure Veri ServisleriÖnder Değer
 
Introduction to Windows Azure
Introduction to Windows AzureIntroduction to Windows Azure
Introduction to Windows AzureRavi Ranjan Karn
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azuredivyapisces
 
Amazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs KubernetesAmazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs KubernetesStridely Solutions
 
Cloud computing & windows azure intro
Cloud computing & windows azure introCloud computing & windows azure intro
Cloud computing & windows azure introHaddy El-Haggan
 
Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...
Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...
Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...Jalpesh Vadgama
 
The Microsoft Cloud Partner
The Microsoft Cloud PartnerThe Microsoft Cloud Partner
The Microsoft Cloud PartnerNeethu Kuruvilla
 
AWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAmazon Web Services
 
Security in the cloud Workshop HSTC 2014
Security in the cloud Workshop HSTC 2014Security in the cloud Workshop HSTC 2014
Security in the cloud Workshop HSTC 2014Akash Mahajan
 
Cloudstack for beginners
Cloudstack for beginnersCloudstack for beginners
Cloudstack for beginnersJoseph Amirani
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!Michael Collier
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureMarco Obinu
 

Similar to Scalability in cloud applications (20)

Microsoft Azure Veri Servisleri
Microsoft Azure Veri ServisleriMicrosoft Azure Veri Servisleri
Microsoft Azure Veri Servisleri
 
Introduction to Windows Azure
Introduction to Windows AzureIntroduction to Windows Azure
Introduction to Windows Azure
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
Windows Azure
Windows AzureWindows Azure
Windows Azure
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azure
 
Amazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs KubernetesAmazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs Kubernetes
 
Global Windows Azure Bootcamp - San Diego
Global Windows Azure Bootcamp - San DiegoGlobal Windows Azure Bootcamp - San Diego
Global Windows Azure Bootcamp - San Diego
 
Cloud computing & windows azure intro
Cloud computing & windows azure introCloud computing & windows azure intro
Cloud computing & windows azure intro
 
Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...
Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...
Ahmedabad- Global Azure bootcamp- Azure Storage Services- Global Azure Bootca...
 
The Microsoft Cloud Partner
The Microsoft Cloud PartnerThe Microsoft Cloud Partner
The Microsoft Cloud Partner
 
AWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the Cloud
 
Azure platform for customers
Azure platform for customersAzure platform for customers
Azure platform for customers
 
Head in the clouds
Head in the cloudsHead in the clouds
Head in the clouds
 
Security in the cloud Workshop HSTC 2014
Security in the cloud Workshop HSTC 2014Security in the cloud Workshop HSTC 2014
Security in the cloud Workshop HSTC 2014
 
Cloudstack for beginners
Cloudstack for beginnersCloudstack for beginners
Cloudstack for beginners
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!
 
UCT AWS_IOT
UCT AWS_IOTUCT AWS_IOT
UCT AWS_IOT
 
IaaS azure_vs_amazon
IaaS azure_vs_amazonIaaS azure_vs_amazon
IaaS azure_vs_amazon
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su Azure
 

Scalability in cloud applications

  • 1. Scalability in Cloud Applications Radu Vunvulea vunvulear@gmail.com http://vunvulearadu.blogspot.com
  • 2. Who am I? { “name” : “Radu Vunvulea, “company” : “iQuest”, “userType” : “enthusiastic” “technologies” : [ “.NET”, “JS”, “Azure”, “Web”, “Mobile”, “SL” ], “blog” : “vunvulearadu.blogspot.com”, “email” : ”vunvulear@gmail.com”, “socialMedia” : { “twitter” : “@RaduVunvulea”, “fb” : “radu.vunvulea” } }
  • 4. Is Cloud so different?
  • 6. How can we offer value in our solutions? • Cloud in general offers a lot of services that can make our life easier • Cloud can offer more than machines scalability • Cloud can help us to create application that are scalable in more than one point
  • 7. How can we offer value in our solutions? • Cloud in general offers a lot of services that can make our life easier • Cloud can offer more than machines scalability • Cloud can help us to create application that are scalable in more than one point • We cannot offer a Cloud solution without knowing the environment
  • 9. Table Storage Service • Stores any kind of serializable data • You don’t need any kind of complex data structure or SQL knowledge. • Is not a relational database • In the same table you can have more than one entity type • Each entity can have maximum 252 properties + 3 default • The maximum size of total tables cannot accede 100.000 GB (100TB) • The maximum size of an entity can be 1MB
  • 11. Windows Azure Blob Storage • Block blobs • Support multi-upload of blocks in parallel • When updating a block, the old version is not override until you commit it • Can be used for large files • Page blobs • Collection of pages of 512b • Can be accessed by an offset • Can be used when the content is changing very often • Maximum size 100TB
  • 12. SQL Database • Relational database based on SQL Server • It is almost like SQL Server from on-premises • BUT: • We don’t have support for distributed transactions • Each table have to contain at least one cluster index • We cannot attach a database • We don’t have support for jobs • Maximum size is 150 GB • Double check the total cost of a having a SQL Database – there are a lot of times when we can use Table Storage Service
  • 14. Queue Storage Service • It is very similar with a named queue from Windows • You can update the message from a queue • Support batches (maximum 32 messages on each call) • Operations: peek, insert, delete, get • Remark: getting a message don’t remove the message from queue • With some work you can even iterate in a queue • 500 - is the maximum number of messages that can be processed per second • Message is persisted until someone will consume it
  • 16. Service Bus Queue • Similar to Queue Storage Service • The order of the message is guaranteed • Death Letter support • Automatically counter for “number of retrives” • Duplicate messaging detection • Support for transaction, sessions • Are not as fast as Windows Azure Queues • The size of a Service Bus Queue is limited to 5 GB • Support for ACS (Access Control Service) • Any kind of serializable item can be added to the queue • We can even add stream to a message queue (array of bytes )
  • 17. Service Bus Topic • Multi-distribution mechanism for messages • Using Service Bus Queues we have 1 to 1 communication • Using Service Bus Topic we have 1 to n communication • Each “listener” will receive each message from topic • Sessions, transaction, death letters are supported • Two ways for “listeners” • Receive and delete • Peek and lock • The message type is the same with Service Bus Queue – • BrokeredMessage • Each message can contain 0 to n properties • We cannot update or add again the same message
  • 18. Service Bus Relay • Represent a communication bridge between cloud and on- premises world • It is used with success when working with hybrid application • Expose WCF services from on-premises servers using cloud • Only one entry point • Requests are persisted even if the on-premises server is down • We can control who access our services • The only thing that need to be changed is on the configuration file of the server and client • We can only have request of type Fire And Forget
  • 20. Windows Azure Caching • Nice feature: you pay only the machine computation • All the content is in the machine memory • 2 types of caching: • Dedicated roles • Co-located roles (shared memory between application and cache) • Cache cluster support (only in combination with a storage account) • Maximum size of a cache is 14 GB (limited by the memory size of VM role) • Each item can have an expiration date • Built in support for storing web session in the cache
  • 21. Caching Service • Offer build in caching mechanism • Can be accessed by anybody from anywhere based on the namespace • Maximum size is 4 GB • Is more expensive than Windows Azure Caching but can be accessed from any location • This caching mechanism is offered as a service • It is similar with Caching Server from on-premise servers
  • 22. Azure Access Control Service (ACS)
  • 23. Azure Access Control Service (ACS) • Provide us a mechanism to authenticate users from different identify providers: FB, Google, Y!, Live … even custom identify providers and Active Directory (2.0+) • Is based on a claim based authentication • You never work with user credentials • Depending on the provider, you can access different information about user • You don’t need anymore to implement a user management mechanism • BUT, if you need, you will need to define roles and store user id’s
  • 25. Shared Access Signature • Provide a method to offer access to different resources from storage account • You can provide access to resources without requiring a user to authenticate • It is a simple way to control and manage who have access to your storage • The base of this mechanism is a custom token • You can add, remove and change a SAS at runtime • Each policy is defined by a unique id • The validity of a SAS can be limited (time base)
  • 27. Media Services • The based action that can be done is: content streaming • Ingest – first step when content is uploaded (upload and encryption) • Encoding – Process the media content (change the encoding, converting and transform) – we can use only supported formats • Protect – encryption of live streaming using a built-in mechanism • Streaming – send content to consumers (even Apple HTTP Live Streaming is supported) • Support for CDN (Azure and 3th party CDN’s are supported). • Supported devices: Android, iOS, ,Mac, Windows Phone, Windows 8, X-box, embedded devices, dedicated devices
  • 29. Windows Azure Websites • Can be used to develop web-application • Support different technologies (PHP, node.js, .NET) • MySQL support  • Low cost support – shared mode • Reserved mode – dedicated instance • Git support and a very fast rollback mechanism • Web.config – doesn’t need to contain Azure configuration • Each site runs in an isolated environment
  • 30. Web Roles • Used to host application composed from multiple tiers • Each web-role is scalable independently • In comparison with Azure Websites, a lot of custom configuration can be done • Network isolation • Support for startup tasks • For example we can run a bat that make a custom configuration to our firewall or install specific applications • Any kind of framework can be used in this machines
  • 31. Worker role • Perfect place to run long running task • Can be used with success with web-roles for tasks that run in background • Cannot be used to host a web application • In the moment when the “WHEN(TRUE)” ends the worker role process stop • Can be seen as a process that can execute a specific type for an infinite period of time
  • 32. Virtual Machine • Can be used to install any kind of operating system from Windows to Linux • Built-in support and images available for different versions of Linux  and Windows. • Custom machines can be created with our own VHD • Built-in support for MongoDB, MySQL, Cassandra • Migration from on-premises to cloud and cloud to on-premises can be done using VHD
  • 35. Messaging mechanism • Windows Azure Queues • Windows Azure Service Bus Queues • Windows Azure Service Bus Topics
  • 36. More messages – What should we do? • Cloud has is own limits • Cloud services are like other services
  • 37. More messages – What should we do? • Split the messages to more than one messaging service • Based on the type • Based on the source • Based on an attribute
  • 39. Caching solutions • Windows Azure AppFabric Cache • Cache is seen as a service • For consumer, the location of the cache is not relevant • Windows Azure Cache • The cache is unique per instance • Cannot be synchronized between machines in real time • Local cache • In-memory cache
  • 43. Storing binary data • Images, ISO and binary content • Can be stored with success on blobs • CDNs • Direct access to data (security SAS) • Videos • Blobs • Windows Azure Media Services
  • 44. Storing information • For cases where we need to write logs or audit data we can use with success: • Windows Azure Table + SAS • Storing any kind of data in a non relational database • Windows Azure Table + SAS • Storing relational data • SQL Azure
  • 45. WCF Services • Can we expose WCF Services from a private network (on- premises) into a safe way? • Can we guaranty that no request will be lost? • Can we expose services in a manner to be 99% up even if our servers are up only 90% of time?
  • 46. WCF Services • Can we expose WCF Services from a private network (on- premises) into a safe way? • Can we guaranty that no request will be lost? • Can we expose services in a manner to be 99% up even if our servers are up only 90% of time? • Windows Azure Service Bus Relay
  • 47. Long running task • We have a web application that has long running task • Each task take more than 5 seconds to execute • How we can scale?
  • 48. Long running task • We have a web application that has long running task • Each task take more than 5 seconds to execute • How we can scale? • Long running request can run on a worker role, that can scale independent • The result can be send to web-role using queues • Client can be notified using Web Sockets or SignalR
  • 49.
  • 50. THE END Radu Vunvulea vunvulear@gmail.com http://vunvulearadu.blogspot.com

Editor's Notes

  1. Store any kind of serializable dataYou don’t need any kind of complex data structure or SQL knowledge.Is not a relational databaseIn the same table you can have more than one type of entityEach entity from can have maximum 252 properties + 3 defaultThe maximum size of total tables cannot accede 100.000 GB (100TB)The maximum size of an entity can be 1MB
  2. COM
  3. Block blobsSupport multi-upload of blocks in parallel When updating a block, the old version is not override until you commit itCan be used for large filesPage blobsCollection of pages of 512bCan be accessed by an offsetCan be used when the content is changing very oftenMaximum size 100TB
  4. COM
  5. COM
  6. It is very similar with a named queue from WindowsYou can update the message from a queueSupport batches (maximum 32 messages on each call)Operations: peek, insert, deleting, getting Remark: getting a message don’t remove the message from queueWith some work you can even iterate in a queue500- is the maximum number of messages that can be processed per secondMessage is persisted until someone will consume it
  7. COM
  8. Similar to Queue Storage ServiceThe order of the message is guaranteedDeath Letter supportAutomatically counter for “number of retries”Duplicate messaging detectionSupport for transaction, sessions Are not as fast as Windows Azure QueuesThe size of a Service Bus Queue is limited to 5 GBSupport for ACS (Access Control Service)Any kind of serializable item can be added to the queueWe can even add stream to a message queue (array of bytes )
  9. COM
  10. COM
  11. COM
  12. COM
  13. COM
  14. COM
  15. Provide us a mechanism to authenticate users from different identify providers: FB, Google, Y!, Live … even custom identify providers and Active Directory (2.0+)Is based on a claim based authentication – tokens are trusting between different services are the based of the claim based auth.You never work with user credentialsDepending on the provider, you can access different information about user You don’t need anymore to implement a user management mechanism BUT, if you need, you will need to define roles and store user id’s
  16. COM
  17. Provide a method to offer access to different resources from storage accountYou can provide access to resources without requiring a user to authenticateIt is a simple way to control and manage who have access to your storage The base of this mechanism is a custom tokenYou can add, remove and change a SAS at runtimeEach policy is defined by a unique idThe validity of a SAS can be limited (time base)
  18. COM
  19. The based action that can be done is: content streamingIngest – first step when content is uploaded (upload and encryption)Encoding – Process the media content (change the encoding, converting and transform) – we can use only supported formatsProtect – encryption of live streaming using a build-in mechanismStreaming – send content to consumers (even Apple HTTP Live Streaming is supported)Support for CDN (Azure and 3th party CDN’s are supported).Supported devices: Android, iOS, ,Mac, Windows Phone, Windows 8, X-box, embedded devices, dedicated devices
  20. COM
  21. COM
  22. COM
  23. COM
  24. COM
  25. COM
  26. COM