Much of the discussion of the cloud stack these days centers on app servers and storage. Whether it’s deploying, monitoring, scaling, making fail-safe or redundant, the base model is one where app servers and storage solutions are the core of the cloud stack. This view is certainly a correct one but it’s only a partial picture and here’s why.
My co-founder, Chad Arimura, and I are cloud developers at heart. When we started working together, we were developing applications for others. Although the cloud was just emerging, we made the fortunate decision to create applications using 100 percent cloud resources. The use of these virtualized resources — namely app servers, NoSQL databases, and object stores — allowed us to quickly build some heavy-duty applications with very small teams. But project after project, it was clear that the core of each app was more than just a set of app servers and data stores.
Even at the onset of building a cloud app — but especially as we needed to grow and scale it — several patterns become clear, 1) all the parts and components of the application needed to be loosely coupled, 2) a lot of processing needed to be offloaded to the background, 3) messages and events needed to be exchanged in ways that were non-blocking and asynchronous, and 4) getting the right flow for the granular pieces — the data and processes — was as important as dealing with the bigger blocks in the architecture.For the rest of the post, go here →.