SlideShare ist ein Scribd-Unternehmen logo
1 von 25
CUTYOUR HAIR AND GET
AN AZUREWEBJOB!
Mark Greenway
@MarkKGreenway
Who | What | When | Where | Why | How | OMG WHY?!
THANKS SPONSORS!
Who | What | When | Where | Why | How | OMG WHY?!
Who the #$@& is this guy??
WHO | What | When | Where | Why | How | OMG WHY?!
What is an
AzureWebJob?
Who| WHAT | When | Where | Why | How | OMG WHY?!
Location Name
Azure PaaS WebJob
Azure PaaS
(old)
Worker Role
Heroku Worker
App Harbor Worker Unithttps://flic.kr/p/5uJsLG
What is an
AzureWebJob?
Who| WHAT | When | Where | Why | How | OMG WHY?!
Options
Powershell
.BAT (Batch file)
Node.JS
Python
.exe
.NET Application
https://flic.kr/p/a2qceu
What is an
AzureWebJob?
Who| WHAT | When | Where | Why | How | OMG WHY?!
Can’t do
Run Servers
Invoke Server Applications
https://flic.kr/p/a2qceu
When Does an Azure
WebJob Run?
Who| What | WHEN | Where | Why | How | OMG WHY?!
1. Triggered
2. Continuous
© 2013 Tim Buss
When Does an Azure
WebJob Run?
Who| What | WHEN | Where | Why | How | OMG WHY?!
1. Triggered
© 2013 Tim Buss
• Scheduled
• Manual
When Does an Azure
WebJob Run?
Who| What | WHEN | Where | Why | How | OMG WHY?!
2. Continuous
© 2013 Tim Buss
• Runs AllTheTime (withAlways On)
• .NETTriggers Run (with SDK)
Where Does an Azure
WebJob Run?
Who| What | When | WHERE | Why | How | OMG WHY?!
1. With An AzureWebsite (W/AWS)
https://flic.kr/p/7fXoky
• Logically bound to a particular site
• Deployment options
• Separate Manual Deployment
• CLI
• Web Interface
• Continuous Deployment with site
• 1 …n
Where Does an Azure
WebJob Run?
2. With Only Other AzureWebJobs
https://flic.kr/p/ajkTkm
• Not Logically bound to a particular site
• Deployment options
• Separate Manual Deployment
• CLI
• Web Interface
• Independent git etc deployments.
• 1 …n
Who| What | When | WHERE | Why | How | OMG WHY?!
Who| What | When | Where | WHY | How | OMG WHY?!
Why Use AWebJob:
• Process Log Files
• Process Orders
• Migrate Deleted Items to Long term storage
• Compress Uploaded Images
• Add Watermarks to Images
• Run Nightly Tasks
• Import on premise data to azure
• Manage Videos for Smooth Streaming
• RSS Aggregation
• Migrating Log Files
• Long Running Tasks
• Complex Creation of User Records
• Interaction with slow 3rd party systems
• Convert JSON to XML
• Email users
• Decoupling
• Scalability
• OCR
• Billing
How to Manually UploadAWebJob :
1. Put files into a folder
2. Zip all the files in the folder
3. Go toWeb or CLI
Who| What | When | Where | Why | HOW | OMG WHY?!
How to “PiggyBack” Upload AWebJob :
1. Put files into a folder
2. Copy that folder to
App_Data/jobs/[continuous,triggered]/
3. Deploy As Usual
Who| What | When | Where | Why | HOW | OMG WHY?!
How to Continuously UploadAWebJob :
Who| What | When | Where | Why | HOW | OMG WHY?!
1. Create Project in Same Solution
2. Modify Build to copy that folder to
App_Data/jobs/[continuous,triggered]/
3. Deploy As Usual
How to Continuously UploadAWebJob :
1. Create Project in Same Solution
2. Modify Build to copy that folder to
App_Data/jobs/[continuous,triggered]/
3. Deploy As Usual
*Heavily Photoshopped for Clarity
Who| What | When | Where | Why | HOW | OMG WHY?!
How to create a .NETWebJob
Who| What | When | Where | Why | HOW | OMG WHY?!
1. File -> New -> Console Application
2. Add NuGet Packages for extra tooling
How to create a .NET WebJob
Who| What | When | Where | Why | HOW | OMG WHY?!
static void Main()
{
var host = new JobHost();
host.RunAndBlock();
}
public static void AzureQueue([QueueTrigger("myqueue")] string userJson) {}
public static void AzureQueueObject([QueueTrigger("myqueue")] Person person) {}
public static void SbQueue([ServiceBusTrigger("sbqueue")] string person) {}
public static void SbQueueObject([ServiceBusTrigger("sbobjectqueue")] Person person) {}
public static void Resize(
[BlobTrigger(@"images-input/{name}")] WebImage input,
[Blob(@"images-output/{name}")] out WebImage output) {}
How to TEST a .NETWebJob
Who| What | When | Where | Why | HOW | OMG WHY?!
//IN WEBJOB CLASS
public static Person LastPerson { get; set; }
public static void SbQueueObject([ServiceBusTrigger("sbobjectqueue")] Person person)
{
LastPerson = person;
Console.WriteLine("Service Bus Object Queue : {0}", person);
}
//INTEST CLASS
[Test]
public void PersonSetsLastPerson()
{
var dawn = PersonCreator.CreatePerson("Dawn");
ImageProcessing.SbQueueObject(dawn);
Assert.AreEqual(dawn,ImageProcessing.LastPerson);
}
How to Debug a .NET WebJob
Who| What | When | Where | Why | HOW | OMG WHY?!
https://cutyourhair.scm.azurewebsites.net/azurejobs/#/jobs
1.Use A Backplane
2.Post Directly to the Backplane
How to Update SignalR from aWebJob
Who| What | When | Where | Why | How | OMG WHY?!
How to Update SignalR from aWebJob
Who| What | When | Where | Why | How | OMG WHY?!
How to Update SignalR from aWebJob
Who| What | When | Where | Why | How | OMG WHY?!
Who| What | When | Where | Why | How | OMG WHY?!
https://twitter.com/rustd
Pranav Rastogi
Program Manager, Azure WebJobs, ASP.NET
http://blog.amitapple.com/
Amit Apple
Senior Software Developer, Azure Web Sites
WhoTo Follow:
http://twitter.com/shanselman
Scott Hanselman
Microsoft
http://Friday.Azure.com
Learn More:
Who| What | When | Where | Why | How | OMG WHY?!
Mark Greenway
@MarkKGreenway

