SlideShare a Scribd company logo
1@SparkPost
Serverless is not Just for Automats
Azure Functions Webhook Interface
November 15, 2017
2@SparkPost
A Bit About Me
Who is this Nick Zimmerman person?
3@SparkPost
Nick Zimmerman
Interesting Bits
• Discovered computers and punch cards at age 4
• Wrote first code at age 11 in BASIC on a TI99/4A
• я немного говорю по русски
4@SparkPost
Azure Functions
Stealing Server Jobs Since 2016
5@SparkPost
Azure Functions
Pluses
• No infrastructure to maintain
• Scalable
- Infrequent workloads
- Hard to predict demand
• Quick to create, deploy, and update via a single point of deployment
• Developer friendly
- Easy learning curve for developers
- Interact with other Azure services such as CosmosDB, SQL database,
etc.
- C#, JavaScript, F#, Python, PowerShell, Bash are all supported
languages
Minuses
• Expense
• Hard to introspect and debug complex processes
• Not suitable for long running processes
6@SparkPost
Webhooks
It’s All About the Events
7@SparkPost
Webhooks
Event Driven Interactions
• Standard JSON data
• HTTP callback for event notification
• Event Driven Pattern
Popular Products with Webhooks
• SparkPost
• Slack
• Visual Studio Team Services
• Office 365
• Facebook
• PayPal
• Salesforce
8@SparkPost
Azure Function Console
Not a Consolation Prize
9@SparkPost
Azure Function Console Overview
Benefits
• No need to have Visual Studio.
• Download Visual Studio Project
• Easier to understand all the discreet bits
- Build, Integrate, Manage, Monitor
- Quickstart templates
• Easy testing interface
• Immediate deployment
Risks and Negatives
• Immediate deployment.
• Editor is not rich and helpful IDE.
• Easy to delete things without recovery path
10@SparkPost
Create the Function
1. Select New, Compute, then
Function App
2. Enter a name
3. Click Create button
Pro Tip – Tick the box!
11@SparkPost
A Wealth of Goodies
12@SparkPost
Control All the Things!
13@SparkPost
Make the Magic
14@SparkPost
Azure Functions with Visual
Studio
Developer Paradise (Mai Tai’s Not Included)
15@SparkPost
Azure Functions with Visual Studio
Benefits
• The same solid Visual Studio experience
• Local testing and debugging
- Step through code
- Avoid deploying untested code
• Source control integration
• Deploy from Visual Studio directly to Azure
Risks
• Relies on good developer habits
• Failure to account the for all the discreet parameters
16@SparkPost
Create a New Solution
17@SparkPost
Create a New Function
18@SparkPost
Write the Code
19@SparkPost
Debugging Locally
20@SparkPost
Do Not Forsake the Console
Test is Bash for Windows (curl), Postman, or your browser.
21@SparkPost
Let’s Light this Candle
22@SparkPost
Success!
23@SparkPost
This Looks Familiar
24@SparkPost
Q&A
Ask away.
25@SparkPost
Resources for Continued Fun
The Code Must Go On
26@SparkPost
References
https://docs.microsoft.com/en-us/azure/azure-functions/functions-
create-first-azure-function
https://docs.microsoft.com/en-us/azure/azure-functions/functions-
create-your-first-function-visual-studio
https://docs.microsoft.com/en-us/azure/azure-functions/functions-
host-json
https://docs.microsoft.com/en-us/azure/azure-resource-
manager/resource-group-overview
https://www.petri.com/what-are-microsoft-azure-resource-groups
https://azure.microsoft.com/en-us/pricing/details/functions/
https://github.com/SparkPost/AzureFunctionsWebhooksDemo
27@SparkPost
Thank you!
nick.zimmerman@sparkpost.com

More Related Content

What's hot

Careful - APIs Inside: Testing and Monitoring for App Development
Careful - APIs Inside: Testing and Monitoring for App DevelopmentCareful - APIs Inside: Testing and Monitoring for App Development
Careful - APIs Inside: Testing and Monitoring for App Development
3scale
 
Serverless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL ShortenerServerless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL Shortener
Luca Bianchi
 
