DevOps in a Serverless world
Alessandro Vozza, Technical Evangelist, Microsoft
AMSTERDAM 16 - 17 MAY 2017
All you need is code
Alessandro Vozza, Technical Evangelist, Microsoft
AMSTERDAM 16 - 17 MAY 2017
Look mom, no servers!
Alessandro Vozza, Technical Evangelist, Microsoft
AMSTERDAM 16 - 17 MAY 2017
The disappearance of servers
David Copperfield, Magician
AMSTERDAM 16 - 17 MAY 2017
Better DevOps thru Serverless
Alessandro Vozza, Technical Evangelist, Microsoft
AMSTERDAM 16 - 17 MAY 2017
Title making
HELLO!
I am Alessandro
I am here because I love technology.
You can find me at @bongo
Feedback: https://aka.ms/talkfeedback
1.
What the heck is serverless
Let’s start with some basics
The Evolution of Application Platforms
Ship.
Acct. Mang.
Hist.
Database
Client
Ship.
DB
Client
Hist.
DB
Mang.
DB
Acct.
DB
POST
GET
UPDATE
Monolithic Microservices
Application’s architecture over time
Ship.
Acct. Mang.
Hist.
Database
Client
Monolithic
Ship.
DB
Client
Hist.
DB
Mang.
DB
Acct.
DB
POST
GET
UPDATE
Microservices
Application’s architecture over time
Ship.
DB
Client
Hist.
DB
Mang.
DB
Acct.
DB
POST
GET
UPDATE
Microservices
Application’s architecture over time
POST
Users
Users/Id
Users/Id
Users/Id
CreatUser
GetUser
UpdateUser
DeleteUser
GET
UPDATE
DELETE
Client
Mang.
DB
Microservices Serverless
Container?
OS Patch?
Server Size/ Scale?
Application’s architecture over time
Event-
driven/
instant scale
Sub-second
billing
Abstraction
of servers
What is serverless
Focus on
Business
Logic
Reduced
Time To
Market
Reduced
DevOps
Benefit of Serverless
»Higher-order, abstracted delivery model for code
»Scalable outsourced runtime-as-a-service
»Nano- and femto-services
»The tech is there, but needs refinement
»”Enterprise” Serverless?
So what is it again?
What is “serverless”
Event-
driven scale
Sub-second
billing
Abstraction
of servers
Benefits of “serverless”
Manage
less
Micro-pricing Ease of
scale
Greener clouds
Worth-based development
The Dark side of Serverless
»Is not PaaS
»Is not NoOps
»Is not limitless
»Is not lock-in free
What Serverless is NOT:
The myth of NoOps
Serverless is not free
Cost
API calls
Complexity
~400.000
»Cold start
»Ecosystem lock-in
»Long running processes
»Security?
Serverless Pitfalls
2.
Serverless deep dive
Up & close to functions
Functions programming concepts
wwwroot
| - host.json
| - proxies.json
| - mynodefunction
| | - function.json
| | - index.js
| | - node_modules
| | | - ... packages ...
| | - package.json
| - mycsharpfunction
| | - function.json
| | - run.csx
Folder Structure
How does a function look like
function.json
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"webHookType": "genericJson",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"type": "queue",
"name": "eventOutput",
"queueName": "aievents1",
"connection":"AiStorageConnection",
"direction": "out"
}
]
public static class OrderHandler
{
[FunctionName("OrderWebhook")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger] HttpRequestMessage req,
[Queue("aievents1", Connection = "AiStorageConnection")]
IAsyncCollector<String> eventOutput,
TraceWriter log)
{
log.Info($"Webhook was triggered!");
string jsonContent = await req.Content.ReadAsStringAsync();
dynamic data = JsonConvert.DeserializeObject(jsonContent);
await eventOutput.AddAsync(
JsonConvert.SerializeObject(GetLogData(data)));
int orderId = PlaceOrder(data);
return req.CreateResponse(HttpStatusCode.OK,
new {orderNumber = orderId });
}
. . .
}
Every	15	minutes Clean	tableFind	and	clean	invalid	data
Time—based processing
File	added	to
Blob	Storage
Transform	CSV	to	data rows
CSV
Power	BI
Chart	graphic
Service event processing
Excel	file	saved
to	OneDrive
Microsoft	Graph	API	analyzes	content Creates	new	sheets
with	charts
SaaS event processing
Loaded	web	page
calls WebHook
Completed	pageCreate	ad	based	on	user	profile
Serverless web applications
Photo	taken	and
WebHook	called Stores	in	blob	storage Produces	scaled	images
Serverless mobile backends
? ...
Cortana	Analytics	answers	questionsMessage	sent
to	Chatbot
Chatbot	sends
response
Real time bot messaging
Serverless Apps	Lifecycle
Design Develop Deploy Monitor
Serverless apps lifecycle
Design
Design Develop Deploy Monitor
Serverless design
Serverless Architecture
/orderprocessing
O365
App
Insights
/index.html
Azure Functions Proxies
/couponprocessing
Develop
Design Develop Deploy Monitor
Development cycle
Tooling
Design Develop Deploy Monitor
Deployment options
Deployment process
Production Stage Chris-Dev
Push (automatic)
Manual sync
Monitor
Design Develop Deploy Monitor
Monitoring serverless apps
Key Scenarios for Monitoring
Monitor Learn
Optimize
Alert
Do I need cloud?
3.
How will it affect DevOps
If at all
The Evolution of DevOps
#DEVOPS #YOLO
DevOps is changing
4.
Demo(-less)
https://aka.ms/CoderCards
5.
What next?
To the cloud and beyond
https://aka.ms/azafr
»Serverless remote code execution
»Applications are cloud + edge
»Data and events stream
»Seamless access
Edge and distributed computing
http://searchdatacenter.techtarget.com/definition/edge-computing
5.
Conclusion
Is it for me? How to get started?
Serverless ROI
Let’s get started
»https://github.com/Azure/azure-webjobs-sdk
»https://functions.azure.com/try
»https://serverless.com/
To know more
»https://github.com/Azure/azure-webjobs-sdk
»https://functions.azure.com/try
»https://serverless.com/
To know more
THANKS!
Any questions?
You can find me at
» @bongo
» alessandro.vozza@microsoft.com
Credits: slides template from SlidesCarnival

DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Amsterdam 2017