Conference: Nov 13-15, 2017
Workshops: Nov 16-17, 2017
Presentation: Serverless meets SaaS: The Ultimate Match
Duration
Level:
- Intermediate
Persona:
- Architect
- Developer
Key Takeaways
- Understand technical and business principles that are driving Serverless adoption.
- Explore the natural alignment between the SaaS and Serverless models.
- Gain insights into the architectural considerations and principles associated with Serverless development.
Abstract
In this session, we’ll dig into the architecture and design strategies associated with building and delivering SaaS solutions in a serverless model.
The emergence of serverless infrastructure and services represents a fundamental shift in how we approach application design, scale, and management. This is especially relevant in the world of SaaS where efficiency and responsive, dynamic scaling can be essential to the success of a SaaS business.
We’ll examine how serverless SaaS will touch every dimension of your environment, including DevOps, analytics, management & monitoring, and developer experience.
Interview
Tod: I am a partner solutions architect at AWS focused on SaaS. That essentially means that I work directly with AWS partners who are building and delivering SaaS solutions on AWS. My role is to provide insights on SaaS architecture patterns, solutions , frameworks and guide adoption of SaaS best practices on the AWS stack. That includes blogging, writing white papers, creating reference architectures, and building proof of concept solutions. I also speak at conferences and do anything I can to help the SaaS ecosystem.
Tod: I spend a lot of time working with teams that are designing and building SaaS solutions. These teams are always looking for new models for improving the uptime and agility of their applications. For some SaaS developers this created a shift toward microservices and container-based solutions. This ability to decompose their solutions into smaller units of work really fit nicely with the desire to manage fault tolerance and have much more granular control over scale.
So, just when it felt like containers would be the home for my microservices, I started seeing all of this interesting momentum developing in the serverless space. To me, this idea that I could not only have microservices, but that I could put responsibility for their scale completely to a managed service was very intriguing. The profile of the serverless model seems to fit nicely with the needs of SaaS environments.
With serverless, I see a range of advantages for SaaS providers. Scale and management get easier. Also, costs can go down. Imagine only paying for the actual execution of the code that a tenant runs. That’s very different that exposing a REST service and having it running perpetually--even some of its entry points are rarely accessed.
So, for me, I just see this very natural intersection between the needs of SaaS businesses and the basic tenets and capabilities of SaaS environments. I see opportunity here to truly match the load of your tenants with the profile of your infrastructure. This optimization seems as though it would have a fairly substantial impact on the operational and cost models of SaaS applications.
Tod: I think, in many respects, it’s still very early days for serverless developers. The tooling, frameworks, and patterns for building serverless feel like they are still emerging. I generally see two extremes when it comes to serverless adoption. On one end of the spectrum, I see developers that are leveraging serverless models as a sort of glue that addresses one-off needs of their solution. It’s a way to have dynamic, scalable functions attached to workflows or batch processes. Serverless provides a natural model for the ad-hoc execution of these targeted functions.
On the other end of the extreme is the idea of serverless as a model for building and running all the services of your application. It will serve as the the complete end-to-end execution environment for all of my system’s microservices. With this model, we’ll decompose a solution into small services that are scaled and managed for us. Making a shift to this model can be challenging for organizations. It often touches most dimensions of how their system is built, deployed, and managed in this model.
These are the two extremes I see. And, as you might expect, there’s also a great number of variations of this model where teams might selectively wander into a serverless model for bits of the applications without going all in. Ultimately, I could see a set of serverless patterns emerging that might better categorize the different flavors and models for leveraging serverless computing.
Tod: No. Severless is is a concept that can be delivered on by multiple stacks and technologies. Each of these stacks put its own unique spin on building and running serverless environments. Lambda just happens to be the environment I live in every day. To me, I lean toward models that allow me to put more of the responsibility of scale and management on the execution environment. That’s a big part of the appeal and advantage of moving to a serverless model.
Tod: To me, the serverless model would be very difficult to implement without making a pretty strong commitment to build and deployment automation. I mean, CI/CD is essential to most environments, but it seems especially significant when you think about decomposing your application this fine-grained pool of independent functions.
I think this is an area that is getting plenty of attention now, likely out of pure necessity. I’m seeing products and frameworks show up here that are focused on simplifying the effort to manage, configure, build, and deploy the moving parts of serverless environments. In some cases, this is covered as part of a broader framework that is addressing both the programming model and some elements of CI/CD. I still see plenty of gaps here that need closing, but it seems like a natural opportunity for tooling and open source teams to jump in and fill the void.
Tod: It’s probably a hybrid of an architect and a developer. To me, serverless is a very different model that likely changes the way you think about building, managing, and deploying applications. My hope is that I can provide a bit more context and insight that will give developers a clearer picture of the forces and considerations that might shape their approach to serverless development.
Of course, while the content will be broadly applicable, the emphasis here will be on how serverless aligns with the needs of SaaS environments. So, if you’re building a SaaS solution and you’re weighing the merits of SaaS, then this should be especially relevant to you.
Tod: I think you are going to leave with a clear perspective on the tools, architectural considerations, and a general direction to consider if you are really looking and ready to dive into serverless development. I’m also hoping to give people an idea of how these concepts are directly applicable in SaaS environments.
Similar Talks
.
Tracks
Monday Nov 7
-
Architectures You've Always Wondered About
You know the names. Now learn lessons from their architectures
-
Distributed Systems War Stories
“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.” - Lamport.
-
Containers Everywhere
State of the art in Container deployment, management, scheduling
-
Art of Relevancy and Recommendations
Lessons on the adoption of practical, real-world machine learning practices. AI & Deep learning explored.
-
Next Generation Web Standards, Frameworks, and Techniques
JavaScript, HTML5, WASM, and more... innovations targetting the browser
-
Optimize You
Keeping life in balance is a challenge. Learn lifehacks, tips, & techniques for success.
Tuesday Nov 8
-
Next Generation Microservices
What will microservices look like in 3 years? What if we could start over?
-
Java: Are You Ready for This?
Real world lessons & prepping for JDK9. Reactive code in Java today, Performance/Optimization, Where Unsafe is heading, & JVM compile interface.
-
Big Data Meets the Cloud
Overviews and lessons learned from companies that have implemented their Big Data use-cases in the Cloud
-
Evolving DevOps
Lessons/stories on optimizing the deployment pipeline
-
Software Engineering Softskills
Great engineers do more than code. Learn their secrets and level up.
-
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
Wednesday Nov 9
-
Architecting for Failure
Your system will fail. Take control before it takes you with it.
-
Stream Processing
Stream Processing, Near-Real Time Processing
-
Bare Metal Performance
Native languages, kernel bypass, tooling - make the most of your hardware
-
Culture as a Differentiator
The why and how for building successful engineering cultures
-
//TODO: Security <-- fix this
Building security from the start. Stories, lessons, and innovations advancing the field of software security.
-
UX Reimagined
Bots, virtual reality, voice, and new thought processes around design. The track explores the current art of the possible in UX and lessons from early adoption.