From Code to the Monkeys: Continuous Delivery at Netflix
From Code to the Monkeys: Continuous Delivery at NetflixFrom Code to the Monkeys: Continuous Delivery at Netflix
From Code to the Monkeys: Continuous Delivery at Netflix
Dianne Marsh
 
Make Your UI Tests Resilient with the Next Generation of Frameworks
Make Your UI Tests Resilient with the Next Generation of FrameworksMake Your UI Tests Resilient with the Next Generation of Frameworks
Make Your UI Tests Resilient with the Next Generation of Frameworks
Satyajit Malugu
 
Monitoring your API
Monitoring your APIMonitoring your API
Monitoring your API
Andrés F Vargas
 
20161103 Serverless Italy Meetup
20161103   Serverless Italy Meetup20161103   Serverless Italy Meetup
20161103 Serverless Italy Meetup
Luca Bianchi
 
Parallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce LabsParallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce Labs
Sauce Labs
 
Building an SRE Organization @ Squarespace
Building an SRE Organization @ SquarespaceBuilding an SRE Organization @ Squarespace
Building an SRE Organization @ Squarespace
Franklin Angulo
 
Serverless architectures
Serverless architecturesServerless architectures
Serverless architectures
Hyderabad Scalability Meetup
 
Enabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinarEnabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinar
Aaron Walker
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
Alan Harper
 
What's New in Puppet Enterprise 2016.5
What's New in Puppet Enterprise 2016.5What's New in Puppet Enterprise 2016.5
What's New in Puppet Enterprise 2016.5
Puppet
 
Building software by feature with immutable infrastructures on AWS
Building software by feature with immutable infrastructures on AWSBuilding software by feature with immutable infrastructures on AWS
Building software by feature with immutable infrastructures on AWS
Nicolas Mas
 
Top 8 mistakes developer teams make in their first serverless project
Top 8 mistakes developer teams make in their first serverless projectTop 8 mistakes developer teams make in their first serverless project
Top 8 mistakes developer teams make in their first serverless project
Paul Swail
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet
 
monkeyTalk
monkeyTalkmonkeyTalk
monkeyTalk
Md Samsul Kabir
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)
Wooga
 
Security as Code: DOES15
Security as Code: DOES15Security as Code: DOES15
Security as Code: DOES15
Ed Bellis
 

What's hot (18)

Careful - APIs Inside: Testing and Monitoring for App Development
Careful - APIs Inside: Testing and Monitoring for App DevelopmentCareful - APIs Inside: Testing and Monitoring for App Development
Careful - APIs Inside: Testing and Monitoring for App Development
 
Serverless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL ShortenerServerless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL Shortener
 
From Code to the Monkeys: Continuous Delivery at Netflix
From Code to the Monkeys: Continuous Delivery at NetflixFrom Code to the Monkeys: Continuous Delivery at Netflix
From Code to the Monkeys: Continuous Delivery at Netflix
 
Make Your UI Tests Resilient with the Next Generation of Frameworks
Make Your UI Tests Resilient with the Next Generation of FrameworksMake Your UI Tests Resilient with the Next Generation of Frameworks
Make Your UI Tests Resilient with the Next Generation of Frameworks
 
Monitoring your API
Monitoring your APIMonitoring your API
Monitoring your API
 
20161103 Serverless Italy Meetup
20161103   Serverless Italy Meetup20161103   Serverless Italy Meetup
20161103 Serverless Italy Meetup
 
Parallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce LabsParallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce Labs
 
Building an SRE Organization @ Squarespace
Building an SRE Organization @ SquarespaceBuilding an SRE Organization @ Squarespace
Building an SRE Organization @ Squarespace
 
Serverless architectures
Serverless architecturesServerless architectures
Serverless architectures
 
Enabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinarEnabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinar
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
 
What's New in Puppet Enterprise 2016.5
What's New in Puppet Enterprise 2016.5What's New in Puppet Enterprise 2016.5
What's New in Puppet Enterprise 2016.5
 
