Opting for the Cloud is opting for service-oriented Application Development

See AMP Version

The goals that a company approaches the Cloud with may vary of one thousand one manners, such as its effect on Agility, UX, Cost, Scalability, and Reliability; and they will determine how it will implement its Cloud process and now, strongly suggest implementing a service-oriented Application Development.

The very first decision you should make is whether or not, you’ll go for a Private Cloud or a Public Cloud. More precisely, here is an overview of both characteristics to take into account for your applications and services configuration.

Private Cloud

  • Core: services are for the inside, for a variable demand
  • Stable demand: number of users vary minimally
  • Predictable scalability: following business objectives
  • Geo-locus: hardware, software and data located on the premises
  • Self-multiplexing: tasks and resources management predefined by OS & equipment
  • Cost & Competence: DIY, own competencies and cost known

Public Cloud

  • Context: services are for the outside, for a variable demand
  • Variable demand: number of users and demand requests may vary greatly
  • Predictable variation: following cycles like events, launchings, seasons, etc.
  • Geo-dispersion: hardware, software and data distributed across the Cloud
  • Customer-multiplexing: tasks and resources management defined by the Administrator
  • Cost & Competence: Given, competencies supplied and cost determined by number of users and / or volume of requests

 

Service-oriented Application Development in the Cloud

If you’re thinking of moving your application development to the Cloud, here are some issues to address before making the move:

  • First, you have to think in terms of « service » : the Cloud is a service thing, you must now execute a service-oriented application development (Cloud Service), not object-oriented
  • The design of the application needs to be “Cloud-minded”; hence, service-oriented:
    • The application must be “stateless” not “state full” (every request must be self contained, resolve itself on its own)
    • The approach for the design should tend towards micro services or small services in order to be able to scale them, if need be
    • The management of the session variables must be replicable or not use at all
    • The data must be in a Cloud Service like Microsoft Azure or at least be “distributable” in order to accept scalability
    • In most cases, the design should aim at supporting many different clients such as Desktops / Laptops, Tablets, Smartphones etc.
  • All scheduled tasks must be re-architectured since a Cloud Server can’t be scheduled like an on-the-premises server

 

Conclusion

The Cloud offers many advantages but it’s not for every enterprise. Beware of that craving to surf the new wave and even more so regarding large suppliers’ promises; nothing provides better clarity than a cost / benefits analysis before proceeding.

Nevertheless, here are two unmistakeable clues in favor of the Cloud:

  • If, for strategic reasons, your business is opting for a « service » approach to messaging, CRM, accounting, etc., or any other core functionality
  • If you plan or expect important fluctuations, of either growth or cycles of requests volume and / or resource demands

Many companies live and die by the « on the premises » approach, sometimes with good reasons and sometimes not. We shall discuss the reasons, obstacles and prejudices towards the Cloud in the next post.

Denis Paul & Michel

Leave a Reply

Your email address will not be published. Required fields are marked *