The Cloud at Your Service The when, how, and why of enterprise cloud computing JOTHY ROSENBERG ARTHUR MATEOS II MANNING Greenwich (74 w. long.)
contents foreword xiii preface xv acknowledgments xvii about this book xix What is cloud computing? 1 1.1 Five main principles that define cloud computing 3 Pooled computing resources 3 Virtualization of compute resources 4 Elasticity as resource demands grow and shrink 5 Au tomation of deployment 5 Metered billing that charges onlyfor what you use 6 new resource 1.2 Benefits that can be garnered from moving to the cloud 6 Economic benefits of the change from capital to opera tional expenses 6» Agility benefits from not having to procure and provision servers 7 * Efficiency benefits that may lead to competitive advantages 7 Security stronger and better in the cloud 8 1.3 Evolution of IT leading to cloud computing 8 Origin of the "cloud" metaphor 8 * Major computingparadigm shifts: mainframes to client-server to web 10 * Housing of physical computing resources: data center evolution 11 * Software componentization and remote access: SOA, virtualization, and SaaS 12
1.4 Classifying cloud layers: different types for different uses 13 Infrastructure as a Service (laas) 15" Platform as a Service (PaaS) 16 Software as a Service (SaaS) and Framework as a Service (FaaS) 16 * Private clouds as precursors of public clouds 16 1.5 Summary 17 Understanding cloud computing classifications 18 2.1 The technological underpinnings of cloud computing 19 Achieving high economies of scale with cloud data centers 19 * Ensuring high server utilization in the cloud with visualization 24 " Controlling remote servers with a cloud API 27 Saving persistent data in cloud storage 29 Storing your application's structured data in a cloud database 30» Elasticity: scalingyour application as demand rises and falls 36 2.2 Understanding the different classifications of clouds 37 Amazon EC2: Infrastructure as a Service 37 * Microsoft Azure: Infrastructure as a Service 39 * Google App Engine: Platform as a Service 42 * on Ruby Rails in a cloud: Platform as a Service 43 " Salesforce. com's Force, com: Platform as a Service 44 Private clouds: Datacenter as a Service (DaaS) 44 2.3 Matching cloud providers to your needs 46 Amazon web services IaaS cloud 46 Microsoft Windows Azure IaaS and * PaaS cloud 47 GoogleApp Engine PaaS cloud 47 * Ruby on Rails PaaS cloud 48 * Force, com PaaS cloud 48 2.4 Summary 49 The business case for cloud computing 50 3.1 The economics of cloud computing 51 Traditional internal IT vs. colocation vs. managed service vs. cloud model 51 A detailed comparison of the cost of deploying in different models 53 3.2 Where does the cloud make sense? 59 Limited lifetime requirement/short-term need 60 Scale variability/volatility 60 Nonstrategic applications/low organizational value 62 3.3 Where does the cloud not make sense? 63 Legacy systems 63 " Applications involving real-time/mission-critical scenarios 63 Applications dealing with confidential data 63
3.4 Zero-capital startups 64 Then and now: setting up shop as startup ca. 2000 vs. startup ca. 2010 64 Is venture capital funding a necessity? 65 ' Example 1: Flight Caster airline flight-delay prediction 66 Example 2: business intelligence SaaS 66 3.5 Small and medium businesses 67 Low-tech example: corporate website 67 Medium-tech example: backup and file-storage systems 68 * High-tech example: new product development 68 3.6 Cloud computing in the enterprise 69 Eli Lilly: large data set, high-compute scenarios 69 Washington Post: deadline-driven, large compute problems 70' Virgin Atlantic: online web presence and community 70 3.7 Summary 71 Security and the private cloud 72 4.1 Information security in the public cloud 73 Security concerns slowing cloud adoption 73 Major cloud data center security 75 Public cloud access control measures 76 Major and data security 80 * Application owner's roles and responsibilities 83 4.2 Rationale for a private cloud 84 cloud network Defining a private cloud 84 ' Security considera tions 85 " Certainty of resource availability 86 Large utility-computing community 87» Economies of scale 87 Some concerns about deploying a private cloud 87 * Private cloud deployment options 88 4.3 A virtual private cloud 92 How it works 92 The API 93 ' ' Implications 94 4.4 Private clouds in practice 95 Sprint: private cloud forfraud detection application 95 * Bechtel Project Services Network (PSN) 96' Government private clouds 96 4.5 The long-term viability of private clouds 98 4.6 Summary 98 Designing and architectingfor cloud scale 100 5.1 High-scale application patterns Transference 101 ' Internet scale 101 ' Burst compute storage 102' Summarizing the application patterns 103 that fit the cloud best 101 102 Elastic
5.2 Designing and architecting for internet scale: sharding 103 Application issues that prevent scaling 104 " Sharding defined: a parallel database architecture for massive scaling 104 How sharding changes an application 107 Sharding in contrast with traditional database architectures 107 Sharding in practice: the most common database partitioning schemes 109' Sharding challenges and problems 112' Sharding in real life: how Flickr's sharding works 113 5.3 Designing for on-demand capacity: cloudbursting 115 Cloudbursling defined 116 The best of both worlds: internal data center plus cloud 116' Cloudbursling business case 117' Cloudbursting architecture 119* A recipefor implementing cloudbursting 120' Cloudbursting: calling out for standards 121 ' The data-access problem with cloudbursting 122 5.4 Designing for exponentially expanding storage 124 Cloud storage defined 124 ' Amazon S3 125 ' Example cloud storage API (using S3) 125' Costs 128' Mountable file systems in the. cloud 128 Addressing the challenging issue of latency 129 5.5 Summary 130 Achieving high reliability at cloud scale 131 6.1 SOA as a precursor to the cloud 132 Distributed systems 132 Loose coupling 133 * SOA 135 * SOA and loose coupling 136' SOA and web services 137" SOA and cloud computing 138 ' Cloud-based interprocess communication 138 6.2 Distributed high-performance cloud reliability 139 Redundancy 140' MapReduce 141 Hadoop: the open source MapReduce 146 6.3 Summary 147 Testing, deployment, and operations in the cloud 148 7.1 Typical software deployments 149 Traditional deployment architecture 149 * Defining staging and testing environments 150 Budget calculations 152 7.2 The cloud to the rescue 152 Improving production operations with the cloud 152 * Accelerating and testing 155 development
9.4 Summary 212 Five main principles ofcloud computing 212 Significant benefits of adopting the cloud 213 Reaching the cloud through an evolutionary process 213 * Cloud classificatio ns from laas to SaaS 213» Technological underpinnings 214 Paying only for what you use 214» Overblown security concerns 214 Private clouds as a temporary phenomenon 215 Designingfor scale and sharding 215 Designing for reliability and MapReduce 215 " Better testing, deployment, and operations in the cloud 216 Choosing a cloud vendor 216 Monitoring public clouds and SLAs 216 The computing 217 future of cloud appendix Information security refresher 218 index 224