Building software by feature with immutable infrastructures on AWS
Building software by feature with immutable infrastructures on AWSBuilding software by feature with immutable infrastructures on AWS
Building software by feature with immutable infrastructures on AWS
 
Top 8 mistakes developer teams make in their first serverless project
Top 8 mistakes developer teams make in their first serverless projectTop 8 mistakes developer teams make in their first serverless project
Top 8 mistakes developer teams make in their first serverless project
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
monkeyTalk
monkeyTalkmonkeyTalk
monkeyTalk
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)
 
Security as Code: DOES15
Security as Code: DOES15Security as Code: DOES15
Security as Code: DOES15
 

Similar to Webhooks with Azure Functions - Live 360 Conference

Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
Ike Ellis
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty Details
Achievers Tech
 
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
Databricks
 
Nvc2012 it module4_avig
Nvc2012 it module4_avigNvc2012 it module4_avig
Nvc2012 it module4_avig
CU_NVC
 
MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona Workshop
Valeri Karpov
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
The Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To TestingThe Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To Testing
Tim Duckett
 
Software Engineering in Startups
Software Engineering in StartupsSoftware Engineering in Startups
Software Engineering in Startups
Dusan Omercevic
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
Jeremy Thake
 
Spark Summit EU talk by Yiannis Gkoufas
Spark Summit EU talk by Yiannis GkoufasSpark Summit EU talk by Yiannis Gkoufas
Spark Summit EU talk by Yiannis Gkoufas
Spark Summit
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
Einar Ingebrigtsen
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
Niels Frydenholm
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
GlobalLogic Ukraine
 
Visual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) OverviewVisual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) Overview
Steve Lange
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
European Collaboration Summit
 
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelinesdeliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
Esteban Garcia
 
Create Microservice with Spring Boot and Docker
Create Microservice with Spring Boot and DockerCreate Microservice with Spring Boot and Docker
Create Microservice with Spring Boot and Docker
Sivaprakash
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
Leif Janzik
 
Oscon presentation
Oscon presentationOscon presentation
Oscon presentation
garrettmoon
 

Similar to Webhooks with Azure Functions - Live 360 Conference (20)

Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty Details
 
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
 
Nvc2012 it module4_avig
Nvc2012 it module4_avigNvc2012 it module4_avig
Nvc2012 it module4_avig
 
MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona Workshop
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
The Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To TestingThe Cowardly Test-o-Phobe's Guide To Testing
The Cowardly Test-o-Phobe's Guide To Testing
 
Software Engineering in Startups
Software Engineering in StartupsSoftware Engineering in Startups
Software Engineering in Startups
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
Spark Summit EU talk by Yiannis Gkoufas
Spark Summit EU talk by Yiannis GkoufasSpark Summit EU talk by Yiannis Gkoufas
Spark Summit EU talk by Yiannis Gkoufas
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
Visual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) OverviewVisual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) Overview
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelinesdeliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
 
Create Microservice with Spring Boot and Docker
Create Microservice with Spring Boot and DockerCreate Microservice with Spring Boot and Docker
Create Microservice with Spring Boot and Docker
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 
Oscon presentation
Oscon presentationOscon presentation
Oscon presentation
 

More from SparkPost

Unlocking Email’s Hidden Opportunities to Create a Competitive Advantage
Unlocking Email’s Hidden Opportunities  to Create a Competitive AdvantageUnlocking Email’s Hidden Opportunities  to Create a Competitive Advantage
Unlocking Email’s Hidden Opportunities to Create a Competitive Advantage
SparkPost
 
SparkPost Celebrates International Women's Day 2020
SparkPost Celebrates International Women's Day 2020SparkPost Celebrates International Women's Day 2020
SparkPost Celebrates International Women's Day 2020
SparkPost
 
PMTA Success Story - J2 Martech
PMTA Success Story - J2 MartechPMTA Success Story - J2 Martech
PMTA Success Story - J2 Martech
SparkPost
 
How Email and Your Culture Can Help Change the World
How Email and Your Culture Can Help Change the WorldHow Email and Your Culture Can Help Change the World
How Email and Your Culture Can Help Change the World
SparkPost
 
