Cloud Based Software Development

 

The Cloud is like the electricity grid; always there, with unlimited resources on tap

 

The Cloud is a major paradigm shift. Rather than own the infrastructure on which you run your applications, you rent it. Effectively, you use someone else's data centre to run your applications. Like electricity, you only pay for what you use, and let someone else worry about security, backups and all other aspects of running a large data centre.

The most obvious advantage of Cloud Computing is the absence of Capital Expenditure when you are starting new projects. Other advantages are: Speed / Agility, Reliability, Scalability, Security, Bandwidth and Maintenance.

Software Development in the Cloud

 

Large parts of the software development process stay exactly the same. It's still all about web and browser based software development. The Visual Studio environment is the same, and good software architecture principles still apply. You have a full relational database at your fingertips, and run-time environments for all major languages such as .Net, PHP and Java.

The real difference lies in the way you securely interact with applications and users that may lie on either side of your firewalls. Since you have lost control of the physical whereabouts of your Cloud Based applications, all communication needs to be based on standard protocals such as SOAP, XML or REST. You will want to take precautions to ensure you have a local backup of business-critical data and you need to ensure that security is watertight.

Microsoft Azure

 

Objectivity uses the Microsoft Azure platform to offer it's Cloud based offering. Simply put, it consists of 3 components: Windows Azure, SQL Azure and AppFabric. Windows Azure is the operating system; call it Windows Server 2008 R2 in a Cloud environment. SQL Azure is the SQL Server 2008 database in the Cloud.

AppFabric has 2 main components: The Service Bus and Access Control. The Service Bus allows you to easily create and manage secure connections between loosely coupled services and applications. Access Control allows you to build federated authorization into your applications and services, and extend existign identity management systems (such as Active Directory) beyond organizational boundaries.