SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Windows Azure Platform Training Workshop
Presentation Outline (hidden slide): Technical Level:  300 Intended Audience:   Developers Objectives (what do you want the audience to take away): 1. To be able to build and deploy a Windows Azure Service 2. To be able to use blobs, tables and queues effectively 3. Understand how to use the API for logging Presentation Outline (including demos): Compute Demo: Building and Deploying a Service Demo: Logging and Configuration Demo: Worker Roles Storage Demo: Using Blobs Demo: Using Queues Demo: Using Tables Advanced Table Concepts
Building Services using Windows Azure Name Title Organization Email
Windows Azure Windows Azure is the foundation of Microsoft’s Cloud Platform It is an “Operating System in the Cloud” and provides Essential Services for the cloud Virtualized Computation Scalable Storage Automatic Management Developer SDK
Role Programming Model Inherits RoleEntryPoint OnStart() Method Called by Fabric on startup, allows you to perform initialization tasks. Reports Busy status to load balancer until you return true. OnStop() Method Called when role is to be shutdown, graceful exit. Run() Method Main logic is here – can do anything, typically loop and never exit.
Web Role ASP.NET 3.5 SP1 – 64bit IIS7 Hostable Web Core Hosts Webformsor MVC FastCGI applications (e.g. PHP) Http(s)/TCP WebRole New web.roleConfig to support FastCGI Support same Role model semantics as Worker Role (e.g. OnStart, Run, etc.)
Packaging & Deployment ServicePackage ServiceConfiguration
Building and Deploying a Service demo
Configuration Service Configuration Serviceconfiguration.csdef– Service Model ServiceConfiguration.cscfg – instance data RoleEnvironment.GetConfigurationSettingValue() Don’t use web.config for values you wish to change at runtime Web.config change requires re-deploy
Monitoring No Debugging in Cloud Instrument your application using Trace, Debug DiagnosticMonitorTraceListener Use Diagnostics API to Configure and Collect Event Logs Performance Counters Trace/Debug information (logging) IIS Logs, Failed Request Logs Crash Dumps or Arbitrary files Request data on demand or scheduled Transferred into your table and/or blob storage Everything is remotely configurable
Logging and Configuration demo
Using Queues to Decouple Roles Use Queue to Decouple Design for Idempotency multiple applications of the operation does not change the result Web Role Worker Role Worker Role Web Role Worker Role Worker Role Storage Queue LB LB
Using the Worker Roles demo
Upgrading Your Application Two Models:  VIP Swap and In-Place Upgrade VIP Swap: Uses Staging and Production environments. Allows to quickly swap environments. Production: v1  Staging: v2, after swap then Production: v2  Staging: v1. In-Place Upgrade Performs a rolling upgrade on live service. Entire service or a single role Manual or Automatic across update domains
Storage Blobs – Provide a simple interface for storing named files along with metadata for the file  Drives – A durable NTFS volume backed by blob storage Tables – Provide structured storage; A Table is a set of entities, which contain a set of properties Queues – Provide reliable storage and delivery of messages for an application
Storage in the Dev Fabric Provides a local “Mock” storage Emulates storage in cloud Allows offline development Requires SQL Express 2005/2008
Storage in the cloud Create a Storage Account Endpoints Access Keys CDN
Windows Azure Storage Account User creates a globally unique storage account name Can choose geo-location to host storage account “US Anywhere”, “US North Central”, “US South Central”,  Can co-locate storage account with compute account Receive a 256 bit secret key when creating account Storage Account Capacity at Commercial Availability Each storage account can store up to 100 TB  Default limit of 5 storage accounts per subscription
Blob Containers Number of Blob Containers Can have has many Blob Containers that will fit within the storage account limit  Blob Container A container holds a set of blobs Set access policies at the container level  Private or Public accessible Associate Metadata with Container Metadata are <name, value> pairs Up to 8KB per container List the blobs in a container Can now include Blob Metadata and MD5 (new)
Blob Features and Functions Store Large Objects (100s of GBs in size) Associate Metadata with Blob Metadata is <name, value> pairs, Up to 8KB per blob Set/Get with or separate from blob data bits Standard REST Interface PutBlob Inserts a new blob, overwrites the existing blob GetBlob Get whole blob or a specific range DeleteBlob CopyBlob(new) SnapshotBlob(new) LeaseBlob(new)
Blocks or Pages Blob Container Account Blob Storage ConceptsKey concepts account, container, blob and blocks/pages IMG001.JPG Pictures IMG002.JPG Account Block/Page 1 Movies MOV1.AVI Block/Page 2 Block /Page 3
Two Types of Blobs Under the Hood Block Blob  Targeted at streaming workloads Each blob consists of a sequence of blocks Each block is identified by a Block ID Size limit 200GB per blob Page Blob (new) Targeted at random read/write workloads Each blob consists of an array of pages Each page is identified by its offset from the start of the blob Size limit 1TB per blob
Block Blob Details Block can be up to 4MB each	 Each block can be variable size Each block has a 64 byte ID Scoped by blob name and stored with the blob Block operation PutBlock Puts an uncommitted block defined by the block ID for the blob  Block List Operations PutBlockList Provide the list of blocks to comprise the readable version of the blob Can use blocks from uncommitted or committed list to update blob GetBlockList Returns the list of blocks, committed or uncommitted for a blob Block ID and Size of Block is returned for each block
Page Blob Details Page Blob is created with a Max Blob Size Can change the max size of the blob at anytime. Address space is broken up into fixed sized 512 byte pages for updates Page update operations – must be page aligned PutPage- limited to 4MB Overwrite range of pages starting at the specified offset ClearPage- can specify up to max size of blob Clear range of pages at the offset Reading a Page Blob GetBlob – can read from any byte offset for any valid range What parts of the Page Blob have stored pages in them GetPageRange Get valid page ranges in the blob Only charged for pages with data stored in them
Choosing Between Block and Page Blob  Block Blob Targeted at streaming workloads Update semantics Upload a bunch of blocks.  Then commit change. Concurrency: ETag Checks Page Blob Targeted at random read/write workloads Update Semantics Immediate update Concurrency: Leases
Using Blobs demo
Summary Of Windows Azure Blobs Blob Access Patterns Block Blobs – streaming Page Blobs – random read/write (new) New Blob Operations Copy, Snapshot, and Lease work for both types New Ways of Accessing and Serving Blob Content (see MSDN) Content Delivery Network access Custom Domain Names Root Blob Container Shared Access Signatures  Additional new features ListBlob, GetBlob, Blob Properties (see MSDN docs)
Queues Simple asynchronous dispatch queue Create and delete queues Message: Retrieved at least once Max size 8kb Operations: put get delete
Queue Storage ConceptsAccount, queue and message Message Queue Account 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
Using Queues demo
Summary Of Queues Provide reliable message delivery Allows Messages to be retrieved and processed at least once No limit on number of messages stored in a Queue Message size is <=8KB
Tables Entities and properties (rows & columns) Tables scoped by account Designed for billions+ Scale-out using partitions Partition key & row key Operations performed on partitions Efficient queries No limit on number of partitions Use ADO.NET Data Services
Table Storage ConceptsAccount, table and entity Entity Table Account Name=…hash=… Users Name=…hash=… Account Tag=…id=… PhotoIndex Tag=…,id=…
Entities and Properties Each Entity can have up to 255 properties Every Entity has fixed key properties Partition key Row key Timestamp No fixed schema for rest of properties 2 entities in the same table can have different properties Properties stored as <Name, TypedValue> pairs Each entity has a system maintained version
Property Types Partition key and Row key String (up to 1KB) Other properties String (up to 64KB) Binary (up to 64KB) Bool DateTime GUID Int Int64 Double
Partition Key And Partition Every Entity has a partition key All entities in a table with the same partition key value live in the same partition  Need to choose partitioning scheme to make data access scalable
Partitioning Guidelines Performance Use a PartitionKey that is common in your queries Always try to specify the partition key in the query Entities with same partition key value are clustered Batch capabilities and transaction are supported within a partition only. Scalability We monitor partition traffic Automatically load balance partitions Each partition can potentially be served by a different storage node Scale to meet the traffic needs of your application More partitions – makes it easier to balance load
Using Tables demo
ClientB Client A Concurrent Updates Version Rating 1:  Ch9, Jan-2, 4 1:  Ch9, Jan-2, 5 2:  Ch9, Jan-2, 5 Error:  412 5 :  Ch9, Jan-1, 3 If-Match:  1 Ch9, Jan-2, 4 1 :  Ch9, Jan-2, 2 1 :  Ch9, Jan-2, 2 1 :  Ch9, Jan-2, 2 2:  Ch9, Jan-2, 5 If-Match:  1 Ch9, Jan-2, 5 9 :  Ch9, Jan-3, 6 Use standard HTTP mechanisms – Etag and If-Match Get entity – get system maintained version as ETag Update Entities Locally – change rating Send Update with version check - IF-Match with Etag Success if version matches, and update version on Client-A Precondition failed (412) if version does not match
.NET:  LINQ Take(N) function Getting the Top N entities serviceUri = new Uri("http://<account>.table.core.windows.net"); DataServiceContextcontext = new DataServiceContext(serviceUri); varallMessages = context.CreateQuery<Message>("Messages"); foreach (Message messagein allMessages.Take(100)) { Console.WriteLine(message.Name); } REST: $top=N query string option GET http://<serviceUri>/Messages?$top=100
Pagination – Continuation Tokens Send a request GET http://<serviceUri>/Messages?$filter=...&$top=100 Get continuation token in response header Messages x-ms-continuation-NextPartitionKey: xxxxxxx x-ms-continuation-NextRowKey: yyyyyy Ch9, Date1, 100 Ch9, Date2, Ch9, … Set HTTP query parameters Ch9,Date100, GET http://<Uri>/Messages?$filter=...&$top=100 Ch9,Date101, &NextPartitionKey=xxxxxxx &NextRowKey=yyyyyy Ch9, …
Single Table Consistency ACID transactions for single entity CUD Insert/update/delete Snapshot isolation for query within a single partition Consistent view from start time of the query No dirty (uncommitted) reads Does not block concurrent updates No snapshot isolation across partitions No snapshot isolation across different continuations of a query Batch transactions within partition only
Cross Table Consistency Application is responsible for maintaining consistency Example When a channel is deleted, delete all the messages for that channel Failures can occur in the middle Example - Application fails after deleting some messages Use Windows Azure Queues to help ensure completion of operation
Worker Queue Messages Cross Table Consistency  Delete channel Delete messages worker Front end Ch1, Msg1 Del Ch1 Del Ch5 Del Ch11 Del Ch1 2 Ch1, Msg2 Ch1, Msg3 Front End Ch2, Msg1 Ch2, Msg2 Channels Ch3, Msg1 Ch1,… Ch2,… 1. Dequeue DelCh1 2. Delete Ch1 from Channels 3. Delete from Messages 4. Delete queue entry
Delete channel Delete messages worker Front end Worker 1 Del Ch1h Queue Messages Resuming After Failure Ch1, Msg1 Del Ch1 Del Ch5 Del Ch11 Del Ch1 2 Ch1, Msg2 Ch1, Msg3 Front End Ch2, Msg1 Worker2 Ch2, Msg2 Channels Ch3, Msg1 Ch1,… Ch2,… 1. Dequeue DelCh1 and start delete 2. Fails after deleting Ch1 and Msg1 3. DelCh1 is visible again 4. Dequeue DelCh1 again 5. Repeat delete operations
Table Summary Windows Azure tables are Massively Scalable Highly Available Simple familiar API Use .NET –- ADO.NET Data Services and LINQ Or use REST Leverage your .NET expertise
Learning Windows Azure www.windowsazure.com http://channel9.msdn.com/learn Download the SDK You don’t need cloud access to develop! Look at the samples in the SDK Windows Azure Platform Training Kit 3 Windows Azure labs Follow the team bloggers
Q & A

