Databases Reference
In-Depth Information
Data Encryption
You can encrypt your data in two environments: onsite or in Windows Azure using a service. SQL Database, as
previously mentioned, doesn't support encryption at this time (although hashing is supported). If you need to encrypt
Social Security numbers or phone numbers, you should consider where encryption makes sense.
Generally speaking, unless your application runs in a public environment where your private keys can be at
risk, you should consider encrypting onsite before the data goes over the Internet. But if you need a way to decrypt in
Windows Azure, or you need to encrypt and decrypt data across consumers that don't share keys, you probably need
to encrypt your data in Windows Azure before storing it in SQL Database.
SaaS Applications and Federations
Designing SaaS applications typically requires the use of multiple databases in order to scale both data storage and
performance. In order to build a solid SaaS solution, developers typically develop a custom framework that provides
the connection routing logic needed by an application to determine which database it should connect to.
If you are building a SaaS application, you should investigate the use of Federations, a feature of SQL Database.
Federations help with scalability by distributing data across multiple databases by using administrative SQL
commands. I will review Federations in greater detail in Chapter 11, including how the feature works and some of its
current limitations.
Summary
This chapter reviewed many design concepts that are unique to distributed computing and for which cloud
computing is a natural playground. Remember that designing cloud applications can be as simple as connecting to a
SQL Database instance from your onsite applications or as complex as necessary (with distributed edge caches and
shards) for enterprise-wide systems.
The chapter provided multiple parameters that you should consider when designing your application, each
of which can significantly impact your final design, such as performance, billing, security, storage options, and
throttling. You should consider creating two or more cloud-based designs and reviewing them with other designers
to discuss pros and cons before making your final selection. And if you have the time, build a proof-of-concept to
validate your assumptions and measure how effective the solution will be.
 
Search WWH ::




Custom Search