DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Application Modernization and 6 R's
  • Running Legacy SAP Versions on AWS
  • Dynatrace Perform: Day Two
  • 5 DevOps Tools To Add to Your Stack in 2022

Trending

  • My LLM Journey as a Software Engineer Exploring a New Domain
  • Breaking Bottlenecks: Applying the Theory of Constraints to Software Development
  • Hybrid Cloud vs Multi-Cloud: Choosing the Right Strategy for AI Scalability and Security
  • AI’s Role in Everyday Development
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. How SaaS Tenanted Deployments Would Look Without Automation

How SaaS Tenanted Deployments Would Look Without Automation

In this post, we'll ask what tenanted deployments for Software as a Service (SaaS) applications look like with manual processes and more!

By 
Andy Corrigan user avatar
Andy Corrigan
·
Oct. 09, 23 · Opinion
Likes (2)
Comment
Save
Tweet
Share
2.0K Views

Join the DZone community and get the full member experience.

Join For Free

Continuous Integration and Continuous Delivery's recommendation of deployment automation is hugely important for large organizations with complex software. That's especially true for multi-tenancy software delivered with tenanted deployments.

But what if we didn't have deployment automation? How would tenanted deployments even work?

In this, the second of a trio of posts, I ask what tenanted deployments for Software as a Service (SaaS) applications look like with manual processes.

A Common SaaS Tenanted Deployment Scenario

You work for an organization that makes a SaaS timekeeping application for schools to arrange assemblies and other events. School administrators access the software through a web browser.

Schools can also:

  • Tailor the application from a selection of additional features.
  • Customize your software's look and feel to their school's branding.

How the Deployments Would Work Without Automation

SaaS providers would have the following things to consider without deployment automation.

Infrastructure Becomes a Bigger Consideration

As a SaaS provider, you worry about how to host and update your software so your customers don't need to.

To host the software, you have a couple of options. The most likely choice in 2023 is hosting your app with a cloud provider. You would give each customer either:

  • A piece of your infrastructure shared with but isolated from, your other customers.
  • Their own cloud infrastructure under your ownership and management.

Each customer in this scenario is a 'tenant.'

There are countless methods and cloud options to deliver software, from virtual machines to containers. Your choice must best balance the needs of your application, customers, and organization.

An alternative to the cloud is hosting your application on physical hardware on your premises or at a server farm. Due to hardware costs, the space needed, and the difficulty of scale, that's unlikely these days.

Unlikelier still is keeping hardware at your customers' locations, which wasn't unheard of before SaaS as we know it now. In this scenario, you'd need to install a server or computer in every school that signs up for your software.

Given physical hardware options are rare for a modern SaaS model, we won't spend much time on it here. It's safe to say, that without automation, physical hosting causes deployment problems most SaaS providers don't even think about. If you use the cloud, you'll never have the same travel headaches we mentioned in the previous post about global tenanted deployments, for example.

But while infrastructure setup isn't strictly part of the deployment, it's important to talk about for SaaS deployments. With the cloud, setting up new customers and deploying your software universally involves creating infrastructure that wouldn't exist otherwise.

Plus, if you ship your software with containers, to deploy updates is to tear down the infrastructure hosting your app and replace it with new infrastructure. That's to say, SaaS providers can largely consider infrastructure as part of their deployment process.

Manually and repeatedly setting up cloud infrastructure is a pain. Major providers don't only offer multiple hosting options but also multiple versions of those options. When setting up a new customer, you navigate countless menus and select from jargon-described boxes. It's a time-consuming task made worse when your business scales.

There's a lot of technical risk, too. You might make a setup mistake that doesn't affect your software right away but might limit you later. A concentration lapse could cause performance problems your other customers might not experience. Choosing a similar but wrong option might also see you pay more on infrastructure for one customer than another.

A good deployment tool, however, can take care of the infrastructure set up for you and help standardize your environments.

Scale Becomes Both a Blessing and a Curse

The biggest problem for SaaS applications is also what you want the most: scale.

Strike gold and build a popular app, and you could quickly find yourself inundated with new customers. In the early days, your software could serve just five to ten schools, but at any stage, you could get swamped if word gets around.

What if your product attracts the attention of state or national education departments? That could be your golden ticket, but it also means thousands of new tenants to create and support.

SaaS software can go from tens to thousands of customers very fast. That's absolutely what you want, but your methods for growth need to be sustainable, and the deployment process is where things can fail. Your team processes, infrastructure, and deployment strategies must be able to scale.

With deployment automation, scaling is simpler, and costs are easier to control against your profit margin. Without it? Not only does time spent creating infrastructure balloon, but updates for existing customers could also become impossible.

The Result

Though the challenges differ slightly from the previous post about global tenanted deployments, the results are largely the same. Without deployment automation, whatever update strategy you pick will result in:

  • Much slower software delivery: bad for bug or vulnerability fixing and delivering new features.
  • A higher risk of technical problems: bad for customer relations.

And in this scenario, where your customer base could expand rapidly, you can't really afford either.

Thankfully, deployment automation does exist. 

Happy deployments!

Infrastructure SaaS Software application Cloud Host (Unix)

Published at DZone with permission of Andy Corrigan. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Application Modernization and 6 R's
  • Running Legacy SAP Versions on AWS
  • Dynatrace Perform: Day Two
  • 5 DevOps Tools To Add to Your Stack in 2022

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!