Architecture for the cloud; Tips to build and deploy your cloud based applications

on Friday, 12 April 2013. Posted in Enterprise Software , Featured, Solution & Business Architecture, Enterprise Architecture

Architecture for the cloud; Tips to build and deploy your cloud based applications

The cloud and cloud-based solutions are here to stay. This will continue to drive business solutions for a long time. Why? Clear and measurable benefits below i believe are the top 4 reasons :

1- Almost zero upfront infrastructure investment

2- Just-in-time Infrastructure

3- More efficient resource utilization

4- The possibility of usage-based costing on your back office applications

Cloud is a disruptive force. However, the cloud’s “Achilles heel” is a lack of integration with the rest of the enterprise. Realizing its full potential relies, for the foreseeable future, on integrating data in the cloud with on-premise applications and databases.

Today’s enterprise cloud initiatives require decoupled data systems working together , without the need for personnel and other resources to set up and maintain them , making integration key to a successful deployment.

Most companies cannot and will not abandon their previous IT investments to make the leap to the cloud all at once. Instead, there is more likely to be a gradual shift in business processes to the cloud over time, similar by nature to a perpetual proof of concept.

As the cloud delivers on its promise, more processes will be shifted to this computing model. Complexity and diminished ROI will be the consequence when long-term strategy and goals are not implemented in advance. Put simply: integration needs to be a forefront, not on the afterthought of your project strategy.

Always design for failure, be a pessimist when designing architectures in the cloud; assume things will fail. In other words, always design, implement and deploy for automated recovery from failure.

In particular, assume that your hardware will fail. Assume that outages will occur. Assume that some disaster will strike your application. Assume that you will be slammed with more than the expected number of requests per second some day. Assume that with time your application software will fail too. By being a pessimist, you end up thinking about recovery strategies during design time, which helps in designing an overall system better.

If you realize that things fail over time and incorporate that thinking into your architecture, build mechanisms to handle that failure before disaster strikes to deal with a scalable infrastructure, you will end up creating a fault-tolerant architecture that is optimized for the cloud.

Questions that you need to ask: What happens if a node in your system fails? How do you recognize that failure? How do I replace that node? What kind of scenarios do I have to plan for? What are my single points of failure? If a load balancer is sitting in front of an array of application servers, what if that load balancer fails? If there are master and slaves in your architecture, what if the master node fails? How does the failover occur and how is a new slave instantiated and brought into sync with the master?

Just like designing for hardware failure, you have to also design for software failure.

Below is a baseline to help you consider all the moving parts required to build and deploy your cloud based applications.

 appsconsultantcloudapps

Lastly build process threads that resume on reboot and good cloud architecture should not be impacted to reboots and re-launches.

Like it or not, the cloud is a disruptive force, that i think will require us to move towards a more data centric business model.

Like usual, please share your thoughts and experiences

Comments (9)

  • Matt Cornwall

    Matt Cornwall

    12 April 2013 at 09:34 |
    Nice post, security and integration are important points in building your cloud app.
  • Shilpa

    Shilpa

    12 April 2013 at 10:01 |
    Hi Alex, nice diagram thank you for sharing, I would also add the distance between the end users to the data center can impact the response time dramatically and internet bottlenecks can affect applications availability, should be looked at the beginning.
  • John

    John

    12 April 2013 at 10:19 |
    I just did a cloud audit for a client , and i would add, the data transport between the cloud and your data center should always be secured with an IPsec VPN connection for enterprise applications. so true the importance of being a pessimist when designing for the cloud.
  • Sean Fernandez

    Sean Fernandez

    12 April 2013 at 14:21 |
    Pretty great post, agree with your points. We just completed a cloud deployment we faced some hiccups on testing I recommend you do load testing to determine the ideal instance size and instance count for each server tier of your application. My other worry about Cloud i have been in the industry for 30 years, deployments used to take years now they take months, I hope Cloud provides some opportunities of IT or business jobs in North America for our kids.
  • Johann

    Johann

    12 April 2013 at 16:45 |
    Hi Alex,
    We went live with a back office financial cloud application we forgot to address during the project where is our data. How can you secure your data if you don’t know where it is? Sure, firewalls and intrusion detection and prevention can keep out most intruders, and data encryption keeps the data safer, but how do you know where your data goes when you terminate your service or when the cloud provider goes out of business? Being able to point to a machine and say your data and only your data is on that machine, goes a long way in the security of your data in the cloud. Dedicated hardware is the key that allows for cloud computing services to pass the most stringent security guidelines. At the end we were able to retrace the data but management was not too happy we missed the boat on this activity.
  • Grant Donnelly

    Grant Donnelly

    14 April 2013 at 20:59 |
    We are in the middle of a cloud deployment, the biggest issue we are currently facing is with integration testing, overall agree with your points, your site is filled with good advice, providing mentoring and sharing knowledge, without any strings attached, not too many sites offer a no strings attached approach.
  • Mike

    Mike

    15 April 2013 at 05:11 |
    Another important point not discussed is internal politics, in our organization we had one group controlling all decisions and we fell into groupthink, the project was a disaster under delivered, over budget. My advice don't let a few individuals control decision making, listen to other groups make it into a true enterprise project, not just on paper.
  • Lisa Allen

    Lisa Allen

    15 April 2013 at 21:14 |
    Another big plus for small and medium size businesses, with cloud computing at your disposal, you can run your business ‘on the go.’ Especially know we all have become a google society! article offers excellent points on cloud architecture.
  • Mario

    Mario

    18 April 2013 at 18:04 |
    We just went live with a internal corporate type of private cloud, your points are valid we were too optimistic, had several different type of outages, important to make things redundant good points!

Copyright 2014 Appsconsultant.com. All rights reserved.