DEV Community

Cover image for IBM Cloud Deployment 4 Ways
IBM Developer

IBM Cloud Deployment 4 Ways

Jenna Ritten
Jenna left Detroit to attend Dev Bootcamp San Francisco to learn full-stack web development before joining IBM as part of the Tech Re-Entry program. She advocates for underrepresented people in tech.
・8 min read

Welcome back to Tutorial Tuesday!

This week we'll be exploring cloud and hybrid deployment models, and we'll take a look at the IBM products and offerings associated with each one. If you're new to cloud computing, you might have been put off by the overbearing amount of acronyms used. Just about everything is sold as a service (aaS) these days, even transportation.

Alt Text

To clarify some of the deployment models, let’s have a look at some of these aaS acronyms. IaaS is Infrastructure-as-a-Service, PaaS is Platform-as-a-Service, CaaS is Containers-as-a-Service, and FaaS is Serverless, which is also known as Function-as-a-Service.

When trying to decide which of these offerings is best suited for you, one (not incredibly helpful) way to look at it is: how much money do you have to spend?

Infrastructure-as-a-Service (IaaS)

Infrastructure-as-a-Service (IaaS) is a type of cloud computing that lets you allocate your compute, network, storage and security resources on demand. The IBM Cloud approach to IaaS lets you scale and shrink resources as needed around the world in more than 60 data centers.

Get access to the full stack of compute, down to the bare metal. Get more control. Customize hardware to your exact specifications to meet the precise demands of your workload.

IBM IaaS Products & Offerings : IBM Cloud Virtual Server for VPC (Virtual Private Cloud), and IBM Cloud Bare Metal Servers (Classic Infrastructure)

Pros to IaaS:

Accelerate Performance
     Deploy an IaaS bare metal server, a virtual server or both in minutes.

Integrate with Your Systems
     Take advantage of our services being integrated to optimize performance.

Employ Enterprise-Grade Hardware
     Select from more than bare metal and virtual, including SAP-certified infrastructure.

Extend Your On-Premises Data Centers
     Create, deploy and manage servers on their own or in a hybrid cloud.

Containers-as-a-Service (CaaS)

Containers are ideal for application modernization and hybrid, multicloud scenarios because they’re lightweight and portable. With container services from IBM, built on open source technologies like Kubernetes, you can facilitate and accelerate your journey to the cloud. Use continuous integration and continuous delivery (CI/CD) tools to build and deploy your containerized applications in the cloud.

Orchestrate your containers with a managed Red Hat OpenShift or IBM Cloud Kubernetes service. Address most of your transformation needs with containerized IBM middleware and open source components found in our IBM Cloud Pak solutions.

IBM CaaS Products & Offerings : IBM Cloud Paks for - Data, Business Automation, Watson AIOps, Integration, Network Automation, & Security

Pros to CaaS:

When an application is created in a container, that completed app has everything it needs to run, including dependencies and configuration files. Having portability allows end users to reliably launch applications in different environments and public or private clouds. This portability also grants enterprises a large amount of flexibility, accelerating the development process and making it easier to switch to a different provider or cloud environment.

Highly Efficient and Cost Cutting
Containers don’t need a separate OS and require less resources than a VM. A container often requires only a few dozen megabytes to run, allowing you to run several containers on a single server that would otherwise be used to run a VM. This efficiency coupled with their higher utilization level regarding underlying hardware helps reduce data center costs and bare metal costs.

Containers don’t interact and are somewhat isolated from other containers on the same servers, although they do share the same resources. If an application crashes for one container, other containers can continue to use it without experiencing any technical issues.

The isolation that containers have from one another doubles as a risk-minimizing security feature. If one application is compromised, then its negative effects won’t spread to the other containers.

It’s also simpler to manage your host system. You can quickly launch updates and security patches because containers run application processes in isolation from the operating system and don’t need specific software to run applications. This benefit allows you to speedily launch updates and security patches.

Since they don’t need an OS book, it takes seconds to create, start, replicate or destroy a container. This benefit enables a quick development process, expedites the time to market and operational speed, and makes releasing new versions or software simple, speedier and easier. This acceleration also helps with the customer experience by enabling enterprises and developers to speedily respond to bugs and incorporate new features as soon.

Containers feature the capability for horizontal scaling, allowing end users to incorporate multiple identical containers within the same cluster to scale out. By using smart scaling and running only the containers that you need when you need them, you can dramatically reduce costs and boost your return on investment.