Brave New World: Everything you Wanted to Know About Deliverability Updates
Brave New World: Everything you Wanted to Know About Deliverability UpdatesBrave New World: Everything you Wanted to Know About Deliverability Updates
Brave New World: Everything you Wanted to Know About Deliverability Updates
SparkPost
 
PowerMTA Integration Experiences and Solutions
PowerMTA Integration Experiences and SolutionsPowerMTA Integration Experiences and Solutions
PowerMTA Integration Experiences and Solutions
SparkPost
 
Get Ahead of the Game! Our Journey to Rebranding and Success
Get Ahead of the Game! Our Journey to Rebranding and SuccessGet Ahead of the Game! Our Journey to Rebranding and Success
Get Ahead of the Game! Our Journey to Rebranding and Success
SparkPost
 
Beyond the Norm: Email and the Innovation Ethos
Beyond the Norm: Email and the Innovation EthosBeyond the Norm: Email and the Innovation Ethos
Beyond the Norm: Email and the Innovation Ethos
SparkPost
 
New features in PMTA 5.0
New features in PMTA 5.0New features in PMTA 5.0
New features in PMTA 5.0
SparkPost
 
Product Roadmap 2019 PMTA Summit
Product Roadmap 2019 PMTA SummitProduct Roadmap 2019 PMTA Summit
Product Roadmap 2019 PMTA Summit
SparkPost
 
At the Wheel: An Evolution Story for Email Strategists (and Cyclists)
At the Wheel: An Evolution Story for Email Strategists (and Cyclists)At the Wheel: An Evolution Story for Email Strategists (and Cyclists)
At the Wheel: An Evolution Story for Email Strategists (and Cyclists)
SparkPost
 
Webinar: Retail Banking - Optimizing the Customer Deposit Lifecycle
Webinar: Retail Banking - Optimizing the Customer Deposit LifecycleWebinar: Retail Banking - Optimizing the Customer Deposit Lifecycle
Webinar: Retail Banking - Optimizing the Customer Deposit Lifecycle
SparkPost
 
SparkPost Celebrates Pride
SparkPost Celebrates PrideSparkPost Celebrates Pride
SparkPost Celebrates Pride
SparkPost
 
How LendingTree is Growing Rapidly with Email and Customer Engagement
How LendingTree is Growing Rapidly with Email and Customer Engagement How LendingTree is Growing Rapidly with Email and Customer Engagement
How LendingTree is Growing Rapidly with Email and Customer Engagement
SparkPost
 
On-Premises and Cloud - Putting the Pieces Together
On-Premises and Cloud - Putting the Pieces TogetherOn-Premises and Cloud - Putting the Pieces Together
On-Premises and Cloud - Putting the Pieces Together
SparkPost
 
Trends and Insights for Interactive Email & Google AMP for Email
Trends and Insights for Interactive Email & Google AMP for EmailTrends and Insights for Interactive Email & Google AMP for Email
Trends and Insights for Interactive Email & Google AMP for Email
SparkPost
 
Scaling Your Product with Key Growth Surfaces
Scaling Your Product with Key Growth SurfacesScaling Your Product with Key Growth Surfaces
Scaling Your Product with Key Growth Surfaces
SparkPost
 
Segmenting Your Way to Smarter Sending
Segmenting Your Way to Smarter SendingSegmenting Your Way to Smarter Sending
Segmenting Your Way to Smarter Sending
SparkPost
 
State of Transactional Email 2018 (Benchmark report)
State of Transactional Email 2018 (Benchmark report)State of Transactional Email 2018 (Benchmark report)
State of Transactional Email 2018 (Benchmark report)
SparkPost
 
GDPR Affects Email Worldwide
GDPR Affects Email WorldwideGDPR Affects Email Worldwide
GDPR Affects Email Worldwide
SparkPost
 

More from SparkPost (20)

Unlocking Email’s Hidden Opportunities to Create a Competitive Advantage
Unlocking Email’s Hidden Opportunities  to Create a Competitive AdvantageUnlocking Email’s Hidden Opportunities  to Create a Competitive Advantage
Unlocking Email’s Hidden Opportunities to Create a Competitive Advantage
 
