Thank you for recommending "Educational, training, and career-development materials for IT and developer professionals, including books, CDs, toolkits, courseware, and eBooks.".
Your recommendation has been successfully processed.
November 15, 2011 03:21 PM
Building Applications in the Cloud: Concepts, Patterns, and Projects
Left Brain
InstantDoc ID #141292
Rating:

(0)
Author: Christopher M. Moyer
Publisher: Addison-Wesley Professional, part of Pearson Education (http://informit.com/aw)
Published: April 2011
Print ISBN 13: 978-0-321-72020-7; ISBN 10: 0-321-72020-2
eBook: ISBN-10: 0-13-210792-9
Formats:
• Paper book, soft cover, 400 pages
• eBook
Prices:
• eBook $25.59
• Paper Book $31.99
• Book + eBook Bundle $43.19
Mastering Cloud Solutions
If, like many other IT professionals, you have recently become both interested in, and fascinated by, cloud applications, then I recommend you read the introductory material in the new book “Building Applications in the Cloud: Concepts, Patterns, and Projects.” The book’s author, Christopher Moyer, has already acquired extensive experience in this relatively new field of technology. In his current position of Vice President of Technology for Newstex, LLC, Moyer serves two roles, first, assisting developers to migrate existing systems to the cloud, and second, helping developers to design and create cloud applications that “were never before possible.” Moyer previously served four years in cloud computing with Amazon Web Services (AWS). In the introduction to his book, Moyer explains that “there are literally hundreds of definitions for cloud computing, and most of them make little to no sense at all to anyone other than the people that originally created them. Most companies call their virtual hosting environments clouds simply because it connotes power, speed, and scalability. In reality, a cloud is little more than a cluster of computational and storage resources that has almost limitless expandability. Most cloud offerings also charge you only by what you use.”
Moyer follows up on his definition of cloud computing by presenting an overview of its evolution, from the days of the mainframe, followed by PCs, and then the fast Internet. But a significant event occurred when, as Moyer says, “Amazon released its concept of cloud computing. The idea of a cloud is almost identical to the distributed processing concept, except it uses dedicated systems instead of employees’ systems to run the processing jobs.” Of course, the other major factor that is heavily influencing the evolution of cloud computing is the ubiquity of mobile devices. Moyer correctly points out that “users want a seamless interaction between their PC and their mobile devices. They don’t want to have two totally different systems, just two different interfaces. They want to pick up right where they left off on their desktop when they move to their laptop or iPad. They want to have everything synced automatically for them without having to copy files. They also want to have offline support so that when they go into one of those pesky areas where there’s no AT&T coverage, they can still continue to work, and the system will simply sync the tasks when it can.” Moyer stresses that “these are all things that every developer needs to be thinking about when designing their systems.”
It is also essential to know how cloud based development differs from other sorts of application development. Moyer suggests that “unlike server-based application development, cloud-based application development is focused on splitting the two things that every application needs: computer power and data storage.” He regards “the most important thing to remember when developing a cloud-based application is that failure is inevitable. Instead of spending hours trying to figure out why something failed, just replace it. It usually takes only about a minute to launch a new server, and if you’ve built everything properly, there won’t be any data loss and little impact, if any, from the outside world.” The other good news, according to Moyer, is that “if you have experience developing cluster-based applications, you already have a good start to move to the cloud. The main difference between developing with cluster-based applications and cloud-based applications is using existing systems instead of building your own. For example, you may have already built your own proxy system, but many cloud providers offer their own solutions, which will cost you less and require much less maintenance work.”
Moyer concludes his introduction to cloud computing with two topics of interest to all “would be cloud practitioners”, namely, the pitfalls to avoid, and how to get started in the cloud. For example, a major danger to be aware of with cloud computing lies in perception, with Moyer warning that “as soon as people hear they can put their application “in the cloud”, they assume the application is now simply infallible, super scalable, and will easily adapt and save money. Just because your application is running in the cloud doesn’t make it scalable or infallible. You need to actually build your application around the cloud to take the full advantages it has to offer. Most cloud offerings use commodity hardware in a clustered fashion; it’s exactly as likely to fail as any desktop put under the same pressure. Get ready for failures. The goal of cloud computing isn’t to avoid failures but to be prepared and recover from them.”
The bulk of the content of the book is divided between three major parts respectively devoted to concepts; patterns; and projects. Moyer strongly recommends that the first part of his book should be regarded as mandatory reading as it provides a basic understanding of the concepts underlying cloud computing. The first chapter in this part of the book covers the fundamentals of cloud services, while the second chapter discusses a basic set of instructions needed to provide “Software as a Service” (SaaS). [Note: this particular chapter is available online as a sample chapter from the Web site of the book’s publisher, Addison-Wesley Professional.] The third chapter contains specific examples of three cloud service providers: Amazon Web Services; Google Cloud; and Rackspace Cloud.
Moyer has written the second part of his book to act as a reference manual in which he “provides you with a problem and the pattern that solves that problem.” He summarizes the content of each of the four chapters comprising this part of the book as follows:
1. “Designing an image – includes basic patterns for use in building your basic image that is the basis for the rest of your application.”
2. “Designing an architecture – includes the patterns used for interacting with external systems, not systems offered by your cloud provider.”
3. “Executing actions on data – includes the patterns used to execute code segments against your data.
4. “Clustering – includes the patterns used within a basic framework designed to take advantage of multiserver deployments.”
The third and final part of the book, comprised of a couple of chapters, is concerned with two real world applications that reflect the theory and strategies as previously presented in the book. The first of the chapters investigates building a simple weblog from scratch, not using any existing frameworks. And the second chapter looks at the steps involved in building a weblog using the Marajo cloud-based Web framework (Marajo is Moyer’s own creation of an open source cloud development framework that resulted from his own research and development work).
In summing up, current developers of cloud applications, as well as those IT professionals wishing to move into this burgeoning area of the software industry, are the ones who will benefit the most from reading “Building Applications in the Cloud: Concepts, Patterns, and Projects.” As Moyer himself says, “If you’re not a developer, you probably would be better suited to using a third party to manage your cloud.”
Finally, if you do decide to read the book, what is the best way of tackling it? Reading it all the way through sequentially, from front to back? Or maybe just dipping into a chapter or two here and there on an irregular basis? I personally believe that it is the authors themselves of technical books who are the best judges of how their books should be read. In Moyer’s case, he firmly states that his “book isn’t designed as a tutorial to be read through from cover to cover. It’s not a guide for how to build an application for the cloud, but instead it’s designed as a reference point for when you have specific questions. When your boss hands you a new project and tells you to make it scale, check the patterns discussed in this book to see what fits. When you work on a project and you find a specific problem that you don’t know how to handle, pick up this book. If you’re trying to start on a new project, and you have a perfect idea, but you don’t know how to scale it, pick up this book. If you’re trying to modify an existing project to scale in the cloud, pick up this book. If you don’t know what kinds of applications you can build with cloud computing, pick up this book.”
Moyer’s approach for reading his book is one that I wholeheartedly endorse.
One last point. In the "Extras" section for this particular book on its publisher's site (www.informit.com/store/product.aspx?isbn=9780321720207), there is a related article titled “Cloud Computing Conundrum: An Interview with Chris Moyer.”
Related Content: