Monday, 1 May 2017

What You Need to Know About Developing an App in the Cloud

Cloud computing is quickly revolutionizing the enterprise with the many competitive advantages it offers, especially when dealing with mobile application development. From the risks and benefits to the actual development, here’s what you need to know to develop an app in the cloud.

Do I Need to Adopt Cloud Computing?

Before we go into specifics, let’s focus on what cloud computing actually is. The National Institute of Standards and Technology (NIST), from the US Department of Commerce, defines cloud computing as consisting of five characteristics, summarized below:

1. On-demand Self-service: consumers can unilaterally provision computing capabilities automatically, without requiring human interaction
2. Broad Network Access: computing capabilities are available over a network and can be accessed through standard mechanisms, such as mobile phones, tablets, laptops, etc.
3. Resource Pooling: the provider’s computing resources (e.g., storage, processing, memory and network bandwidth) are pooled to serve multiple consumers
4. Rapid Elasticity: computing capabilities can be scaled rapidly outward and inward, in some cases automatically, commensurated with demand
5. Measured Service: cloud systems automatically control and optimize resource use, which can be monitored, controlled and reported, providing transparency for both the provider and consumer

The topic in question now becomes, should you adopt cloud computing for your enterprise? In short, yes. As a matter of fact, estimates by the International Data Corporation (IDC) suggest that spending on public cloud computing will increase by 24.4% in 2017. Here’s why:

Benefits of Cloud Adoption

Developing and maintaining mobile apps in the cloud offers the advantages needed to survive and thrive in the competitive enterprise environment. Our focus being mobile applications, let’s start with mobility, and similarly, availability.
Because of its ubiquitous nature, information stored on the cloud can be accessed anywhere and at any time. This results in greatly increased productivity, as the limitations of time and space are eliminated and replaced with the ability for an enterprise’s employees to work even when not at work, as long as there’s an Internet connection.

                                                              Image Source:

Also due to its ubiquitousness, the cloud offers the much needed flexibility to quickly respond to market changes and deploy and maintain mobile apps almost instantly. If a problem arises within your mobile apps, you can quickly asses the issue, make an update, and deploy them to all your employees, quickly and efficiently.

One final benefit we’ll discuss today is the scalability to adapt to any changes in demand, whether positive or negative. As an enterprise, one of your goals is to grow. As such, you want to access the resources you need, when you need them. And thanks to the cloud, you can do just that.

Risks of Cloud Adoption

We can’t discuss the benefits of cloud adoption without touching on the risks (even if small). Far and wide, the biggest and most expressed risk is security. Partly due to the lack of control over the physical infrastructure that houses the actual information on the cloud, security breaches are a real concern, especially when dealing with public cloud services.

A second risk posed by the cloud is unplanned downtime. The fact is that nothing is perfect, not even the cloud, and unexpected outages can happen in the most inopportune times. Depending on the industry and business, this can be as benign as not being able to load a picture, or as detrimental as losing money if you’re running an ecommerce business. This is why you have to plan for outages. Come up with multiple plans, test them out, and modify them as you go.

Mobile Application Development in the Cloud

Now for the actual development. Brought to you by Cloud Technology Partners and the Doppler, and summarized below, here are five steps to build a cloud-ready application architecture:

1: Design the Application as a Collection of Services
APIs (application programming interface) are resources or tools used to develop applications, and when it comes to the cloud, it’s best to deploy applications as a collections of APIs.

2: Decouple the Data
As opposed to tightly coupled data, decoupled data is better suited for the cloud because you can store and process it on any public or private cloud instance.

3: Consider Communications Between Application Components
When designing your application, make sure to optimize communication so that your application’s components aren’t constantly communicating, as this is not desirable and can lead to poor performance and delays.

4: Model and Design for Performance and Scaling
This one’s quite evident because we briefly discussed the scalability that’s enabled by the cloud. Elaborating, make sure to design your application so that it can handle unexpected heavy loads in traffic.

5: Make Security Systemic within the Application
Given the importance of security, it’s best to design and build the application’s security directly into its architecture.

Concluding Thoughts

Although embarking on cloud-based mobile application development has its share of pros and cons, in the long run, the cons are effectively negligent when compared to the opportunity costs of doing otherwise. Do your research, plan everything out, and good luck!