SparkPost Celebrates International Women's Day 2020
SparkPost Celebrates International Women's Day 2020SparkPost Celebrates International Women's Day 2020
SparkPost Celebrates International Women's Day 2020
 
PMTA Success Story - J2 Martech
PMTA Success Story - J2 MartechPMTA Success Story - J2 Martech
PMTA Success Story - J2 Martech
 
How Email and Your Culture Can Help Change the World
How Email and Your Culture Can Help Change the WorldHow Email and Your Culture Can Help Change the World
How Email and Your Culture Can Help Change the World
 
Brave New World: Everything you Wanted to Know About Deliverability Updates
Brave New World: Everything you Wanted to Know About Deliverability UpdatesBrave New World: Everything you Wanted to Know About Deliverability Updates
Brave New World: Everything you Wanted to Know About Deliverability Updates
 
PowerMTA Integration Experiences and Solutions
PowerMTA Integration Experiences and SolutionsPowerMTA Integration Experiences and Solutions
PowerMTA Integration Experiences and Solutions
 
Get Ahead of the Game! Our Journey to Rebranding and Success
Get Ahead of the Game! Our Journey to Rebranding and SuccessGet Ahead of the Game! Our Journey to Rebranding and Success
Get Ahead of the Game! Our Journey to Rebranding and Success
 
Beyond the Norm: Email and the Innovation Ethos
Beyond the Norm: Email and the Innovation EthosBeyond the Norm: Email and the Innovation Ethos
Beyond the Norm: Email and the Innovation Ethos
 
New features in PMTA 5.0
New features in PMTA 5.0New features in PMTA 5.0
New features in PMTA 5.0
 
Product Roadmap 2019 PMTA Summit
Product Roadmap 2019 PMTA SummitProduct Roadmap 2019 PMTA Summit
Product Roadmap 2019 PMTA Summit
 
At the Wheel: An Evolution Story for Email Strategists (and Cyclists)
At the Wheel: An Evolution Story for Email Strategists (and Cyclists)At the Wheel: An Evolution Story for Email Strategists (and Cyclists)
At the Wheel: An Evolution Story for Email Strategists (and Cyclists)
 
Webinar: Retail Banking - Optimizing the Customer Deposit Lifecycle
Webinar: Retail Banking - Optimizing the Customer Deposit LifecycleWebinar: Retail Banking - Optimizing the Customer Deposit Lifecycle
Webinar: Retail Banking - Optimizing the Customer Deposit Lifecycle
 
SparkPost Celebrates Pride
SparkPost Celebrates PrideSparkPost Celebrates Pride
SparkPost Celebrates Pride
 
How LendingTree is Growing Rapidly with Email and Customer Engagement
How LendingTree is Growing Rapidly with Email and Customer Engagement How LendingTree is Growing Rapidly with Email and Customer Engagement
How LendingTree is Growing Rapidly with Email and Customer Engagement
 
On-Premises and Cloud - Putting the Pieces Together
On-Premises and Cloud - Putting the Pieces TogetherOn-Premises and Cloud - Putting the Pieces Together
On-Premises and Cloud - Putting the Pieces Together
 
Trends and Insights for Interactive Email & Google AMP for Email
Trends and Insights for Interactive Email & Google AMP for EmailTrends and Insights for Interactive Email & Google AMP for Email
Trends and Insights for Interactive Email & Google AMP for Email
 
Scaling Your Product with Key Growth Surfaces
Scaling Your Product with Key Growth SurfacesScaling Your Product with Key Growth Surfaces
Scaling Your Product with Key Growth Surfaces
 
Segmenting Your Way to Smarter Sending
Segmenting Your Way to Smarter SendingSegmenting Your Way to Smarter Sending
Segmenting Your Way to Smarter Sending
 
State of Transactional Email 2018 (Benchmark report)
State of Transactional Email 2018 (Benchmark report)State of Transactional Email 2018 (Benchmark report)
State of Transactional Email 2018 (Benchmark report)
 