Weitere ähnliche Inhalte

Was ist angesagt?

WordPress as the Backbone(.js)
WordPress as the Backbone(.js)WordPress as the Backbone(.js)
WordPress as the Backbone(.js)Beau Lebens
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIBrian Hogg
 
PWA 與 Service Worker
PWA 與 Service WorkerPWA 與 Service Worker
PWA 與 Service WorkerAnna Su
 
JS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 HourJS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 HourValeri Karpov
 
Deploying a Location-Aware Ember Application
Deploying a Location-Aware Ember ApplicationDeploying a Location-Aware Ember Application
Deploying a Location-Aware Ember ApplicationBen Limmer
 
遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016Caesar Chi
 
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...Codemotion
 
How we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown UniversityHow we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown UniversityOvadiah Myrgorod
 
Advanced WordPress Development Environments
Advanced WordPress Development EnvironmentsAdvanced WordPress Development Environments
Advanced WordPress Development EnvironmentsBeau Lebens
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup PerformanceGreg Whalin
 
Build your application in seconds and optimize workflow as much as you can us...
Build your application in seconds and optimize workflow as much as you can us...Build your application in seconds and optimize workflow as much as you can us...
Build your application in seconds and optimize workflow as much as you can us...Alex S
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPressadamsilverstein
 
Web workers and service workers
Web workers and service workersWeb workers and service workers
Web workers and service workersNitish Phanse
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup PerformanceJustin Cataldo
 
Introducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applicationsIntroducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applicationsJohn Hann
 
