“In the future, all software will be delivered in the cloud.” – Marc Benioff, the CEO of Salesforce and often thought of as the “father” of the software as a service (SaaS) model, said this in 2011. It’s easy now to look back and agree with Benioff, but in the early days of software delivered through the cloud, there were plenty of skeptics. Benioff’s old boss at Oracle, Larry Ellison, even received significant flack for what many people interpreted as “anti-cloud” comments.
More than two decades after the launch of Salesforce, the cloud has become the distribution model of choice for the world’s leading software companies. Legacy giants like Cisco and even Oracle have successfully embraced a SaaS model, and cloud-native startups have thrived. This is because the SaaS model provides significant benefits for both the vendor and the customer—the chief benefit being speed. It’s often faster (and can be less expensive) to build, deploy, ship, and install software delivered through the cloud.
The cloud revolution has led to the golden age of software and has enabled massive disruptions across many industries—think Uber, Amazon, and Netflix. The global market for software has already reached nearly $600 billion every year and will continue to grow exponentially. Cloud-native applications like Zoom, Trello, Slack, ServiceNow, and Workday have become some of the most popular on the market. These innovations, which have completely changed the way we work and live, wouldn’t be possible without the cloud and the SaaS model. The large cloud providers have also thrived, as the world now relies on AWS and Azure to run and maintain their infrastructure. An endless stream of data moves through these companies every second to make sure we can all be productive and efficient while accessing applications and company data from anywhere.
“Why, then, can one desire too much of a good thing?”—William Shakespeare
Though we all wish this was the happy ending of the cloud story and we could go on our merry way enjoying our cloud services as we drift away into a never-ending SaaS-enabled paradise, this is sadly not the case. In recent years, we’ve seen there are significant drawbacks with the move to the cloud, and these drawbacks have made life sometimes miserable for the people who manage these environments. This is particularly true for developers.
The cloud has enabled faster software development, including by microservices to easily add functionalities and build more complex applications. This means generally faster service delivery and optimised performance. But at the same time, the problem with increasingly complex architectures is they are, well, more complex. Though building applications in the cloud is faster, managing them is difficult. And the applications are just one part of the story. The organisation’s full stack is made up of numerous databases, networks, infrastructures, cloud services, and more. These complex architectures can often make troubleshooting issues for developers incredibly difficult.
Just as a pouring rain can bring relief to a parched valley in one moment but in the next turn into a deadly flood, it’s possible to have too much of a good thing. As many developers have learned during the shift left of operations, the sometimes hundreds of microservices making a build so much easier have become a headache to manage.
With DevOps teams managing increasingly complex software stacks, often relying on multiple cloud service providers, and accessing data both in the cloud and on-premises, the operational side of the job takes a significant amount of time for DevOps teams. Keeping applications running while delivering optimal digital experience to end users becomes harder, all while their bosses breathe down their neck about when they can ship an important service update necessary to beat the competition.
The result is an extremely overworked and (probably understaffed) DevOps team bogged down and no longer able to innovate in the same way as before. Read every site reliability engineering (SRE) survey report out there, and you’ll see this toil is one of the top issues facing DevOps today. Suddenly, the SaaS model can look a lot like a liability rather than an asset supporting product development.
“The real voyage of discovery consists not in seeking new landscapes but in having new eyes.”—Marcel Proust
So, what is our poor DevOps team to do? Thankfully, there’s a solution (ironically in SaaS form) capable of giving DevOps “new” eyes to gain more visibility into their applications.
By shifting from reactive application monitoring, which often only tells you when there’s a problem, to proactive observability with actionable insights needed to identify and remediate issues, DevOps teams can take one step closer to reaching SaaS paradise.
True observability empowers DevOps teams to achieve optimal performance and superior user experience, regardless of the complexity of the application architecture. This end-to-end oversight of service delivery and component dependencies allows the DevOps team to finally turn back to the critical projects their bosses have been hounding them about.
In addition to better service visibility and oversight, observability enables Dev teams to innovate faster through live code profiling to see potential user issues or performance bottlenecks before code is shipped. This means better applications delivered faster with less downtime or performance issues experienced by the user.
Benioff also said, “The only constant in the technology industry is change.” The improvements in application development made possible by the cloud aren’t the beginning and aren’t the end. Rather, this is another step on the infinite road of innovation—a road we can make smoother and straighter through observability.
Discussion about this post