“O clouds, unfold!”
–William Blake, “Milton,” preface
These days, it’s all about the cloud, many people insist.
Somewhere out there in “the cloud” are the servers and programs that you are now using — or soon will be. Much of your data already is out there, too, and more will be.
But where, exactly? Why, floating in “the cloud,” of course.
“You don’t know where, and more importantly, you don’t care; there’s absolutely no reason for you to care,” insists Mark C. Chu-Carroll, a Google software engineer who has worked on programming languages and software development tools for nearly 20 years.
These “don’t care” and “it’s all in the cloud” notions expressed in Chu-Carroll’s well-written new book may make many long-time computer programmers nervous. This could be particularly true if you have spent a long time working with, and trying to secure the data on, personal computers or corporate networks of computers.
In the brave, new, vaporous world of cloud computing, there are almost no boundaries anymore. And many of the limitations and weaknesses of hardware, software and security can be more easily subdued, we are told.
So, what exactly is the cloud?
At one level, it is many clouds. You can think of huge data centers with many computers as individual clouds, and each data storage device within those centers as one water droplet that helps form that cloud. As individual clouds come in contact with each other, they bunch up into one bigger cloud and cover more and more of the sky.
In Mark C. Chu-Carroll’s view, the cloud is “a revolutionary way of thinking about computing; it’s a universe of servers that you can build an application on; it’s a world of services that you can build or that you can use to build other things.”
But when should you, as a programmer, use “the cloud”?
According to the author, “You can write almost any application you want in the cloud. In fact, many people strongly believe that everything should be in the cloud — that there’s no longer any reason to develop applications for standalone computers.”
He does not completely support that view and concedes that the cloud may not be “the ideal platform for everything.”
Yet, when programming for the cloud, you can worry a lot less about what operating system you are running, what software you have, what hardware limitations you have and when you will need to do backups or do software and security upgrades.
“If you’re a user of the cloud,” Chu-Carroll writes, you buy access to the application you want and then connect to it from anywhere.” And, when developing for the cloud, “you break things down to basic building blocks, buy those pieces from service providers, and put them together however you want to build a system.”
The cloud likely is here to stay, and it won’t be dissipating soon, just getting bigger. So, computer programmers of all types and persuasions need to pay close attention. It likely will become an increasingly important element in hiring and in securing contract work.
Mark C. Chu-Carroll’s Code in the Cloud can give you a solid introduction to cloud computing and also get you up to speed quickly on how to program applications using the Google App Engine. It starts out at the beginner’s level using Python and the Google App Engine to create a first, simple app. Then it moves quickly to Java and advanced Google App Engine topics.
This 306-page book is a new entry in O’Reilly’s popular “The Pragmatic Programmer” series. Here is its section and chapter lineup:
Section I – Getting Started with the Google App Engine
– Chapter 1: Introduction
– Chapter 2: Getting Started
Section II – Programming Google App Engine with Python
– Chapter 3: A First Real Cloud Application
– Chapter 4: Managing Data in the Cloud
– Chapter 5: Google App Engine Services for Login Authentication
– Chapter 6: Organizing Code: Separating UI and Logic
– Chapter 7: Making the UI Pretty: Templates and CSS
– Chapter 8: Getting Interactive
Section III – Programming Google App Engine with Java
– Chapter 9: Google App Engine and Java
– Chapter 10: Managing Server-Side Data
– Chapter 11: Building User Interfaces in Java
– Chapter 12: Building the Server Side of a Java Application
Section IV – Advanced Googe App Engine
– Chapter 13: Advanced Datastore: Property Types
– Chapter 14: Advanced Datastore: Queries and Indices
– Chapter 15: Google App Engine Services
– Chapter 16: Server Computing in the Cloud
– Chapter 17: Security in App Engine Services
– Chapter 18: Administering Your App Engine Deployment
– Chapter 19: Wrapping Up
A good index is included that enhances the book’s organization and ease of use.
Code in the Cloud does an excellent job of explaining what a cloud service is and how it is different from traditional applications. Cloud applications are easily scalable. You can program a cloud app that works only for one user on one computer. Or your app can be used by many millions of users who can access it, via the cloud, from thousands of computers. If you build applications for people who work together online, “[c]ollaboration is the cloud’s natural niche,” the author says.
Mark C. Chu-Carroll shows you: (1) how to build applications as a cloud service; (2) how to employ the App Engine to manage persistent data in the cloud; (3) how to create dynamic and interactive user interfaces that will run in Web browers; (4) how to interact with other services available in the App Engine cloud; and (5) how to maintain and manage security in cloud-based Web applications.
With this book in your programmer’s library, you will not — to badly misquote the poet William Wordsworth — be left wandering lonely, outside the Google App Engine’s share of the cloud.
– Si Dunn