Cloud Application Development Guide

The cloud is changing the way applications are developed. And it is giving organizations the agility they need to be competitive. But what does this mean, exactly?

In this guide, you’ll find answers to that question and all the others you have about cloud computing. You’ll also get all the details on cloud-native. Plus, you’ll learn how you can successfully embrace the cloud and cloud-native development as part of your digital transformation.

What Is Cloud Computing?

Cloud computing is the on-demand delivery of IT resources via networks, the Internet or web, with a pay-as-you pricing model.

In a modern cloud computing IT organization, applications, servers (physical and virtual), data storage, development tools, networking, and other IT resources are hosted in a remote data center and managed by a cloud provider. In traditional IT, this is all done on-premises by the organization.

What Are the Benefits of Cloud Computing?

  • Scalability
  • Server storage
  • Data security
  • Disaster recovery and backups
  • Cost

  • Scalability: Unlike on-premises software and infrastructure, with cloud computing you can easily scale compute power, storage, and software–up or down–and only pay for what you use.
  • Server storage: Cloud providers manage and maintain the servers. You save money and space compared to on-premise infrastructures, where maintenance is the responsibility of the organization.
  • Data security: Cloud providers offer security, risk management, and monitoring services to protect their users from unauthorized access and breaches.
  • Disaster recovery and backups:Cloud computing includes the automation of backups and disaster recovery options, which enable servers and software to failover to another cloud region or to begin running a backup if needed. In the case of a security breach, backup and recovery storage in different cloud regions ensure that IT organizations don't lose much data (if any at all) and can minimize the downtime for their staff.
  • Cost: Companies can save costs with cloud computing because it frees up staff from maintaining systems. Cloud providers not only handle maintenance, but they set up hardware and software, so you do not carry those costs. Also, you are no longer using electricity for infrastructure and data center power and cooling systems.
idc-futurescape-cta

Cloud Predictions for 2022:
IDC FutureScape

Get your copy

What Are the Cloud Deployment Models?

Once an organization decides to move to the cloud, one of the first decisions it needs to make is which cloud deployment model is better for its business needs.

There are 5 models to choose from:

  • Public
  • Private
  • Hybrid
  • Multi-cloud
  • Community

1. Public Cloud

In a public cloud, your data is stored on a third-party server, and everything from the server infrastructure and resources is managed by the cloud provider. This way, organizations don’t have to worry about buying and maintaining hardware.

Examples of popular public clouds include Amazon Elastic Compute Cloud (also known as Amazon EC2), Microsoft Azure, Google Cloud, and IBM Cloud.

Public Cloud Advantages vs. Disadvantages

Advantages Disadvantages
  • Minimal investment: Get started with a subscription, not a major capital expenditure.
  • Scalability: The cloud provider handles scaling up or down for you.
  • Lower costs: You only pay for what you use.
  • 24/7 availability: The cloud provider ensures your infrastructure is always running, not you.
  • Lack of control: Configurations, server failures, and access to some applications are beyond your control.
  • Data access: You can't see where information is being kept and who has access to it.
  • One-size-fits-all: Public cloud providers can’t always meet unique needs.

2. Private Cloud

In a private cloud, the cloud infrastructure is exclusively operated and accessed by a single organization. In this model, the server can be hosted externally or on-premises and it’s protected by strong firewalls, and gatekept by the organization’s IT department.

Examples of private cloud providers include Amazon, IBM, Cisco, Dell, and Red Hat.

Private Cloud Advantages vs. Disadvantages

Advantages Disadvantages
  • Privacy and security: All data is kept in a private repository, minimizing the data security risks.
  • Control: You own the environment, so you have full control.
  • Legacy system integration: It supports systems that can’t be integrated into a public cloud.
  • Customization: You can tailor it to your business’s specific needs.
  • Cost: You need to invest in hardware, software, and staff to develop and maintain your private cloud.
  • Capacity and scalability caps: Private clouds often have hardware and resource limitations.
  • Vendor lock-in: Changing private cloud vendors is costly and difficult.

3. Hybrid Cloud

A hybrid cloud combines the functionality of a public and private cloud. With this model, an organization can host its most critical data in a private cloud, for example, and less sensitive data in a public one, benefiting from the public cloud’s cost-saving benefits and the security of a private cloud.

Hybrid Cloud Advantages vs. Disadvantages

Advantages Disadvantages
  • Disaster recovery: If your private cloud fails, you can activate your entire environment in the public cloud.
  • Scalability and flexibility: As workloads change, you can use the public cloud to scale.
  • Cost savings: Part of your environment is public cloud, so you can save with pay-as-you-go.
  • Complexity: Setting up a hybrid cloud is complex because you are integrating two or more cloud architectures.
  • Security: Different access levels, networks, and entry points for each environment add security risks.
  • Data latency: Data transfer to the public cloud can be slow, increasing bottlenecks.

4. Multi-Cloud

Multi-cloud is similar to hybrid cloud. Instead of mixing private and public, however, it’s about using multiple public cloud providers to diversify available functionalities.

Advantages Disadvantages
  • Service availability: The chances of multiple providers suffering an outage or downtime are reduced.
  • Diverse functionality: You can choose features that best suit your business from several providers.
  • Lower latency: You can choose the cloud provider that is geographically closer to specific data users, reducing data transfer bottlenecks.
  • Management overload: Monitoring multiple environments complicates operations like backing up data, accessing resources, and operating systems.
  • Need for cloud specialists: The IT specialists that know their way around different cloud platforms are not easy to find (nor cheap).
  • Security: Applications that run on multiple clouds have a larger attack surface, increasing the possibility of a breach.

5. Community Cloud

In a community cloud, the IT resources available in the cloud are accessible by a group of organizations from the same community. Members of this “community” typically share similar security, privacy, performance, and compliance requirements.

Community cloud is in the middle between public and private cloud because it’s not open to the general public, but it’s also not exclusive to just one company. It can be managed internally or by a third-party.

Advantages Disadvantages
  • Cost-effective: The cost and resources are shared among several organizations.
  • Customization: It can be tailored to the requirements of a specific community.
  • Security: data is shared between every organization within the “community,” so companies need to be careful about the data they’re sharing.

What Are the Cloud Service Models?

Cloud providers typically offer three types of services:

  • Infrastructure as a Service (IaaS)
  • Serverless Computing
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)

cloud-guide-cloud-application-development-figure-3

1. Infrastructure as a Service (IaaS)

In an Infrastructure as a Service (IaaS) model, you’re renting the infrastructure of a cloud service. It’s pay-as-you-go for services like servers, storage, networking, and operating systems.

Examples of IaaS are Amazon Elastic Compute Cloud (Amazon EC2), Amazon Simple Storage Service (Amazon S3), and Compute Engine from Google Cloud.

2. Platform as a Service (PaaS)

With Platform as a Service (PaaS), you’re renting a platform that provides you with all the tools you need to develop, test, deliver, and manage applications without having to worry about setting up servers, storage, network, or databases.

Examples of PaaS are AWS Elastic Beanstalk, Heroku, Microsoft Azure, Red Hat OpenShift, and OutSystems.

3. Serverless Computing

Similar to PaaS, in a serverless computing model, the cloud provider takes care of the setup, capacity planning, and server management for development, so that developers focus exclusively on building applications. Unlike with PaaS, serverless applications scale instantly, automatically, and on demand, all without additional configuration.

4. Software as a Service (SaaS)

With Software as a Service (SaaS), you’re renting software programs that are hosted by a third-party provider and available to approved end-users through the Internet.

Examples of SaaS include Slack, MailChimp, and Zendesk.