Architecting PaaS Solutions
Part 1: Why Create a Platform-as-a-Service (PaaS) Solution?
Part 2: Storage Options with PaaS
Part 3: PaaS Architecting: Designing Apps for the Cloud
Part 4: PaaS Security (coming soon)
We learned a lot as we built our PaaS solution this past year. PaaS has been wonderful, and we thought some of our lessons learned could be great ones to share with you! The perspective we bring is based on our own experiences building Visual Cadence, a powerful set of reports that are derived from your on-premises Team Foundation Server (TFS) data. We have used various practices during this process, including lean/agile software development, short iterations, decoupled architecture, continuous delivery, unit testing, cross-functional teams, and fast feedback.
Azure solves many of the problems we all face. Some of the common problems include: environment provisioning, expensive or non-existent fail-over options for web-applications and networks, costly management, barriers to continuous integration/continuous delivery (CI/CD), and inherent technical debt.
While Azure is not necessarily a silver bullet, it does encourage us to think differently around software architecture. This different mindset helped us create better software, and continues to help us better understand and our customers’ day-to-day development practices and challenges.
Why Create a Platform-as-a-Service (PaaS) Solution?
1. It allows development teams to focus on what they do best – develop.
Azure PaaS is all about your solution – in the cloud. You no longer have to think about service packs, hotfixes, hardware, or managing operating systems. Even configuration of the web servers themselves are dramatically simplified. PaaS enables your development team to focus on building applications by handling the onerous tasks that most development teams are disinterested in. With PaaS, you get to focus on building your web solution.
2. It requires less management overhead.
This is similar to #1. Azure abstracts away the daily operational requirements of managing a web server, the hardware, and the OS. This means a dramatic reduction in system management costs. Azure takes care of the system updates, the hardware maintenance, and the webserver configuration. In addition, you don’t need to worry about hardware upgrades. Azure makes it easy to ‘upgrade’. You move a slider to select the type of disk and performance you’d like. You don’t need to spend money on purchasing new hardware. Microsoft does that for you.
3. It’s more resilient.
In on-premises solutions, you need to construct fairly complex infrastructure to ensure resiliency. Multi-homed NICs, redundant app tiers, and multiple datacenters for fail-over can have significant costs associated with them – both to deploy and manage. Azure takes away the need to create your own datacenter. You can create geo-redundancy with a button click and guarantee amazing uptime
4. It forces you to do better architecting.
Azure can support CI/CD models. With Azure PaaS, you don’t have to have a highly decoupled architecture. However, when you do, you will find yourself with far less technical debt than with complex, deeply coupled applications.
These top four reasons are typically very compelling and generally address pain points for most people. However, there are many additional benefits of PaaS that aren’t addressed in this post. We’d be happy to talk through more of them with you!
While the benefits are great, there is of course a cost involved in moving to a new platform. It’s advisable to create a Proof of Concept before making any jump. This approach allows for a low-cost way to get a concrete sense of what Azure can do for you.
Historically, we have been your partner for ALM processes and tools services. We are excited to become your partner for helping implement cloud-based solutions for your organization!
To explore if PaaS would be a good fit for your upcoming software project, or to kick off a Proof of Concept, contact firstname.lastname@example.org.