Drupal, Android and iPhone
Drupal, Android and iPhoneDrupal, Android and iPhone
Drupal, Android and iPhoneAlexandru Badiu
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoHannes Hapke
 
Shipping Performant 3rd Party JavaScript Widgets
Shipping Performant 3rd Party JavaScript WidgetsShipping Performant 3rd Party JavaScript Widgets
Shipping Performant 3rd Party JavaScript WidgetsEric Clemmons
 

Was ist angesagt? (20)

WordPress as the Backbone(.js)
WordPress as the Backbone(.js)WordPress as the Backbone(.js)
WordPress as the Backbone(.js)
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
 
PWA 與 Service Worker
PWA 與 Service WorkerPWA 與 Service Worker
PWA 與 Service Worker
 
JS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 HourJS-IL: Getting MEAN in 1 Hour
JS-IL: Getting MEAN in 1 Hour
 
Deploying a Location-Aware Ember Application
Deploying a Location-Aware Ember ApplicationDeploying a Location-Aware Ember Application
Deploying a Location-Aware Ember Application
 
遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016
 
Jenkins Job DSL plugin
Jenkins Job DSL plugin Jenkins Job DSL plugin
Jenkins Job DSL plugin
 
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...
 
How we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown UniversityHow we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown University
 
Advanced WordPress Development Environments
Advanced WordPress Development EnvironmentsAdvanced WordPress Development Environments
Advanced WordPress Development Environments
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 
Build your application in seconds and optimize workflow as much as you can us...
Build your application in seconds and optimize workflow as much as you can us...Build your application in seconds and optimize workflow as much as you can us...
Build your application in seconds and optimize workflow as much as you can us...
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPress
 
Web workers and service workers
Web workers and service workersWeb workers and service workers
Web workers and service workers
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup Performance
 
Introducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applicationsIntroducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applications
 
Drupal, Android and iPhone
Drupal, Android and iPhoneDrupal, Android and iPhone
Drupal, Android and iPhone
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize Django
 
Shipping Performant 3rd Party JavaScript Widgets
Shipping Performant 3rd Party JavaScript WidgetsShipping Performant 3rd Party JavaScript Widgets
Shipping Performant 3rd Party JavaScript Widgets
 
Go & WebAssembly
Go & WebAssembly Go & WebAssembly
Go & WebAssembly
 

Ähnlich wie Cut your hair and get an azure webjob

Cut your hair and get an azure webjob
Cut your hair and get an azure webjobCut your hair and get an azure webjob
Cut your hair and get an azure webjobMark Greenway
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 OverviewMark Proctor
 
Introducing to node.js
Introducing to node.jsIntroducing to node.js
Introducing to node.jsJeongHun Byeon
 
PyWPS at COST WPS Workshop
PyWPS at COST WPS WorkshopPyWPS at COST WPS Workshop
PyWPS at COST WPS WorkshopJachym Cepicky
 
Azure Web Jobs
Azure Web JobsAzure Web Jobs
Azure Web JobsBizTalk360
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfNCCOMMS
 
Javascript Everywhere
Javascript EverywhereJavascript Everywhere
Javascript EverywherePascal Rettig
 
Build web application by express
Build web application by expressBuild web application by express
Build web application by expressShawn Meng
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patternsStoyan Stefanov
 
Web Performance Part 4 "Client-side performance"
Web Performance Part 4  "Client-side performance"Web Performance Part 4  "Client-side performance"
Web Performance Part 4 "Client-side performance"Binary Studio
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformWSO2
 
Express Presentation
Express PresentationExpress Presentation
Express Presentationaaronheckmann
 
The Web Becomes Graceful
The Web Becomes GracefulThe Web Becomes Graceful
The Web Becomes Gracefulcolorhook
 
Server Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetTom Croucher
 
Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)Ran Mizrahi
 
Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Ran Mizrahi
 

Ähnlich wie Cut your hair and get an azure webjob (20)

Cut your hair and get an azure webjob
Cut your hair and get an azure webjobCut your hair and get an azure webjob
Cut your hair and get an azure webjob
 
