Modern applications are moving away from the traditional request/response loop to more event-driven patterns. The concept of “serverless” computing is floated around when discussing microservices and modern architectural design patterns. But what is serverless, and how - if at all - is it different than microservices?
We’re entering a world where developers won’t have to think about provisioning resources to run their code. While serverless computing sounds like nirvana, there’s an upfront investment in changing development and operational patterns to allow for such a level of automated orchestration. Meanwhile, innovative teams have embraced the use of microservices as a direct response to the costly and cumbersome monolithic methodologies of the past, but new questions have arisen around use cases, planning, and best practices for implementation.
This talk explains why now is the dawn of the serverless age. It also discusses best practices and tools that are available to address the challenges of service-driven architectures head-on while deploying in a serverless environment.
DSPy a system for AI to Write Prompts and Do Fine Tuning
Microservices containers serverless
1. PRESENTED BY: Ivan Dwyer - Head of Business Development
Buzzwords: Microservices, containers and serverless
PRESENTED BY: Dave Nugent - Developer Advocate
3. About Me
⬢ CMU alum
⬢ Astrobiology at NASA
⬢ Consultant to PayPal, Kaiser Permanente, Deutsche Börse
Group, SETI Institute
⬢ SF JavaScript, SF IoT meetups; ForwardJS, Forward Swift
⬢ Joined Iron.io March 2016
Dave Nugent | Dev Advocacy
@drnugent
4. What We Do
Iron.io delivers Docker-based
job processing as a service
for modern enterprises
70% of IT processes still performed in batch - Gartner
4
File Processing
Data Processing
ETL
5. 5
The Evolution of Deployed Application
Server VM Container
Monolith N-Tiered Microservices
Major Release Software Updates Continuous Delivery
Unit of Scale
Application Architecture
Deployment Model
DIY Software Defined Event-Driven
Workload Processing
We are leading the Enterprise towards a “serverless” computing world
6. Impact on Organizations
6
Smaller single purpose
services
Agile Teams
Independently developed and
deployed components
Shorter release cycles
Lightweight cloud-native
communication and processing
Cost efficient scaling
Standardizing on Containers No vendor/tech lock in
Technology Business
8. Why are we still doing this?
8Source: http://www.slideshare.net/lkysow/monolith-to-microservices-lessons-from-the-trenches
9. One Hypothesis: Cultural Constructs
“Any organization that designs a system
(defined broadly) will produce a design
whose structure is a copy of the
organization's communication
structure.”
-- Melvyn Conway, 1967
9Credit: http://martinfowler.com/articles/microservices.html
10. Point of Interest: Legacy Players Flexible
10Source: http://www.slideshare.net/lkysow/monolith-to-microservices-lessons-from-the-trenches
17. Containers
● Allow extremely higher
efficient sharing of resources
● Provides standard and
minimizes software packaging
● Further decouples software
from underlying host w/ no
hypervisor
19. 19
Workloads: Legacy vs Serverless
Pushed
Running
Requested
Load Balanced
Elastic
Uploaded
Ephemeral
Triggered
Queued
Concurrent
Legacy App Serverless Job
Job-centric workloads have a different behavior than app-centric workloads
20. Event Driven
● Evented invocation of function/worker/task
● Producer to consumer one-way invocation
● Fire and forget model
21. Containerized
● Skip the virtual machine
● Microcontainers reduce network traffic
○ Alpine Linux, CoreOS, etc.
● Code becomes ultra-portable abstracting
server and VM
● iron.io/microcontainers-tiny-portable-containers/
22. Composable
● Serverless roots grounded in SOA
● 3rd party providers bring scalable component
code
● Examples: Algolia, Algorithmia, Cloudinary,
Auth0, DynamoDB, on and on and on.
23. Workload Aware
● Understanding of the workload
characteristics and properties
● Allows for self-healing and directing of
workloads across specialized infrastructure
25. Developer Empowerment
● Moves the abstraction level up
● Spend more time on feature code
● Implement and extend 3rd party code
26. Organizational Impact
Smaller single purpose
services
Agile Teams
Independently developed and
deployed functional
components
Shorter release cycles
Lightweight cloud-native
communication and processing
Cost efficient scaling
Standardizing on Containers No vendor/tech lock in
Technology Business
29. AWS Lambda
● Pros
○ Native integration with all other AWS services
○ Scales nicely
○ Cheap
● Cons
○ Native integration with all other AWS services
○ Stuck with their machine images
○ IAM
30. Google Cloud Functions
● Pros
○ Integration to strong machine learning tools
○ Generally better performance per dollar
● Cons
○ TBD - We don’t know yet
31. Microsoft Azure Functions
● Pros
○ Private cloud support
○ Quickly innovating service feature set
● Cons
○ Azure
32. Iron.io
● Pros
○ Supports all public/private clouds
○ Docker-based w/ rich API
● Cons
○ More work to build triggers