GDPR Affects Email Worldwide
GDPR Affects Email WorldwideGDPR Affects Email Worldwide
GDPR Affects Email Worldwide
 

Recently uploaded

PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 

Recently uploaded (20)

PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 

Webhooks with Azure Functions - Live 360 Conference

Editor's Notes

  1. Welcome to Azure Functions Webhook Interface Serverless infrastructure is all the rage lately. It represents a paradigm shift that is on the same magnitude as the move from on-premises data center to the cloud. The shift to the cloud allowed us to stop worrying about physical hardware. This quickly extended to providing services for unwieldy things like databases, web servers, and queuing systems. Now the concepts have been extended to individual functions through services like Azure Functions. At the end of this presentation, you will be prepared to venture forth and start building serverless functions.
  2. Thank you all for coming by, and before we dive into the fun stuff, let me tell you a bit about me.
  3. In short, I am a lifelong computer geek. I have been fiddling about with computers for most of my life thanks to my father. These days, I get paid to be a Senior Site Reliability Engineer for SparkPost. I really enjoy the challenges of building, monitoring, and maintaining the complex infrastructure that provides our customers with a great experience and spectacular results.
  4. One of the challenges facing IT organizations is controlling server cost. Amazon helped address this issue by starting AWS to monetize the excess capacity. That still meant virtual machines and the overhead that is associated with managing them does not drop significantly.
  5. Maintaining IT infrastructure is hard and expensive. Keeping things patched, running, spare parts, and preventing bad actors all take resources. Most organizations are not able to hire specialist in all of these fields, so there is some amount of compromise in where resources are allocated. Accommodating bursts of activity and growth mean allocating a certain amount of resources to stand idle just waiting to be needed. This is largely a guessing game that everyone hopes they have made all the right assumptions about. Complex deployment systems are often the source of pain and suffering for many organizations. Trying to orchestrate the deployment of servers, operating systems, needed dependencies, and custom software is a hard problem. There are a plethora of tools and techniques to accomplish this management, but the advent of simple to use serverless functions and cloud services make things much simpler. You get simpler deployments and have to worry much less about the underlying bits and pieces, and instead you get to focus on your core business and competencies. There are some negatives to serverless architecture. Care must be taken in construction, as long running functions can become extremely expensive. It can also become difficult to introspect and debug complex processes. It is incumbent that developers think through how these complex systems will be instrumented to insure there is transparency into the systems. A negative that often causes great expense is the long running process. Developers need to rethink the way things are architected when dealing with serverless functions. Short, quick executing functions are the best. Breaking apart complex processes is actually more cost effective and efficient than having a large, long running process. This is a bit counter-intuitive to developers not experienced with scalable enterprise architectures.
  6. What are these webhooks you speak of and what can they do for me?
  7. In simplest terms, webhooks are event driven interactions. Many products support webhooks. By employing webhooks, you can create rich, complex systems that provide meaningful interactions for users. Webhooks are also useful for monitoring activity, creating notifications, and aggregating data for analysis.
  8. In some cases, the console for cloud services is in some cases an afterthought leaving a lot to be desired. This is not the case for the Azure console.
  9. The Azure Function App console is extremely useful, and something every developer should spend some time studying. It is not just an interface, but it is a great guide to how the bits of Azure interact. Many of the deep details of what can be done within Azure can be unearthed inside of the console. One of the best things is that you can develop new functions without having Visual Studio, and if you do have Visual Studio, you can download the created function as a solution file. By working in the console, you can get a better understanding of all the discreet things that can be done with Azure Functions, and the quickstart templates make it very easy to get a basic framework that you just need to flesh out with the details of your use-case. The test interface makes it easy to test a function and see that it is working properly. When you update a function in the console, it is immediately deployed. No need to build any sort of deployment infrastructure. This can be very risky though since if you make a mistake in the console, it has immediate impact. It is challenging to know when you have made a mistake since there is not the rich and helpful IDE experience that you get when working with Visual Studio. Once you delete something in the Azure Function console, it is gone forever. There is no backup or undo.
  10. Let’s dive right in and build our first function. I like to learn things the first time in the console to help me understand the requirements and general structure. I tend to be quite visual, so seeing how the pieces relate following the interface is very helpful to me. Most of what is listed here in the Create dialog is not critical to creating a function. You really just need to choose a name. Everything else can be automatic. Once you get the basics down, you can dive into the fine details of Resource Groups, Hosting Plans, and Storage. For now, just know that a Resource Group is a way to provision, manage, control access, and monitor a group of resources. Compartmentalization of resources helps control costs, assist in accounting, and limit noisy neighbor effects. The Pin to dashboard check box is unchecked by default. It is a good idea to tick the box to get your newly created function to show up on the dashboard. Once you are more familiar with the interface, you can adjust your dashboard to suit your needs, but to start, I like to easily be able to find what I just created without rooting around for it.
  11. Once creation is completed, you can see all the details of the Function App, and you can manage your Function App. A few things to take note of here. The details of the app, including the access URL is shown. Downloading the app content will get you a Visual Studio solution file, and you can add Functions, Proxies, and Slots. Of special note are the Function App settings and the Application settings.
  12. These links will open tabs for their respective activities. Within each, you can control many of the fine details of the Function App. You can change the underlying platform for 32-bit or 64-bit, tweak access controls, manage deployment options, explore resources, and even access a development console. The Function app settings are important if you want to set some limitations on the usage of the app or avoid accidental updates.
  13. That lays the foundation, but the real magic happens when you click the plus next to the Functions in the console and create the actual code that is doing the work. Just give the function a name, and start to lay out the code within the framework selected. The construction interface gives you an editor, a log, and click on the side tab to pop out the test pane, if it happens to be collapsed. The coding itself is straightforward C# just like Visual Studio. Note that in the testing pane you can create complex query strings, add headers, and edit your request body. You can also grab the URL of the function if you want to test with an external tool.
  14. Now that we have a taste of things in the console, let’s move on from the common experience to the extraordinary.
  15. Once you have added the Azure Workload to your installation of Visual Studio 2017, you have access to the full power of an operational cloud! You get the familiar Visual Studio experience while able to local test and debug your Function Apps. As a good practice, you can put your Azure solutions in the source control of your choice. Unlike tradition deployment situations where you need Team Services or some other deployment method, you can deploy directly from Visual Studio to an Azure account, assuming you have the account info and deployment permissions. This leads to the same risk of the console that you could deploy untested code directly to production. The other thing that is less obvious in Visual Studio is all the discreet parameters that you can control with Azure Function Apps. You can still access all of these things and control them, but it takes a little more effort to make the tweaks in Visual Studio. A little exploring and time, and it is completely manageable through the host.json file.
  16. When creating a new project, you should see the option for Visual C#, Cloud, and Azure Functions. Give it a name, and click OK. Just like creating any other Visual Studio solution. This is where there is a slight disconnect here, as this is what the console calls a Function App. Small difference, but it can be a little confusing to some.
  17. Right click the project folder, select New Item, Azure Function. This is equivalent to clicking the plus in the console and creating a new function within your Function app.
  18. Just like the console, now we have a template for the function. Just start writing your code. When you are ready to test, press F5, and you will be able to debug locally just like you would other Visual Studio projects.
  19. The first time you try to debug an Azure Function locally, you will be prompted to install the Azure CLI. After that, it will go directly into starting the debugging console.
  20. The debugger console shows every request that is triggered. This can be useful for validating behavior and insure the function is behaving as expected. You can test the function through the URL in the debugging console using your favorite way to interact with a REST API. Personally, I prefer using curl through Bash for most things, and when things get complex, Postman works very well for interacting with RESTful endpoints.
  21. Right click the project node in Solution Explorer, choose Publish, and you will see this screen. A little tip here is that even if you did not download an existing solution from the console, you can update an existing function through Visual Studio.
  22. Wait for the creation to finish, and you will see the publish details in Visual Studio. You get essentially the same details as you get in the console.
  23. Assuming you have connected your Visual Studio to your Azure account, you just need to create the new function. Name the app, choose the description, the resource group, and click Create. It is that simple. Note that you can have multiple accounts attached, for example if you separate development and production.