Cloud computing - A Hands-On Approach is written as a textbook on cloud computing for educational programs at colleges and universities, and also for cloud service providers who may be interested in offering a broader perspective of cloud computing to accompany their own customer and developer training programs.
The typical reader is expected to have completed a couple of courses in programming using traditional high-level languages at the college-level, and is either a senior or a beginning graduate student in one of the science, technology, engineering or mathematics (STEM) fields. We have tried to write a comprehensive book that transfers knowledge through an immersive "hands on" approach, where the reader is provided the necessary guidance and knowledge to develop working code for real-world cloud applications. Concurrent development of practical applications that accompanies traditional instructional material within the book further enhances the learning process, in our opinion.
Organizationally, the book is organized into 3 main parts, comprising of a total of 13 chapters. Part I covers basic technologies that form the foundations of cloud computing. These include topics such as virtualization, load balancing, scalability & elasticity, deployment, replication. Real-world examples of cloud-based services and their characteristics are described.
Part II introduces the reader to the programming aspects of cloud computing with a view towards rapid prototyping complex applications. We chose Python as the primary programming language for this book, and an introduction to Python is also included within the text to bring readers to a common level of expertise. We also describe packages and frameworks for Python that allows rapid prototyping of practical cloud applications. Reference architectures for different classes of cloud applications, including e-Commerce, Business-to-Business, Banking, Retail and Social Networking in the context of commonly used design methodologies are examined in detail. Other languages, besides Python, may also be easily used within the methodology outlined in this book.
Part III introduces the reader to specialized aspects of cloud computing including cloud application benchmarking, multimedia cloud applications, cloud security and big data analytics. Case studies on the applications of the cloud in industry, healthcare, transportation systems, smart grids, and education are provided.
Through generous use of hundreds of figures and tested code samples, we have attempted to provide a rigorous "no hype" guide to cloud computing. It is expected that diligent readers of this book can use these exercises to develop their own applications on cloud platforms, such as those from Amazon Web Services, Google Cloud, and Microsoft's Windows Azure. Review questions and exercises are provided at the end of each chapter so that the readers (students or instructors) can improve their understanding of the technologies conveyed. We adopted an informal approach to describing well-known concepts primarily because these topics are covered well in existing textbooks, and our focus instead is on getting the reader firmly on track to developing robust cloud applications as opposed to more theory.