Mais conteúdo relacionado

Mais procurados

Expertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesExpertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesMarco Gralike
 
Compare Exchange and Lotus Notes Domino features
Compare Exchange and Lotus Notes Domino featuresCompare Exchange and Lotus Notes Domino features
Compare Exchange and Lotus Notes Domino featuresmaria_francis1983
 
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers DayMicrosoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers DayHanneke Dotnet
 
Ogh Ace Case, Part 1 and 2, Oracle Xml Database, Marco Gralike
Ogh Ace Case, Part 1 and 2, Oracle Xml Database, Marco GralikeOgh Ace Case, Part 1 and 2, Oracle Xml Database, Marco Gralike
Ogh Ace Case, Part 1 and 2, Oracle Xml Database, Marco GralikeMarco Gralike
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]Malin Weiss
 
How and Where in GLORP
How and Where in GLORPHow and Where in GLORP
How and Where in GLORPESUG
 
Materialize: a platform for changing data
Materialize: a platform for changing dataMaterialize: a platform for changing data
Materialize: a platform for changing dataAltinity Ltd
 
Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)kiwiboris
 
Ch02 installing exchange
Ch02 installing exchangeCh02 installing exchange
Ch02 installing exchangeShane Flooks
 
Ch01 Introduction to Exchange 2013
Ch01 Introduction to Exchange 2013Ch01 Introduction to Exchange 2013
Ch01 Introduction to Exchange 2013Shane Flooks
 