Azue Webjobs
Azue WebjobsAzue Webjobs
Azue Webjobs
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 Overview
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 
Introducing to node.js
Introducing to node.jsIntroducing to node.js
Introducing to node.js
 
PyWPS at COST WPS Workshop
PyWPS at COST WPS WorkshopPyWPS at COST WPS Workshop
PyWPS at COST WPS Workshop
 
Azure Web Jobs
Azure Web JobsAzure Web Jobs
Azure Web Jobs
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
 
Javascript Everywhere
Javascript EverywhereJavascript Everywhere
Javascript Everywhere
 
Build web application by express
Build web application by expressBuild web application by express
Build web application by express
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patterns
 
Web Performance Part 4 "Client-side performance"
Web Performance Part 4  "Client-side performance"Web Performance Part 4  "Client-side performance"
Web Performance Part 4 "Client-side performance"
 
Node azure
Node azureNode azure
Node azure
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 Platform
 
Express Presentation
Express PresentationExpress Presentation
Express Presentation
 
The Web Becomes Graceful
The Web Becomes GracefulThe Web Becomes Graceful
The Web Becomes Graceful
 
Nodejs web,db,hosting
Nodejs web,db,hostingNodejs web,db,hosting
Nodejs web,db,hosting
 
Server Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yet
 
Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)
 
Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)
 

