The attributes of a cloud based application hint on many of the advantages of cloud based application development. The cloud environment saves money through the minimization of information technology infrastructure operating expense, optimization of server use, shortening of the development cycle and providing the resources for scalability without large capital investments.
Cloud computing has greatly affected information technology over the last decade. According to Readwrite references applications are being “reengineered to take advantage of cloud’s instant access, no download and pay-as-you-go attributes.”
The same Readwrite article enumerates the deficiencies of desktop development environments, which include complicated configuration management, decreased productivity, limited accessibility and poor collaboration. In contrast, the cloud-based workspace is centralized, which facilitates collaboration and communication among developers. The cloud also enhances system efficiency and use, reduces IT maintenance costs, ensures peak processing capability and reduces the complexity associated with delivering programs to multiple platforms and operating systems.
What is a cloud-based application?
Think of cloud computing as similar to a utility infrastructure. The cloud uses shared resources to create economies of scale. This pooling of processing power provides significant advantages for programmers, businesses and users.
The National Institute of Standards and Technology (NIST) defines the following key features of the cloud model:
- on-demand self-service
- broad network access
- resource pooling
- rapid elasticity
- measured service
With on-demand self-service, consumers are able to access processing time and storage without access to a human. The broad network access ensures applications are accessible by phone, tablet, laptop or desktop computers.
Resource pooling is often referenced as multi-tenancy. A service provider may host several companies’data, with geographical location posing little concern. The rapid elasticity facilities peaks in processing and storage requirements without costly investment in infrastructure and associated maintenance costs. Service providers recoup their investment by metering usages and charging the consumers.
As with other development environments, there are also challenges. Some of these challenges include data location, integrity and ownership; security; regulatory compliance and disaster recovery.
Cloud Based Application Development Advantages
Cloud-based applications decrease development time, increase collaboration and minimize the complexity of providing applications to multiple platforms and operating systems.
Most of the cost savings come from reduced infrastructure maintenance costs. However, Paul Krill of InfoWorld cites the biannual Evans Data Cloud Development Survey, which found that cloud platforms decrease development time by 11.6 percent. With the time and cost savings, you’ll be able to stretch your IT staff and budget further.
Popularity and demand
With the popularity and proliferation of mobile devices, the market opportunity for applications is virtually limitless. Fortunately, use of the cloud to deliver these applications greatly decreases the complexity of delivering to various platforms and operating systems through the use of application programming interfaces (APIs).
Cloud Based Application Development Challanges
Evaluating project architecture
It’s important to ensure your project architecture meets all of the criteria for cloud-based applications, including scalability, multi-tenancy and high user load. It is much easier to plan for the increased load before it becomes a reality. Adding capability mid-stream is always an expensive proposition. Here at ISS Art we know how to create the architecture for a project with 35,000 users with 50,000–150,000 queries daily (and approximately 100 of those queries performed simultaneously).
Choosing an appropriate service model
There are three service models for cloud-based applications–Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). It’s easiest to think of these models as layers as shown in the figure below.
Cloud computing has three distinct categories
In,the IaaS model, the service provider is, as the name implies, providing the infrastructure for your applications. This model is ideal if you occasionally need extra data processing space. You only pay for the extra processing space when you need it, which saves you money by right-sizing your processing capability.
More of the management is handed off to the service provider in the PaaS model. You manage your applications and data, and the vendor handles everything else. The advantages of this model include the ability to scale processing (and cost) on demand. Because the service provider maintains the hardware, you’re saved the expense associated with hardware maintenance. In fact, a survey of federal IT executives estimates that using this model for application development can cut costs by $20.5 billion a year.
If you have people to maintain your hardware and your staff needs to work collaboratively, the SaaS model may be your best option. This model allows your users to run programs in the cloud managed by the service provider, which ensures compatibility for your users and reduces licensing costs. This is the model used by many online banking applications.
Ensuring information security
Information security is one of the biggest challenges for cloud-based application development and with good reason. Application vulnerabilities and data breaches can lead to legal and financial liabilities. While SaaS is becoming the primary delivery model for businesses, addressing security concerns are the primary deterrent to using the model. With the SaaS model, your data is stored with that of other businesses and may be replicated on servers in other geographical areas.
To address these concerns, developers must secure product engineering and development and perform routine assessments. Third-party validation through assessments is particularly valuable in allaying typical concerns regarding the use of cloud-based applications.
Information Systems Security provides a good review of the security issues associated with SaaS applications.
To address these concerns, vendors must adequately demonstrate their vigilance with regard to data and network security as well as data segregation.
- Administrators for cloud vendors like Amazon do not have access to customer instances of the application, nor can they log in to the guest operating system.
- Network encryption, such as secure socket layer (SSL) and transport-layer security (TLS) ensure the safe transfer of data within the vendors IT ecosystem and between the vendor and client(s).
- Finally, the burden is on the vendor to ensure data segregation through the used of access control lists (ACLs).
There are several cloud-based application development providers–Amazon, Microsoft, VMWare, Citrix. TechNet named Amazon Web Services (AWS) as the top computing provider for several years, so they are a pretty good example of the support you can expect from a service provider.
Amazon advertises its infrastructure services in five broad categories: compute, storage content and delivery, databases, networking and administration and security.The company also offers options to accelerate your cloud success with tools in these categories: analytics, application services, deployment and management and mobile and devices. To use a transportation analogy, AWS maintains the roads so you can concentrate on driving.
Users of AWS have the advantage of around-the-clock support, It’s like having your own technician on call without the costly overtime. Pricing is reasonable, and AWS has even lowered …yes, lowered…prices 48 times in the last six years (Don’t you wish your cable company worked that way?).
AWS pricing philosophy
Amazon calls its pricing philosophy the “virtuous”circle. More use drives infrastructure investment, which increases the economies of scale, lowering cost for the users.
To sum up, application development in the cloud offers significant economies of scale, reduces development time and simplifies cross-platform integration.
We want to hear about your experiences with cloud-based application development?
Do you have any valuable tips or stories of how it has made your workflow better?
Please share them in the comments below.