Ts windchill data_loading
Ts windchill data_loadingTs windchill data_loading
Ts windchill data_loadingKhalil Bouali
 
Migrating very large site collections
Migrating very large site collectionsMigrating very large site collections
Migrating very large site collectionskiwiboris
 
XFILES, The APEX 4 version - The truth is in there
XFILES, The APEX 4 version - The truth is in thereXFILES, The APEX 4 version - The truth is in there
XFILES, The APEX 4 version - The truth is in thereMarco Gralike
 
JavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient JavaJavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient JavaChris Bailey
 
Using MongoDB and Python
Using MongoDB and PythonUsing MongoDB and Python
Using MongoDB and PythonMike Bright
 
MongoDB, Hadoop and Humongous Data
MongoDB, Hadoop and Humongous DataMongoDB, Hadoop and Humongous Data
MongoDB, Hadoop and Humongous DataSteven Francia
 
Ch04 mailbox server
Ch04 mailbox serverCh04 mailbox server
Ch04 mailbox serverShane Flooks
 
Microsoft Exchange 2013 architecture
Microsoft Exchange 2013 architectureMicrosoft Exchange 2013 architecture
Microsoft Exchange 2013 architectureMotty Ben Atia
 

Mais procurados (20)

Expertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesExpertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use Cases
 
