Showing posts from August, 2014

Tech - xCloud Architecture (Part 2): It's Elementary My Dear Developer

As I described in my earlier post , every component of the application needs to be in the cloud. Let's now get into the business of identifying the various cloud providers that we want to use. There are several factors to consider. Litany of Choices "When you see a web-based accounting system, the architecture of that system should scream accounting at you." - Uncle Bob . I am going to take a leaf from this quote. An application is always built to deliver a customer feature(s). And, almost always we will have constraints like time, cost, capabilities etc that we need to overcome. This forces us to prioritize the features, accept trade off's and focus on the most important aspects in the application.  The constraints also help us take decisions on Build vs Buy vs Rent. The Build here refers to building a bespoke software, Buy is buying an off the shelf software and Rent is renting a software on the cloud. On a similar note - Less critical feature of the a

Tech - xCloud Architecture: The Beginning (Part 1)

It all started in the spring of 2013 when I came across an article on how Netflix was built on the Amazon cloud. It got me thinking about what is involved in building an entire application on the cloud. For example, what implications does it have on the following - If any, does it have any impact on the application features? What impact does it have on architecture principles? How do engineering practices need to evolve? Does it make it any easier to monitor, administer and support such an application? How does one handle data and security? Lastly, what were the trade-offs? So, I started reading up on the various cloud providers. These ranged from IaaS, PaaS and SaaS providers. I also looked at how organizations were leveraging these providers.  I jotted down a few architecture principles on which to build an entire application in the cloud. All resources, tools and technologies to be based in the cloud. Use a diverse set of cloud providers to test the interoperabil