WBC fellow Jonathan Bartlett’s latest book, Building Scalable PHP Web Applications Using the Cloud, was just released by Apress. He aims to help programmers, starting from the beginning, get their arms (and code) around the cloud technology offered by a variety of vendors.
Bartlett told Mind Matters News that a knowledge of cloud computing is a must for programmers just starting out or changing jobs these days: “Most companies are heading towards cloud computing technology, although few schools focus on it.” He wrote the book in an effort to bridge that gap.
One new issue that the cloud creates is that programmers are more often required to be “full stack” developers. “Not only do they need to know how to program but also how to do system administration as well,” Bartlett explains. “Unfortunately, most programmers coming out of college have little to no system administration experience. That’s why this book is based on the ‘full stack’ concept, showing how system administration and programming relate to each other.
Using the Cloud starts with the basics, such as how to get your first cloud computer up and running, and continues in orderly steps to the advanced, such as how to architect your system and application to maximize scalability. That includes a tour through setting up various components.
Other chapters feature system administration, creating cloned systems, configuring a local caching system, database master/replica setups, infinitely scalable disk storage, security, and writing the PHP code to connect to these different services.
“My book is very tutorial-focused,” says Bartlett. “It gives a single, simple application that gets built in the first chapters, and then walks the programmer a step at a time through various improvements that they can do to make it extremely scalable in cloud environments. By focusing on running a single application through all of the different considerations, I want to make sure that the reader learns the theory and practice combined in a straightforward way.
Tutorials cover several popular cloud vendors, including Linode, Amazon Web Services, and the Google Cloud Platform. Each section gives step-by-step instructions to get up and running, as well as discussions of alternative configurations and their pros and cons.
In response to questions from Mind Matters News, Bartlett explained why he chose the PHP programming language: “PHP was chosen because it is much more straightforward than other programming systems, so it required the least amount of explanation, and is the easiest for programmers in other languages to both understand and adapt the principles to their own programming language. The information can easily applied to any programming language or environment.”
“For instance, I write most of my software in the Ruby on Rails programming system. I could have written a similar book using Ruby on Rails. But, while Ruby on Rails is much more powerful, if you don’t already know how it works, it would take an entire book to get up to speed. PHP is simple enough that any programmer from any programming language should be able to follow it, and see how it would apply to their own programming language.”
Why should programmers learn to think in terms of scalability? Bartlett points out that applications that start small do not always stay small: “Knowing what can be done to scale ahead-of-time helps you to think about how your application design should be modified to leverage future scalability. This book shows how some simple design steps up-front can lead to massive payoffs down the road when your application starts scaling.”
While the book, available in both print and digital formats from Apress and Amazon, uses PHP as the implementation language, the concepts in the book apply to nearly any programming language in use and can be purchased either from the publisher or from Amazon.
Jonathan Bartlett is passionate about better math and science teaching. He the author of Calculus from the Ground Up and he recently proposed a fix in calculus teaching. See “Walter Bradley Center fellow discovers longstanding flaw in an aspect of elementary calculus”: The flaw doesn’t lead directly to wrong answers but it does create confusion.
Here’s the citation: Bartlett, J. L. and A. Z. Khurshudyan. 2019. Extending the Algebraic Manipulability of Differentials. Dynamics of Continuous, Discrete and Impulsive Systems, Series A: Mathematical Analysis. 26(3):217-230. (open access)