Compare Exchange and Lotus Notes Domino features
Compare Exchange and Lotus Notes Domino featuresCompare Exchange and Lotus Notes Domino features
Compare Exchange and Lotus Notes Domino features
 
jsf2 Notes
jsf2 Notesjsf2 Notes
jsf2 Notes
 
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers DayMicrosoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
 
Ogh Ace Case, Part 1 and 2, Oracle Xml Database, Marco Gralike
Ogh Ace Case, Part 1 and 2, Oracle Xml Database, Marco GralikeOgh Ace Case, Part 1 and 2, Oracle Xml Database, Marco Gralike
Ogh Ace Case, Part 1 and 2, Oracle Xml Database, Marco Gralike
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
 
MongoDB and hadoop
MongoDB and hadoopMongoDB and hadoop
MongoDB and hadoop
 
How and Where in GLORP
How and Where in GLORPHow and Where in GLORP
How and Where in GLORP
 
Materialize: a platform for changing data
Materialize: a platform for changing dataMaterialize: a platform for changing data
Materialize: a platform for changing data
 
Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)
 
Ch02 installing exchange
Ch02 installing exchangeCh02 installing exchange
Ch02 installing exchange
 
Ch01 Introduction to Exchange 2013
Ch01 Introduction to Exchange 2013Ch01 Introduction to Exchange 2013
Ch01 Introduction to Exchange 2013
 
Ts windchill data_loading
Ts windchill data_loadingTs windchill data_loading
Ts windchill data_loading
 
Migrating very large site collections
Migrating very large site collectionsMigrating very large site collections
Migrating very large site collections
 
XFILES, The APEX 4 version - The truth is in there
XFILES, The APEX 4 version - The truth is in thereXFILES, The APEX 4 version - The truth is in there
XFILES, The APEX 4 version - The truth is in there
 
JavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient JavaJavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient Java
 
Using MongoDB and Python
Using MongoDB and PythonUsing MongoDB and Python
Using MongoDB and Python
 
MongoDB, Hadoop and Humongous Data
MongoDB, Hadoop and Humongous DataMongoDB, Hadoop and Humongous Data
MongoDB, Hadoop and Humongous Data
 
Ch04 mailbox server
Ch04 mailbox serverCh04 mailbox server
Ch04 mailbox server
 
Microsoft Exchange 2013 architecture
Microsoft Exchange 2013 architectureMicrosoft Exchange 2013 architecture
Microsoft Exchange 2013 architecture
 

Destaque (12)

B2B Integration in the Cloud
B2B Integration in the CloudB2B Integration in the Cloud
B2B Integration in the Cloud
 
