Contents Preface xvii EH introducing aoudco.pu.ing 1 Web 2.0 and the Cloud 3 Distinguishing Cloud Types 4 Cloud Deployment Models 5 Cloud Service Models 6 Exploring Uses of the Cloud 9 Introducing Scalability 10 Introducing Virtualization 10 Collecting Processing Power Through Grid Computing 12 Chapter Summary 15 Key Terms 15 Chapter Review 15 BBS Software as a Service (SaaS),7 Getting Started with SaaS 18 Understanding the Multitenant Nature of SaaS Solutions 19 Understanding OpenSaaS Solutions 20 Understanding Mashups 24 Understanding Service-Oriented Architecture (SOA) 26 Chapter Summary 30 Key Terms 30 Chapter Review 30 vii
viii Contents Platform as a Service (PaaS) 31 asmmmmammm IT Evolution Leading to the Cloud 33 Benefits of PaaS Solutions 37 Disadvantages of PaaS Solutions 38 Chapter Summary 41 Key Terms 41 Chapter Review 41 Bffim«yQ Infrastructure as a Service (laas) 43 Understanding laas 44 Improving Performance Through Load Balancing 46 Taking a Closer Look at Load Balancing 47 System and Storage Redundancy 49 Utilizing Cloud-Based NAS Devices 51 Advantages of laas Solutions 53 Server Types Within an laas Solution 54 Chapter Summary 56 Key Terms 56 Chapter Review 56 JBSBSBBH ldentityas a Service ( DaaS) 57 Understanding Single Sign-On (SSO) 58 Understanding How SSO Works 58 Understanding Federated Identity Management 59 Understanding Account Provisioning 60 Understanding OpenID 61 Mobile ID Management 62 Chapter Summary 64 Key Terms 64 Chapter Review 64
Contents ix BUSH Data Storage in the Clo.d 65 Examining the Evolution of Network Storage 65 Understanding Cloud-Based Data Storage 67 Advantages and Disadvantages of Cloud-Based Data Storage 70 Getting Past the Fear of Cloud-Based Data 74 Cloud-Based Backup Systems 76 Understanding File Systems 77 Industry-Specific Cloud-Based Data Storage 78 Cloud-Based Database Solutions 79 Cloud-Based Block Storage 83 Chapter Summary 84 Key Terms 84 Chapter Review 84 WW Collaboration in the Cloud 85 wtmmmmmfflmfflm Collaborating in the Clouds 85 Questions to Ask About Collaborative Tools 86 Web-Based Collaboration Began with Web Mail 87 Instant Messaging Isn't What It Used to Be 88 Cloud-Based Phone and Fax Systems 91 Revisiting File Sharing 93 Editing Shared Files Within the Cloud 93 Collaborating via Web Logs (Blogs) 98 Collaborative Meetings in the Cloud 99 Virtual Presentations and Lectures 101 Using Social Media for Collaboration 102 Using Cloud-Based Calendar Management 104 Using Streaming Video Content to Collaborate 105 Cloud-Based TV Content 105 Chapter Summary 107 Key Terms 107 Chapter Review 107
x Contents BMBMMBpMMBWBBfcMMB illbwhfil Virtualization 109 msmummmmsm Understanding Virtualization 110 The History of Virtualization 110 Leveraging Blade Servers 111 Server Virtualization 113 Desktop Virtualization 116 Desktop Solutions on Demand 118 Virtual Networks 120 Data Storage Virtualization 122 Not All Applications Are Weil Suited for Virtualization 125 Why Virtualize? 125 Chapter Summary 126 Key Terms 126 Chapter Review 126 EH Securing the Coud,27 General Security Advantages of Cloud-Based Solutions 127 Introducing Business Continuity and Disaster Recovery 130 Understanding Data Storage Wiping 131 Understanding Distributed Denial-of-Servicc (DDoS) Attacks 132 Packet Sniffmg 132 Man-in-the-Middle Attack 133 Monitoring Device Screens 134 Malicious Employees 134 Hypervisor Attack 134 Guest-Hopping Attack 135 SQL-Injection Attack 136 Physical Security 138 Chapter Summary 139 Key Terms 139 Chapter Review 139
Contents xi RjffijBMRI Disaster Recovery and Business Continuity ISUUBIJMOMJ! and the Cloud 141 Understanding the Threats 142 Threat: Disk Failure 142 Threat: Power Failure or Disruption 144 Threat: Computer Viruses 147 Threat: Fire 148 Threat: Floods 149 Threat: Disgruntled Employees 149 Threat: Lost Equipment 150 Threat: Desktop Failure 150 Threat: Server Failure 151 Threat: Network Failure 151 Threat: Database System Failure 152 Threat: Phone System Failure 153 Understanding Service-Level Agreements 154 Measuring Business Impact: The Essence of Risk Mitigation 155 Disaster Recovery Plan Template 156 Chapter Summary 159 Key Terms 159 Chapter Review 159 IMHIH Service-Oriented Architecture 161 Understanding Service-Oriented Architecture 161 Web Services Are Not Web Pages 162 Many Companies Provide Web Services 164 Discovering Web Services 164 Understanding Web Service Performance 165 Web Service and Reuse 167 Scaling Web Services 167 Web Services and Loose Coupling 168 Treating a Web Service as a Black Box 168
xii Contents Web Service Interoperability 169 Web Service Description Language 171 Governing Web Services 174 Chapter Summary 175 Key Terms 175 Chapter Review 175 IfflfflRay Managing the Cloud 177 Know Your Service-Level Agreement 177 Ensure and Audit System Backups 179 Know Your System's Data Flow 180 Beware of Vendor Lock-In 181 Source-Code Escrow 182 Determine Technical Support and Help Desk Procedures 183 Determine Training Procedures 183 Know the Provider's Security Policies and Procedures 184 Define the Data Privacy Requirements 185 Know Specifics About the Economics of the Cloud and Return on Investment 186 Monitor Capacity Planning and Scaling Capabilities 188 Monitor Audit-Log Use 188 Solution Testing and Validation 189 Chapter Summary 190 Key Terms 190 Chapter Review 190 Migrating to the Cloud 191 Define the System Goals and Requirements 192 Protect Your Existing Data 193 Use an Experienced Cloud Consultant 194 Know Your Application's Current Characteristics 195 Remember Vendor Lock-In 195
Contents xiii Define Your Training Requirements 196 Establish a Realistic Deployment Schedule 198 Review the Budget Factors 198 Identify IT Governance Issues 199 Understanding Cloud Bursting 200 Chapter Summary 201 Key Terms 201 Chapter Review 201!<ffWrt5a Mobile Cloud Computing 203 Mwmmmmm 1 J The Evolution of Mobile Computing 203 Understanding the G in 3G and AG 204 The Mobile Cloud Ecosystem 205 Introducing the Mobile Players 205 Pages, Apps, and Widgets 207 Revisiting the Role of HTML5 209 Mobile Development Considerations 210 Chapter Summary 215 Key Terms 215 Chapter Review 215 Governing the Cloud 217 Understanding Corporate Governance 218 Understanding Business Strategy 219 Measure What Is Important 219 Inspect What You Expect 220 Understanding Internal Controls 220 Extending Governance to Information Technology 224 Cloud Computing Governance 227 Chapter Summary 230 Key Terms 230 Chapter Review 230
xiv Contents gmh fi Evaluating the Cloud's Business Impact HMBHsftBW and Economics 231 Business Economics 101 233 Total Cost of Ownership 233 Economies ofscale 235 Capital Expenditures 236 Operational Expenses 236 Return on Investment 238 Profit Margins 240 Moore's Law and the Cloud 241 Understanding Right-Sizing 241 Defining a Large Data Center 242 Other Economic Key Performance Indicators 243 Marketing the Cloud 244 Chapter Summary 246 Key Terms 246 Chapter Review 246 RRRfflHy Designing Cloud-Based Solutions 247 Revisit the System Requirements 247 When to Select a Development Environment 248 Design Is a Give-and-Take Process 248 Designing for Accessibility 248 Designing for Audit 250 Designing for Availability 251 Designing for Backup 251 Designing for Existing and Future Capacity 251 Designing for Configuration Management 252 Designing for Deployment 252 Designing for Disaster Recovery 252 Designing for the Environment (Green Computing) 252 Designingfor Interoperability 253 Designingfor Maintainability 253
Contents xv Designingfor Performance 254 Designingfor Price 254 Designingfor Privacy 254 Designingfor Portability 255 Designingfor Recovery 255 Designingfor Reliability 255 Designingfor Response Time 255 Designingfor Robustness 256 Designingfor Security 256 Designingfor Testability 256 Designingfor Usability 256 Chapter Summary 257 Key Terms 257 Chapter Review 257 EfflQRHuj Coding Cloud-Based Applications 259 Creating a Mashup Using Yahoo! Pipes 259 Creating a Simple Yahoo! Pipe 262 Using Google App Engine 266 Creating a Hello, World! Application with Google App Engine 267 Downloading the Google App Engine Software Development Kit... 267 Deploying a Simple Google App Engine Example 267 Creating a More Advanced Google App Engine Application 269 Creating a Windows Azure "Hello, World!" Application 270 Chapter Summary 276 Key Terms 276 Chapter Review 276 BffinnRKI Application Scalability 277 Reviewing the Load-Balancing Process 278 Designing for Scalability 280 Scaling Up, Scaling Out, or Both 280 Minimize Objects on Key Pages 282
xvi Contents Selecting Measurement Points 282 Analyze Your Database Operations 283 Evaluate Your System's Data Logging Requirements 285 Revisit Your Service-Level Agreement 286 Capacity Planning Versus Scalability 286 Scalability and Diminishing Returns 286 Performance Tuning 287 Complication Is the Enemy of Scalability 287 Chapter Summary 289 Key Terms 289 Chapter Review 289 BflHBBHEBl The Future of the Cloud 291 How the Cloud Will Change Operating Systems 293 Location-Aware Applications 294 Intelligent Fabrics, Paints, and More 296 The Future of Cloud TV 298 Future of Cloud-Based Smart Devices 300 Cloud and Mobile 301 HowHTMLS Will Drive Mobile Applications 302 Faster Time to Market for Software Applications 303 Home-Based Cloud Computing 303 Chapter Summary 304 Key Terms 304 Chapter Review 304 Glossary of Key Terms 305 Index 311 Credits 321