Kürzlich hochgeladen

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Kürzlich hochgeladen (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Cut your hair and get an azure webjob

  • 1. CUTYOUR HAIR AND GET AN AZUREWEBJOB! Mark Greenway @MarkKGreenway Who | What | When | Where | Why | How | OMG WHY?!
  • 2. THANKS SPONSORS! Who | What | When | Where | Why | How | OMG WHY?!
  • 3. Who the #$@& is this guy?? WHO | What | When | Where | Why | How | OMG WHY?!
  • 4. What is an AzureWebJob? Who| WHAT | When | Where | Why | How | OMG WHY?! Location Name Azure PaaS WebJob Azure PaaS (old) Worker Role Heroku Worker App Harbor Worker Unithttps://flic.kr/p/5uJsLG
  • 5. What is an AzureWebJob? Who| WHAT | When | Where | Why | How | OMG WHY?! Options Powershell .BAT (Batch file) Node.JS Python .exe .NET Application https://flic.kr/p/a2qceu
  • 6. What is an AzureWebJob? Who| WHAT | When | Where | Why | How | OMG WHY?! Can’t do Run Servers Invoke Server Applications https://flic.kr/p/a2qceu
  • 7. When Does an Azure WebJob Run? Who| What | WHEN | Where | Why | How | OMG WHY?! 1. Triggered 2. Continuous © 2013 Tim Buss
  • 8. When Does an Azure WebJob Run? Who| What | WHEN | Where | Why | How | OMG WHY?! 1. Triggered © 2013 Tim Buss • Scheduled • Manual
  • 9. When Does an Azure WebJob Run? Who| What | WHEN | Where | Why | How | OMG WHY?! 2. Continuous © 2013 Tim Buss • Runs AllTheTime (withAlways On) • .NETTriggers Run (with SDK)
  • 10. Where Does an Azure WebJob Run? Who| What | When | WHERE | Why | How | OMG WHY?! 1. With An AzureWebsite (W/AWS) https://flic.kr/p/7fXoky • Logically bound to a particular site • Deployment options • Separate Manual Deployment • CLI • Web Interface • Continuous Deployment with site • 1 …n
  • 11. Where Does an Azure WebJob Run? 2. With Only Other AzureWebJobs https://flic.kr/p/ajkTkm • Not Logically bound to a particular site • Deployment options • Separate Manual Deployment • CLI • Web Interface • Independent git etc deployments. • 1 …n Who| What | When | WHERE | Why | How | OMG WHY?!
  • 12. Who| What | When | Where | WHY | How | OMG WHY?! Why Use AWebJob: • Process Log Files • Process Orders • Migrate Deleted Items to Long term storage • Compress Uploaded Images • Add Watermarks to Images • Run Nightly Tasks • Import on premise data to azure • Manage Videos for Smooth Streaming • RSS Aggregation • Migrating Log Files • Long Running Tasks • Complex Creation of User Records • Interaction with slow 3rd party systems • Convert JSON to XML • Email users • Decoupling • Scalability • OCR • Billing
  • 13. How to Manually UploadAWebJob : 1. Put files into a folder 2. Zip all the files in the folder 3. Go toWeb or CLI Who| What | When | Where | Why | HOW | OMG WHY?!
  • 14. How to “PiggyBack” Upload AWebJob : 1. Put files into a folder 2. Copy that folder to App_Data/jobs/[continuous,triggered]/ 3. Deploy As Usual Who| What | When | Where | Why | HOW | OMG WHY?!
  • 15. How to Continuously UploadAWebJob : Who| What | When | Where | Why | HOW | OMG WHY?! 1. Create Project in Same Solution 2. Modify Build to copy that folder to App_Data/jobs/[continuous,triggered]/ 3. Deploy As Usual
  • 16. How to Continuously UploadAWebJob : 1. Create Project in Same Solution 2. Modify Build to copy that folder to App_Data/jobs/[continuous,triggered]/ 3. Deploy As Usual *Heavily Photoshopped for Clarity Who| What | When | Where | Why | HOW | OMG WHY?!
  • 17. How to create a .NETWebJob Who| What | When | Where | Why | HOW | OMG WHY?! 1. File -> New -> Console Application 2. Add NuGet Packages for extra tooling
  • 18. How to create a .NET WebJob Who| What | When | Where | Why | HOW | OMG WHY?! static void Main() { var host = new JobHost(); host.RunAndBlock(); } public static void AzureQueue([QueueTrigger("myqueue")] string userJson) {} public static void AzureQueueObject([QueueTrigger("myqueue")] Person person) {} public static void SbQueue([ServiceBusTrigger("sbqueue")] string person) {} public static void SbQueueObject([ServiceBusTrigger("sbobjectqueue")] Person person) {} public static void Resize( [BlobTrigger(@"images-input/{name}")] WebImage input, [Blob(@"images-output/{name}")] out WebImage output) {}
  • 19. How to TEST a .NETWebJob Who| What | When | Where | Why | HOW | OMG WHY?! //IN WEBJOB CLASS public static Person LastPerson { get; set; } public static void SbQueueObject([ServiceBusTrigger("sbobjectqueue")] Person person) { LastPerson = person; Console.WriteLine("Service Bus Object Queue : {0}", person); } //INTEST CLASS [Test] public void PersonSetsLastPerson() { var dawn = PersonCreator.CreatePerson("Dawn"); ImageProcessing.SbQueueObject(dawn); Assert.AreEqual(dawn,ImageProcessing.LastPerson); }
  • 20. How to Debug a .NET WebJob Who| What | When | Where | Why | HOW | OMG WHY?! https://cutyourhair.scm.azurewebsites.net/azurejobs/#/jobs
  • 21. 1.Use A Backplane 2.Post Directly to the Backplane How to Update SignalR from aWebJob Who| What | When | Where | Why | How | OMG WHY?!
  • 22. How to Update SignalR from aWebJob Who| What | When | Where | Why | How | OMG WHY?!
  • 23. How to Update SignalR from aWebJob Who| What | When | Where | Why | How | OMG WHY?!
  • 24. Who| What | When | Where | Why | How | OMG WHY?! https://twitter.com/rustd Pranav Rastogi Program Manager, Azure WebJobs, ASP.NET http://blog.amitapple.com/ Amit Apple Senior Software Developer, Azure Web Sites WhoTo Follow: http://twitter.com/shanselman Scott Hanselman Microsoft http://Friday.Azure.com Learn More:
  • 25. Who| What | When | Where | Why | How | OMG WHY?! Mark Greenway @MarkKGreenway

Hinweis der Redaktion

  1. Next year’s date.
  2. Next year’s date.