SS7 Network Technology
SS7 Network TechnologySS7 Network Technology
SS7 Network Technology
 
Warnings social media rev 3
Warnings social media rev 3Warnings social media rev 3
Warnings social media rev 3
 
Tema De Vida Yahoo!
Tema De Vida Yahoo!Tema De Vida Yahoo!
Tema De Vida Yahoo!
 
Bol.com #dw15
Bol.com #dw15Bol.com #dw15
Bol.com #dw15
 
UoL DBA Course Welcome Message
UoL DBA Course Welcome MessageUoL DBA Course Welcome Message
UoL DBA Course Welcome Message
 
Shopping UOL
Shopping UOLShopping UOL
Shopping UOL
 
Uol cinema
Uol cinemaUol cinema
Uol cinema
 
Emails validos
Emails validosEmails validos
Emails validos
 
Origem e inserçao dos musculos
Origem e inserçao dos musculosOrigem e inserçao dos musculos
Origem e inserçao dos musculos
 
Yahoo Mail moving to React
Yahoo Mail moving to ReactYahoo Mail moving to React
Yahoo Mail moving to React
 
Lista de emprego
Lista de  empregoLista de  emprego
Lista de emprego
 

Semelhante a Building services using windows azure

Azure, Cloud Computing & Services
Azure, Cloud Computing & ServicesAzure, Cloud Computing & Services
Azure, Cloud Computing & ServicesAlan Dean
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure campAbhishek Sur
 
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]vaishalisahare123
 
MS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storageMS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storageSpiffy
 
Exploring Windows Azure Cloud Storage
Exploring Windows Azure Cloud StorageExploring Windows Azure Cloud Storage
Exploring Windows Azure Cloud StorageK.Mohamed Faizal
 
Windows azure camp - Kolkata
Windows azure camp - KolkataWindows azure camp - Kolkata
Windows azure camp - KolkataAbhijit Jana
 
Microsoft Database Options
Microsoft Database OptionsMicrosoft Database Options
Microsoft Database OptionsDavid Chou
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBill Wilder
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repositorynobby
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architectureAjeet Singh
 
A complete guide to azure storage
A complete guide to azure storageA complete guide to azure storage
A complete guide to azure storageHimanshu Sahu
 
Obevo Javasig.pptx
Obevo Javasig.pptxObevo Javasig.pptx
Obevo Javasig.pptxLadduAnanu
 
What's new in the world of the Autonomous Database in 2023
What's new in the world of the Autonomous Database in 2023What's new in the world of the Autonomous Database in 2023
What's new in the world of the Autonomous Database in 2023Sandesh Rao
 
What's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdf
What's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdfWhat's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdf
What's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdfSandesh Rao
 
Productionalizing ML : Real Experience
Productionalizing ML : Real ExperienceProductionalizing ML : Real Experience
Productionalizing ML : Real ExperienceIhor Bobak
 

Semelhante a Building services using windows azure (20)

Azure, Cloud Computing & Services
Azure, Cloud Computing & ServicesAzure, Cloud Computing & Services
Azure, Cloud Computing & Services
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure camp
 
Microsoft cloud 101
Microsoft cloud 101Microsoft cloud 101
Microsoft cloud 101
 
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
 
MS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storageMS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storage
 
Exploring Windows Azure Cloud Storage
Exploring Windows Azure Cloud StorageExploring Windows Azure Cloud Storage
Exploring Windows Azure Cloud Storage
 
Windows azure camp - Kolkata
Windows azure camp - KolkataWindows azure camp - Kolkata
Windows azure camp - Kolkata
 
Microsoft Database Options
Microsoft Database OptionsMicrosoft Database Options
Microsoft Database Options
 
Mini training - Introduction to Microsoft Azure Storage
Mini training - Introduction to Microsoft Azure StorageMini training - Introduction to Microsoft Azure Storage
Mini training - Introduction to Microsoft Azure Storage
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architecture
 
A complete guide to azure storage
A complete guide to azure storageA complete guide to azure storage
A complete guide to azure storage
 
Obevo Javasig.pptx
Obevo Javasig.pptxObevo Javasig.pptx
Obevo Javasig.pptx
 
What's new in the world of the Autonomous Database in 2023
What's new in the world of the Autonomous Database in 2023What's new in the world of the Autonomous Database in 2023
What's new in the world of the Autonomous Database in 2023
 