Streamlined Development
Having an effective and efficient development pipeline is an advantage of container-based infrastructure. Containers allow applications to work and run as if built locally, so environmental inconsistencies are eliminated. Removing these inconsistencies helps streamline testing and debugging. This feature also doubles for updating applications, only requiring the developer to take a few moments and modify the configuration file, then generate new containers and delete the previous ones.

Platform-as-a-Service (PaaS)

PaaS, or Platform-as-a-Service, is a cloud computing model that provides customers a complete platform—hardware, software, and infrastructure—for developing, running, and managing applications without the cost, complexity, and inflexibility of building and maintaining that platform on-premises.

The PaaS provider hosts everything—servers, networks, storage, operating system software, databases—at their data center; the customer uses it all for a for a monthly fee based on usage and can purchase more resources on-demand as needed. In this way, PaaS lets your development teams to build, test, deploy, maintain, update, and scale applications (and to innovate in response to market opportunities and threats) much more quickly and less expensively than they could if you had to build out and manage your own on-premises platform.

IBM PaaS Products & Offerings: IBM Cloud Kubernetes Service, IBM Cloud Foundry & Red Hat OpenShift on IBM Cloud

Pros to PaaS:

Faster Time to Market
With PaaS, there’s no need to purchase and install the hardware and software you’ll use to build and maintain your application development platform and no need for development teams to wait while you do this. You simply tap into the cloud service provider’s PaaS resources and begin developing immediately.

Faster, Easier, Less-Risky Adoption of a Wider Range of Resources
PaaS platforms typically include access to a greater variety of choices up and down the application development stack—operating systems, middleware, and databases, and tools such as code libraries and app components—than you can affordably or practically maintain on-premises. It also lets you test new operating systems, languages, and tools without risk—that is, without having to invest in the infrastructure required to run them.

Easy, Cost-Effective Scalability
If an application developed and hosted on-premises starts getting more traffic, you’ll need to purchase more computing, storage, and even network hardware to meet the demand, which you may not be able to do quickly enough and can be wasteful (since you typically purchase more than you need). With PaaS, you can scale on-demand by purchasing just the amount of additional capacity you need.

Lower Costs
Because there’s no infrastructure to build, your upfront costs are lower. Costs are also lower and more predictable because most PaaS providers charge customers based on usage.

Function-as-a-Service or Serverless (FaaS)

FaaS (Function-as-a-Service) is a type of cloud-computing service that allows you to execute code in response to events without the complex infrastructure typically associated with building and launching microservices applications.

Hosting a software application on the internet typically requires provisioning and managing a virtual or physical server and managing an operating system and web server hosting processes. With FaaS, the physical hardware, virtual machine operating system, and web server software management are all handled automatically by your cloud service provider. This allows you to focus solely on individual functions in your application code.

Serverless and Functions-as-a-Service (FaaS) are often conflated with one another but the truth is that FaaS is actually a subset of serverless. Serverless is focused on any service category, be it compute, storage, database, messaging, api gateways, etc. where configuration, management, and billing of servers are invisible to the end user. FaaS, on the other hand, while perhaps the most central technology in serverless architectures, is focused on the event-driven computing paradigm wherein application code, or containers, only run in response to events or requests.

IBM FaaS Products & Offerings: IBM Cloud Functions, IBM Cloudant & IBM Cloud Code Engine

Pros to FaaS:

Focus More On Code, Not Infrastructure
With FaaS, you can divide the server into functions that can be scaled automatically and independently so you don’t have to manage infrastructure. This allows you to focus on the app code and can dramatically reduce time-to-market.

Pay Only for the Resources You Use, When You Use Them
With FaaS, you pay only when an action occurs. When the action is done, everything stops—no code runs, no server idles, no costs are incurred. FaaS is, therefore, cost-effective, especially for dynamic workloads or scheduled tasks. FaaS also offers a superior total-cost-of-ownership for high-load scenarios.

Scale Up or Down Automatically, Even to Zero
With FaaS, functions are scaled automatically, independently, and instantaneously, as needed. When demand drops, FaaS automatically scales back down.

Get All the Benefits of Robust Cloud Infrastructure
FaaS offers inherent high availability because it is spread across multiple availability zones per geographic region and can be deployed across any number of regions without incremental costs.

For more information on comparing cloud deployment models and choosing which option is best for you, check out this really great article!
When to use IaaS, FaaS, PaaS, and CaaS

For Hands-On Learning, Register for the Accompanying Workshop!

Journey to the Cloud : IBM Cloud Deployment 4 Ways Workshop
Wed 6/30 @ 2pm PT / 4pm CT / 5pm ET

I hope you all have a very safe and unforgettable Pride! See you next year in-person, I hope!

Connect w Me!

Discussion (0)