What's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdf
What's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdfWhat's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdf
What's new in Autonomous Database - OCYatra2023 - Sandesh Rao.pdf
 
04 Azure IAAS 101
04 Azure IAAS 10104 Azure IAAS 101
04 Azure IAAS 101
 
Productionalizing ML : Real Experience
Productionalizing ML : Real ExperienceProductionalizing ML : Real Experience
Productionalizing ML : Real Experience
 

Último

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfROWELL MARQUINA
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - AvrilIvanti
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 

Último (20)

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - Avril
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 

Building services using windows azure

  • 1. Windows Azure Platform Training Workshop
  • 2. Presentation Outline (hidden slide): Technical Level: 300 Intended Audience: Developers Objectives (what do you want the audience to take away): 1. To be able to build and deploy a Windows Azure Service 2. To be able to use blobs, tables and queues effectively 3. Understand how to use the API for logging Presentation Outline (including demos): Compute Demo: Building and Deploying a Service Demo: Logging and Configuration Demo: Worker Roles Storage Demo: Using Blobs Demo: Using Queues Demo: Using Tables Advanced Table Concepts
  • 3. Building Services using Windows Azure Name Title Organization Email
  • 4. Windows Azure Windows Azure is the foundation of Microsoft’s Cloud Platform It is an “Operating System in the Cloud” and provides Essential Services for the cloud Virtualized Computation Scalable Storage Automatic Management Developer SDK
  • 5. Role Programming Model Inherits RoleEntryPoint OnStart() Method Called by Fabric on startup, allows you to perform initialization tasks. Reports Busy status to load balancer until you return true. OnStop() Method Called when role is to be shutdown, graceful exit. Run() Method Main logic is here – can do anything, typically loop and never exit.
  • 6. Web Role ASP.NET 3.5 SP1 – 64bit IIS7 Hostable Web Core Hosts Webformsor MVC FastCGI applications (e.g. PHP) Http(s)/TCP WebRole New web.roleConfig to support FastCGI Support same Role model semantics as Worker Role (e.g. OnStart, Run, etc.)
  • 7. Packaging & Deployment ServicePackage ServiceConfiguration
  • 8. Building and Deploying a Service demo
  • 9. Configuration Service Configuration Serviceconfiguration.csdef– Service Model ServiceConfiguration.cscfg – instance data RoleEnvironment.GetConfigurationSettingValue() Don’t use web.config for values you wish to change at runtime Web.config change requires re-deploy
  • 10. Monitoring No Debugging in Cloud Instrument your application using Trace, Debug DiagnosticMonitorTraceListener Use Diagnostics API to Configure and Collect Event Logs Performance Counters Trace/Debug information (logging) IIS Logs, Failed Request Logs Crash Dumps or Arbitrary files Request data on demand or scheduled Transferred into your table and/or blob storage Everything is remotely configurable
  • 12. Using Queues to Decouple Roles Use Queue to Decouple Design for Idempotency multiple applications of the operation does not change the result Web Role Worker Role Worker Role Web Role Worker Role Worker Role Storage Queue LB LB
  • 13. Using the Worker Roles demo
  • 14. Upgrading Your Application Two Models: VIP Swap and In-Place Upgrade VIP Swap: Uses Staging and Production environments. Allows to quickly swap environments. Production: v1  Staging: v2, after swap then Production: v2  Staging: v1. In-Place Upgrade Performs a rolling upgrade on live service. Entire service or a single role Manual or Automatic across update domains
  • 15. Storage Blobs – Provide a simple interface for storing named files along with metadata for the file Drives – A durable NTFS volume backed by blob storage Tables – Provide structured storage; A Table is a set of entities, which contain a set of properties Queues – Provide reliable storage and delivery of messages for an application
  • 16. Storage in the Dev Fabric Provides a local “Mock” storage Emulates storage in cloud Allows offline development Requires SQL Express 2005/2008
  • 17. Storage in the cloud Create a Storage Account Endpoints Access Keys CDN
  • 18. Windows Azure Storage Account User creates a globally unique storage account name Can choose geo-location to host storage account “US Anywhere”, “US North Central”, “US South Central”, Can co-locate storage account with compute account Receive a 256 bit secret key when creating account Storage Account Capacity at Commercial Availability Each storage account can store up to 100 TB Default limit of 5 storage accounts per subscription
  • 19. Blob Containers Number of Blob Containers Can have has many Blob Containers that will fit within the storage account limit Blob Container A container holds a set of blobs Set access policies at the container level Private or Public accessible Associate Metadata with Container Metadata are <name, value> pairs Up to 8KB per container List the blobs in a container Can now include Blob Metadata and MD5 (new)
  • 20. Blob Features and Functions Store Large Objects (100s of GBs in size) Associate Metadata with Blob Metadata is <name, value> pairs, Up to 8KB per blob Set/Get with or separate from blob data bits Standard REST Interface PutBlob Inserts a new blob, overwrites the existing blob GetBlob Get whole blob or a specific range DeleteBlob CopyBlob(new) SnapshotBlob(new) LeaseBlob(new)
  • 21. Blocks or Pages Blob Container Account Blob Storage ConceptsKey concepts account, container, blob and blocks/pages IMG001.JPG Pictures IMG002.JPG Account Block/Page 1 Movies MOV1.AVI Block/Page 2 Block /Page 3
  • 22. Two Types of Blobs Under the Hood Block Blob Targeted at streaming workloads Each blob consists of a sequence of blocks Each block is identified by a Block ID Size limit 200GB per blob Page Blob (new) Targeted at random read/write workloads Each blob consists of an array of pages Each page is identified by its offset from the start of the blob Size limit 1TB per blob
  • 23. Block Blob Details Block can be up to 4MB each Each block can be variable size Each block has a 64 byte ID Scoped by blob name and stored with the blob Block operation PutBlock Puts an uncommitted block defined by the block ID for the blob Block List Operations PutBlockList Provide the list of blocks to comprise the readable version of the blob Can use blocks from uncommitted or committed list to update blob GetBlockList Returns the list of blocks, committed or uncommitted for a blob Block ID and Size of Block is returned for each block
  • 24. Page Blob Details Page Blob is created with a Max Blob Size Can change the max size of the blob at anytime. Address space is broken up into fixed sized 512 byte pages for updates Page update operations – must be page aligned PutPage- limited to 4MB Overwrite range of pages starting at the specified offset ClearPage- can specify up to max size of blob Clear range of pages at the offset Reading a Page Blob GetBlob – can read from any byte offset for any valid range What parts of the Page Blob have stored pages in them GetPageRange Get valid page ranges in the blob Only charged for pages with data stored in them
  • 25. Choosing Between Block and Page Blob Block Blob Targeted at streaming workloads Update semantics Upload a bunch of blocks. Then commit change. Concurrency: ETag Checks Page Blob Targeted at random read/write workloads Update Semantics Immediate update Concurrency: Leases
  • 27. Summary Of Windows Azure Blobs Blob Access Patterns Block Blobs – streaming Page Blobs – random read/write (new) New Blob Operations Copy, Snapshot, and Lease work for both types New Ways of Accessing and Serving Blob Content (see MSDN) Content Delivery Network access Custom Domain Names Root Blob Container Shared Access Signatures Additional new features ListBlob, GetBlob, Blob Properties (see MSDN docs)
  • 28. Queues Simple asynchronous dispatch queue Create and delete queues Message: Retrieved at least once Max size 8kb Operations: put get delete
  • 29. Queue Storage ConceptsAccount, queue and message Message Queue Account 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
  • 31. Summary Of Queues Provide reliable message delivery Allows Messages to be retrieved and processed at least once No limit on number of messages stored in a Queue Message size is <=8KB
  • 32. Tables Entities and properties (rows & columns) Tables scoped by account Designed for billions+ Scale-out using partitions Partition key & row key Operations performed on partitions Efficient queries No limit on number of partitions Use ADO.NET Data Services
  • 33. Table Storage ConceptsAccount, table and entity Entity Table Account Name=…hash=… Users Name=…hash=… Account Tag=…id=… PhotoIndex Tag=…,id=…
  • 34. Entities and Properties Each Entity can have up to 255 properties Every Entity has fixed key properties Partition key Row key Timestamp No fixed schema for rest of properties 2 entities in the same table can have different properties Properties stored as <Name, TypedValue> pairs Each entity has a system maintained version
  • 35. Property Types Partition key and Row key String (up to 1KB) Other properties String (up to 64KB) Binary (up to 64KB) Bool DateTime GUID Int Int64 Double
  • 36. Partition Key And Partition Every Entity has a partition key All entities in a table with the same partition key value live in the same partition Need to choose partitioning scheme to make data access scalable
  • 37. Partitioning Guidelines Performance Use a PartitionKey that is common in your queries Always try to specify the partition key in the query Entities with same partition key value are clustered Batch capabilities and transaction are supported within a partition only. Scalability We monitor partition traffic Automatically load balance partitions Each partition can potentially be served by a different storage node Scale to meet the traffic needs of your application More partitions – makes it easier to balance load
  • 39. ClientB Client A Concurrent Updates Version Rating 1: Ch9, Jan-2, 4 1: Ch9, Jan-2, 5 2: Ch9, Jan-2, 5 Error: 412 5 : Ch9, Jan-1, 3 If-Match: 1 Ch9, Jan-2, 4 1 : Ch9, Jan-2, 2 1 : Ch9, Jan-2, 2 1 : Ch9, Jan-2, 2 2: Ch9, Jan-2, 5 If-Match: 1 Ch9, Jan-2, 5 9 : Ch9, Jan-3, 6 Use standard HTTP mechanisms – Etag and If-Match Get entity – get system maintained version as ETag Update Entities Locally – change rating Send Update with version check - IF-Match with Etag Success if version matches, and update version on Client-A Precondition failed (412) if version does not match
  • 40. .NET: LINQ Take(N) function Getting the Top N entities serviceUri = new Uri("http://<account>.table.core.windows.net"); DataServiceContextcontext = new DataServiceContext(serviceUri); varallMessages = context.CreateQuery<Message>("Messages"); foreach (Message messagein allMessages.Take(100)) { Console.WriteLine(message.Name); } REST: $top=N query string option GET http://<serviceUri>/Messages?$top=100
  • 41. Pagination – Continuation Tokens Send a request GET http://<serviceUri>/Messages?$filter=...&$top=100 Get continuation token in response header Messages x-ms-continuation-NextPartitionKey: xxxxxxx x-ms-continuation-NextRowKey: yyyyyy Ch9, Date1, 100 Ch9, Date2, Ch9, … Set HTTP query parameters Ch9,Date100, GET http://<Uri>/Messages?$filter=...&$top=100 Ch9,Date101, &NextPartitionKey=xxxxxxx &NextRowKey=yyyyyy Ch9, …
  • 42. Single Table Consistency ACID transactions for single entity CUD Insert/update/delete Snapshot isolation for query within a single partition Consistent view from start time of the query No dirty (uncommitted) reads Does not block concurrent updates No snapshot isolation across partitions No snapshot isolation across different continuations of a query Batch transactions within partition only
  • 43. Cross Table Consistency Application is responsible for maintaining consistency Example When a channel is deleted, delete all the messages for that channel Failures can occur in the middle Example - Application fails after deleting some messages Use Windows Azure Queues to help ensure completion of operation
  • 44. Worker Queue Messages Cross Table Consistency Delete channel Delete messages worker Front end Ch1, Msg1 Del Ch1 Del Ch5 Del Ch11 Del Ch1 2 Ch1, Msg2 Ch1, Msg3 Front End Ch2, Msg1 Ch2, Msg2 Channels Ch3, Msg1 Ch1,… Ch2,… 1. Dequeue DelCh1 2. Delete Ch1 from Channels 3. Delete from Messages 4. Delete queue entry
  • 45. Delete channel Delete messages worker Front end Worker 1 Del Ch1h Queue Messages Resuming After Failure Ch1, Msg1 Del Ch1 Del Ch5 Del Ch11 Del Ch1 2 Ch1, Msg2 Ch1, Msg3 Front End Ch2, Msg1 Worker2 Ch2, Msg2 Channels Ch3, Msg1 Ch1,… Ch2,… 1. Dequeue DelCh1 and start delete 2. Fails after deleting Ch1 and Msg1 3. DelCh1 is visible again 4. Dequeue DelCh1 again 5. Repeat delete operations
  • 46. Table Summary Windows Azure tables are Massively Scalable Highly Available Simple familiar API Use .NET –- ADO.NET Data Services and LINQ Or use REST Leverage your .NET expertise
  • 47. Learning Windows Azure www.windowsazure.com http://channel9.msdn.com/learn Download the SDK You don’t need cloud access to develop! Look at the samples in the SDK Windows Azure Platform Training Kit 3 Windows Azure labs Follow the team bloggers
  • 48. Q & A
  • 49. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista 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.