SlideShare ist ein Scribd-Unternehmen logo
1 von 99
© Betabit Nederland B.V.
Daniël te Winkel
d.te.winkel@betabit.nl
© Betabit Nederland B.V.
Dagindeling
10:00 Start deel 1
12:00 Lunch
13:00 Start deel 2
16:30 Afsluiting (& prijsuitreiking!)
17:00 Einde Global Azure Bootcamp, locatie Betabit Utrecht
© Betabit Nederland B.V.
Agenda – Deel 1
- Intro
- Use case
- Web Apps
- Web Jobs
- Hands-on Lab
- Functions
- Hands-on Lab
- Service Fabric
© Betabit Nederland B.V.
Intro
© Betabit Nederland B.V.
Even voorstellen
Het team:
• Daniël te Winkel
• Bart Kemps
• Herbert Lindner
• Herman Lindner
• Raymond den Haan
© Betabit Nederland B.V.
Resiliency
© Betabit Nederland B.V.
Azure: services will fail
• Meerdere instanties van applicatie
• Gebruik een Load Balancer / Azure Application Gateway
• Gebruik Availability Sets
• Automatisch schalen om aan hogere vraag te kunnen voldoen
• Werk asynchroon waar mogelijk
• Gebruik ‘resiliency patterns’ voor externe communicatie
© Betabit Nederland B.V.
RTO, RPO & MTTR
• Recovery Time Objective
Acceptabele maximum tijd dat een applicatie niet beschikbaar is na een incident
• Recovery Point Objective
Acceptabele maximum tijd dat data verloren gaat tijdens een incident
• Mean Time To Recover
Gemiddelde tijd die nodig is een applicatie te herstellen na een incident
© Betabit Nederland B.V.
Azure SLA
SLA Downtime per week Downtime per month Downtime per year
99% 1.68 hours 7.2 hours 3.65 days
99.9% 10.1 minutes 43.2 minutes 8.76 hours
99.95% 5 minutes 21.6 minutes 4.38 hours
99.99% 1.01 minutes 4.32 minutes 52.56 minutes
99.999% 6 seconds 25.9 seconds 5.26 minutes
© Betabit Nederland B.V.
Composite SLA’s
© Betabit Nederland B.V.
Use case
© Betabit Nederland B.V.
© Betabit Nederland B.V.
Web Apps
© Betabit Nederland B.V.
Azure App Service Family
Web Apps
Web apps that scale with
your business
Mobile Apps
Build mobile apps for any
device
Logic Apps
Automate business processes
across SaaS and on-premises
API Apps
Build and consume APIs in
the cloud
© Betabit Nederland B.V.
Azure Web Apps
Support a variety of languages and platforms
.NET, Java, Node.js, PHP, Python, and more
Support scaling (manual or auto) and load balancing
Support slots for staged deployments and A/B testing
Support continuous integration
Global Scale
Scale up and down as needed,
manually or automatically
Enterprise Grade
ISO-, SOC2-, and PCO-compliant
with enterprise-level SLAs
Familiar and Fast
Leverage existing skills, plus
languages, frameworks, and
tools you're familiar with
© Betabit Nederland B.V.
Scaling - Cloud Computing Patterns
© Betabit Nederland B.V.
Scaling Up vs. Scaling Out
Scale Up
Vary the VM size
1 Core w/ 1.75 GB RAM
2 Cores w/ 3.5 GB RAM
4 Cores w/ 7 GB RAM
Scale Out
Vary the VM count
Max 3* instances
Max 10 instances
Max 20/50** instances
© Betabit Nederland B.V.
Manual Scaling vs. Auto-Scaling
Auto – Schedule &
Performance Rules
Manual – Scale via portal
or scripts
Auto – CPU Percentage
© Betabit Nederland B.V.
Deployment Slots
Use a Deploy-Confirm-Promote workflow
Promote via “swap” through Azure portal
http://sitename-slotname.azurewebsites.net
© Betabit Nederland B.V.
A/B Testing
Test changes by routing requests to different deployment slots
Use Traffic Routing to direct % of traffic to alternate slots
© Betabit Nederland B.V.
Continuous Integration
Web apps can be deployed manually via FTP or WebDeploy
Automate deployment using 3rd party source-control providers
Can also use a local Git repository from Azure Portal
DropBoxBitBucketGitHubCodePlexVisual Studio
Team Services
Git
© Betabit Nederland B.V.
Continuous Integration + Deployment Slots
1. Developer commits code
2. Automated process builds/compiles
and deploys to staging slot
3. Automated and other tests validate
content in staging slot
4. Staging content promoted to
production
5. Users see updated site
Staging
Production
TestSource
Control
1
2
3
4
5
© Betabit Nederland B.V.
App Service Plans
Billing and provisioning for App Service resources
Free Shared Basic Standard Premium
# of Apps 10 100 Unlimited Unlimited Unlimited
Shared Disk Space 1 GB 1 GB 10 GB 50 GB 500 GB
Maximum Instances 1 1 3 10 50
Autoscale No No No Yes Yes
Staging Environments 5 20
Custom Domains No Yes Yes Yes Yes
SLA 99.95%
© Betabit Nederland B.V.
Resiliency tips & tricks
Kies de juiste tier en scale out. Scale up kan reset veroorzaken
Geef elke omgeving (OTAP) zijn eigen App Service Plan
Scheidt web apps van web APIs voor afzonderlijke schaling
Gebruik App Service backup niet voor SQL backup (creëert .bacpac, kost DTU’s)
Gebruik Deployment Slots
© Betabit Nederland B.V.
Web Jobs
© Betabit Nederland B.V.
Azure WebJobs
“Run programs or scripts in WebJobs in your Azure App Service web app in three ways:
on demand, continuously, or on a schedule.
There is no additional cost to use WebJobs.”
© Betabit Nederland B.V.
Azure WebJobs
Host and schedule lightweights job on an existing website
Triggered once, by schedule or run continuously
Support:
batch (.exe/.cmd/.bat)
bash (.sh)
javascript (.js as node.js)
php (.php)
python (.py)
Dashboard Experience
© Betabit Nederland B.V.
Store & start WebJobs
WebJobs are stored within the website
• SitewwwrootApp_Datajobs{job_type}{job_name}
Will find the file to run by (first one found wins):
• First look for a file called run.{supported extension}
• If not found, look for any file with supported extension
• If not found, then not a runnable WebJob
© Betabit Nederland B.V.
Many Options for Deploying
• Azure Portal
• Visual Studio
• Visual Studio Team Services – Build
• FTP
• Dropbox
• Drag-n-drop in Kudu
• Others …
© Betabit Nederland B.V.
WebJobs SDK
© Betabit Nederland B.V.
WebJobs SDK
“The purpose of the WebJobs SDK is to simplify the code you write for common tasks that a
WebJob can perform, such as image processing, queue processing, RSS aggregation, file
maintenance, and sending emails. The WebJobs SDK has built-in features for working with
Azure Storage and Service Bus, for scheduling tasks and handling errors, and for many
other common scenarios.”
© Betabit Nederland B.V.
WebJobs SDK components
NuGet packages.
NuGet packages that you add to a Visual Studio Console Application project provide a
framework that your code uses by decorating your methods with WebJobs SDK
attributes.
Dashboard.
Part of the WebJobs SDK is included in Azure App Service and provides rich monitoring
and diagnostics for programs that use the NuGet packages. You don't have to write
code to use these monitoring and diagnostics features.
© Betabit Nederland B.V.
Triggers
Poll queue & create blob for each message:
© Betabit Nederland B.V.
Scheduling
TimerTrigger can be used to run WebJob on a schedule
Schedule WebJob as a whole (through Azure)
Use TimerTrigger to schedule individual functions of a WebJob
© Betabit Nederland B.V.
Dashboard features
Invoke functions
Replay functions
View logs
- Linked to WebJob (Console.Out, Trace, etc.)
- Linked to function invocation
© Betabit Nederland B.V.
Azure Functions
© Betabit Nederland B.V.
Azure Functions
Create a “serverless” event-
driven experience that
extends the existing Azure
App Service platform by
building “nanoservices” that
can scale based on demand
© Betabit Nederland B.V.
Supported Languages and Tools
Create functions in JavaScript,
C#, Python, and PHP, as well
as scripting options such as
Bash, Batch, and PowerShell,
that can be triggered by
virtually any event in Azure,
3rd party services, or on
premise systems
© Betabit Nederland B.V.
Common Scenarios
Your App or
Service
Office 365
Office
Graph
Azure
Storage
Other
Functions
Legacy
Systems
Web
Services
Timer-based processing
Azure service event processing
SaaS event processing
Serverless web application architectures
Serverless mobile backends
Real-time stream processing
Real-time bot messaging
© Betabit Nederland B.V.
Function App Templates
Function App templates are categorized into
general areas of Timer, Data Processing, and
Webhook & API
• BlobTrigger
• EventHubTrigger
• Generic webhook
• GitHub webhook
• HTTPTrigger
• QueueTrigger
• ServiceBusQueueTrigger
• ServiceBusTopicTrigger
• TimerTrigger
• Blank & Experimental
© Betabit Nederland B.V.
Timer Function Apps
Run at explicitly specified intervals, like every day at 2:00 am using CRON
expressions, like “0 */5 * * * *“ (every 5 minutes)
Can send information to other systems, but typically don’t “return” information, only
write to logs
Great for redundant cleanup and data management
Great for checking state of services
Can be combined with other functions
© Betabit Nederland B.V.
Data Processing Function Apps
Run when triggered by a data event, such as an item being added to a queue or
container
Typically have in and out parameters
Great for responding to CRUD events
Great for performing CRUD events
Great for moving content
Access data across services
© Betabit Nederland B.V.
Webhook & API Function Apps
Triggered by events in other services, like GitHub, Team Foundation Services, Office
365, OneDrive, Microsoft PowerApps
Takes in a request and sends back a response
Often mimic Web API and legacy web services flows
Typically need CORS settings managed
Best for exposing functionality to other apps and services
Great for building Logic Apps
© Betabit Nederland B.V.
code
Anatomy of a Function
A “Run” file that containing the function code
A “Function” file containing all service and trigger
bindings and parameters
A “Project” file containing project assembly and
NuGet package references
App Service settings, such as connection strings
and API keys
.NET Core and Project
references
Function configuration
Executable code
© Betabit Nederland B.V.
Function Bindings
Type Service Trigger Input Output
Schedule Azure Functions ✔
HTTP (REST or webhook) Azure Functions ✔ ✔*
Blob Storage Azure Storage ✔ ✔ ✔
Events Azure Event Hubs ✔ ✔
Queues Azure Storage ✔ ✔
Tables Azure Storage ✔ ✔
Tables Azure Mobile Apps ✔ ✔
No-SQL DB Azure DocumentDB ✔ ✔
Push Notifications Azure Notification Hubs ✔
Bindings serve as the basis for all connections to and from a function. Many
bindings can be “bi-directional” as well.
© Betabit Nederland B.V.
Testing Functions
Command-line tools
3rd party products such as
Postman and Swagger
Direct web calls via cURL
Nested functions
Microsoft Azure Storage Explorer
Visual Studio Cloud Explorer
© Betabit Nederland B.V.
Hands-on lab
© Betabit Nederland B.V.
Service Fabric
Topics
Introducing Microservices & Azure Service Fabric
Service Fabric Concepts
Developing Service Fabric Applications
Deployments & Upgrades
© Betabit Nederland B.V.
Introducing Microservices &
Azure Service Fabric
© Betabit Nederland B.V.
Microservices Architecture
An evolution of Service Oriented Architecture
Create a system as a suite of small, independently deployable services
Services communicate across lightweight protocols
Considerations
Services can be scaled to meet their individual needs
Supports use of different technology stacks for different system parts
Process automation is important (DevOps)
UI/UX
Storage
Storage
Business
Logic
Business
Logic
1...n
Monolithic Architecture
UI/UX
StorageStorage
Shopping
Cart
AuthN
Microservice Architecture
Storage
Product
Catalog
© Betabit Nederland B.V.
Azure Service Fabric
Can be thought of as an orchestrator of services across a managed cluster of
machines
Good for microservices, but not only
Can be run in Azure, on-premises, or in other clouds
Proven platform used by several Microsoft Cloud services, including:
• Azure SQL Database
• Document DB
• Cortana
• Microsoft Power BI
• Microsoft Intune
• Azure Event Hubs
• Azure IoT Hub
• Skype for Business
© Betabit Nederland B.V.
Service Fabric Concepts
© Betabit Nederland B.V.
Service Fabric Concepts
Application
Service Service Service
Node Node Node Node
Cluster
Partitions
© Betabit Nederland B.V.
Service Models
Reliable Service & Reliable
Actor Services
• Leverage Service Fabric’s
own programming models
• Networking Naming
Service support
• Integrate with code,
configuration, and data
upgrades
• Instances are not process
isolated for each instance,
but instead are created as
objects (higher density on
host.)
Guest Executable Services
• Arbitrary executable
packaged in a Service
Fabric service
• Can be written in any
language
• Service Fabric manages
orchestration and
execution management of
the executable
• Limited integration with
the Service Fabric APIs
Container Services
• Containers can either be
Reliable Services or Guest
Containers
• Supports Docker
Containers (Linux) and
Windows Server
Containers
• Currently in Preview
© Betabit Nederland B.V.
Reliable Services
Stateless Service
• Typically used for Web API front-
ends or background workers that
look at external queues
• No state is maintained within the
service, though external state
storage can certainly be used
Stateful Service
• Used when state must be consistent
and present for the service to
function
• Leverages the Reliable Collections
• ReliableQueue, ReliableDictionary
• State is kept locally, but replicated
for high-availability, backed with
disk storage for durability, and
transactional.
© Betabit Nederland B.V.
Partitioning – Stateless Services
Stateless Services
Node 1
Node 3Node 2
Node 5Node 4
I
I I
I I
• In a stateless environment,
scalability and availability generally
achieved by adding instances
• Place an instance of the service in
each Node
• Add Nodes to scale out
© Betabit Nederland B.V.
Partitioning – Stateful Services
Stateful Services
Node 1
Node 3Node 2
Node 5Node 4
S3P1 S2
S1P3
S4
S3P5 S4
P2
S5
S5
P4S1 S2
• For stateful services
• Services are Distributed for
scalability
• Service state is Replicated for
availability
• Distribute primary replicas across
the nodes in the cluster and also
place secondary replicas
• Add Nodes, then rebalance to scale
out
© Betabit Nederland B.V.
Reliable Actors
Implementation of the Virtual Actor pattern
Ideal when the application involves many (thousands) of small isolated units of logic & state
Built on top of Stateful Reliable Services
Actors are instantiated upon reference and collected upon inactivity
State Management can be used during reference to “restore” an actor
Actor actions are turn-based (single-threaded) per instance.
Supports Timers and Reminders
Also supports Events
© Betabit Nederland B.V.
Developing Service Fabric
Applications
Windows Setup
© Betabit Nederland B.V.
Installation
The Microsoft Azure Service Fabric SDK is included in the “Azure development”
Workload in the Visual Studio 2017 installer
© Betabit Nederland B.V.
Creating a Project
Create a new project by selecting the “Service Fabric Application” template from either
the Cloud project node.
Choose your desired service type template
© Betabit Nederland B.V.
Solution Structure
Application Project
The Services node lists the service projects that make up the
Application
Includes an Application Manifest that describes the services that make
up the Application
Includes application publishing profiles, and per-profile settings.
Service Project(s)
Includes a Service Manifest that describes the Service characteristics
Includes the Service code and configuration
© Betabit Nederland B.V.
Service Fabric Local Cluster
Installed as part of the Service Fabric SDK
Provides a local debug & test environment
Can provision a 1-node or 5-node cluster
Not an emulator or a simulator
Can be managed via the Windows System Tray application or via
PowerShell scripts.
Visual Studio is configured to work with the Local Cluster
© Betabit Nederland B.V.
Service Fabric Explorer
© Betabit Nederland B.V.
Deployments & Upgrades
© Betabit Nederland B.V.
Deploying in Azure
Service Fabric Applications are deployed in Azure into a Virtual Machine Cluster in a
Virtual Machine Scale Set (VMSS)
Clusters can be created on VMs running Windows Server 2012 R2, Windows Server
2016, or Linux Ubuntu 16.04 (in preview)
Clusters networking can be configured via Azure VNets, Subnets, Public IP Addresses,
and internal and/or external load balancing
Can be managed with Azure ARM templates,
Auto-scaling support is provided by Azure VMSS
Management is via a combination of Azure tools and Service Fabric tools
© Betabit Nederland B.V.
Application Deployments
Two types of deployments in Service Fabric – Full and Upgrade
In a Full Deployment, the entire application is torn down (if already present) and then a
new application instance is deployed.
Upgrade Deployments
Service Fabric supports rolling upgrades to maintain uptime
Service Fabric monitors application health during the upgrade. If the system violates the
application health policy, the upgrade is rolled back.
Several modes govern the automation and health-check behavior during an upgrade.
© Betabit Nederland B.V.
Lunch
© Betabit Nederland B.V.
Agenda – Deel 2
- Cognitive Services
- Hands-on lab
- Visual Studio Team Services
- Source control
- Builds
- Release Management
© Betabit Nederland B.V.
Cognitive Services
© Betabit Nederland B.V.
Cognitive Services
Enable natural and contextual interaction
Powerful artificial intelligence algorithms
Vision, Language, Speech, Search & Knowledge
Free trial
Subscription management
(products, quota left, add additional products)
Upgrade to unlock limits
Regional availability
© Betabit Nederland B.V.
Vision
© Betabit Nederland B.V.
Language
© Betabit Nederland B.V.
Speech
© Betabit Nederland B.V.
Search
© Betabit Nederland B.V.
Knowledge
© Betabit Nederland B.V.
Computer Vision
Tagging images
Categorizing images
Identify image types
Domain-specific content
Generating descriptions
Perceiving color schemes
Flagging adult content
Optical Character Recognition
Recognize handwritten tekst
Generating thumbnails
© Betabit Nederland B.V.
The 86-category concept
© Betabit Nederland B.V.
Computer Vision – Example
© Betabit Nederland B.V.
Generating description – Example
© Betabit Nederland B.V.
Face API
Face detection
Face recognition
Face verification
Finding similar face
Face grouping
Face identification
Face storage
© Betabit Nederland B.V.
Face API – Example
Face detection
Face Grouping
© Betabit Nederland B.V.
Cognitive Services – How to use…
They are ‘just’ REST APIs
Use SDKs
© Betabit Nederland B.V.
Hands-on lab
© Betabit Nederland B.V.
Visual Studio Team Services
© Betabit Nederland B.V.
Source control
Team Foundation Version Control (centralized)
Git (distributed)
The most commonly used version control system today
“Git is the default version control provider for new projects. You should use Git for version
control in your projects unless you have a specific need for centralized version control
features in TFVC.”
- visualstudio.com documentation
© Betabit Nederland B.V.
Continuous integration
- Link builds to test results, work items, code and releases
- Hosted build agents
- Multi-platform (Windows, Mac, Linux)
- Security, pool and queue management
- Automated builds
- Diagnostics
- Continuous deployment
© Betabit Nederland B.V.
Automated deployments
Design and automate release pipelines
across your environments to any
target platform.
© Betabit Nederland B.V.
Azure
Setup your release with built
in tasks for Azure and Azure
Stack – deploy to websites,
Docker containers,
virtual machines,
and more.
© Betabit Nederland B.V.
Quality
Configure tasks for all of your
release check points –
performance, A/B,
functional, security, beta
testing and more.
No more release day nightmares.
© Betabit Nederland B.V.
Control your deployments
Enable sign-off for
deployments using pre or
post deployment approvals.
Automatic notifications
ensure collaboration and
release visibility among
team members.
© Betabit Nederland B.V.
Traceability
Track the status of releases and
deployments including commits
and work items in each
environment.
© Betabit Nederland B.V.
Resources
Azure regions (includes products per region)
Cognitive Services SDKs & Samples
© Betabit Nederland B.V.
Sponsors
Bedankt voor je aandacht
© Betabit Nederland B.V.

Weitere ähnliche Inhalte

Was ist angesagt?

(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure StandardizationAmazon Web Services
 
Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013SharePointRadi
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformRonak Banka
 
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...Nima Badiey
 
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsMonitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsNima Badiey
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris O'Brien
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Stormy Peters
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deckAlexey Bokov
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 WorkflowsDamir Dobric
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developersDaniel Krook
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry BootcampJoshua Long
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialThomas Daly
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 
Cloudfoundry architecture
Cloudfoundry architectureCloudfoundry architecture
Cloudfoundry architectureRamnivas Laddad
 
Content migration for sitecore
Content migration for sitecoreContent migration for sitecore
Content migration for sitecoreSurendra Sharma
 
V mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kitV mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kitsolarisyougood
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuVMware Tanzu
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Slobodan Lohja
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseEric Shupps
 

Was ist angesagt? (20)

(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
 
Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
 
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
CloudBees Jenkins and Pivotal Cloud Foundry - Continuous Delivery for Cloud N...
 
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsMonitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deck
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 Workflows
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
Cloudfoundry architecture
Cloudfoundry architectureCloudfoundry architecture
Cloudfoundry architecture
 
Content migration for sitecore
Content migration for sitecoreContent migration for sitecore
Content migration for sitecore
 
V mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kitV mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kit
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
 

Ähnlich wie Global Azure Bootcamp 2017 at Betabit Utrecht

Getting started with development in azure
Getting started with development in azureGetting started with development in azure
Getting started with development in azureJasjit Chopra
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnetRick van den Bosch
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flowVincent Biret
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsBIWUG
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
Application modernization with azure PaaS and FaaS
Application modernization with azure PaaS and FaaSApplication modernization with azure PaaS and FaaS
Application modernization with azure PaaS and FaaSDileepa Rajapaksa
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookVMware Tanzu
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Bluegrass Digital
 
Pivotal spring boot-cloud workshop
Pivotal   spring boot-cloud workshopPivotal   spring boot-cloud workshop
Pivotal spring boot-cloud workshopSufyaan Kazi
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerVMware Tanzu
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerGregor Zurowski
 
Azure Serverless Toolbox
Azure Serverless ToolboxAzure Serverless Toolbox
Azure Serverless ToolboxJohan Eriksson
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentChris O'Brien
 
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...VMware Tanzu
 

Ähnlich wie Global Azure Bootcamp 2017 at Betabit Utrecht (20)

Azure Web Apps
Azure Web AppsAzure Web Apps
Azure Web Apps
 
Dude, Where's my Server?
Dude, Where's my Server?Dude, Where's my Server?
Dude, Where's my Server?
 
Getting started with development in azure
Getting started with development in azureGetting started with development in azure
Getting started with development in azure
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Application modernization with azure PaaS and FaaS
Application modernization with azure PaaS and FaaSApplication modernization with azure PaaS and FaaS
Application modernization with azure PaaS and FaaS
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015
 
Pivotal spring boot-cloud workshop
Pivotal   spring boot-cloud workshopPivotal   spring boot-cloud workshop
Pivotal spring boot-cloud workshop
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
 
Azure Serverless Toolbox
Azure Serverless ToolboxAzure Serverless Toolbox
Azure Serverless Toolbox
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 development
 
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
 
App Service Web
App Service WebApp Service Web
App Service Web
 

Kürzlich hochgeladen

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Kürzlich hochgeladen (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

Global Azure Bootcamp 2017 at Betabit Utrecht

  • 1. © Betabit Nederland B.V. Daniël te Winkel d.te.winkel@betabit.nl
  • 2. © Betabit Nederland B.V. Dagindeling 10:00 Start deel 1 12:00 Lunch 13:00 Start deel 2 16:30 Afsluiting (& prijsuitreiking!) 17:00 Einde Global Azure Bootcamp, locatie Betabit Utrecht
  • 3. © Betabit Nederland B.V. Agenda – Deel 1 - Intro - Use case - Web Apps - Web Jobs - Hands-on Lab - Functions - Hands-on Lab - Service Fabric
  • 4. © Betabit Nederland B.V. Intro
  • 5. © Betabit Nederland B.V. Even voorstellen Het team: • Daniël te Winkel • Bart Kemps • Herbert Lindner • Herman Lindner • Raymond den Haan
  • 6. © Betabit Nederland B.V. Resiliency
  • 7. © Betabit Nederland B.V. Azure: services will fail • Meerdere instanties van applicatie • Gebruik een Load Balancer / Azure Application Gateway • Gebruik Availability Sets • Automatisch schalen om aan hogere vraag te kunnen voldoen • Werk asynchroon waar mogelijk • Gebruik ‘resiliency patterns’ voor externe communicatie
  • 8. © Betabit Nederland B.V. RTO, RPO & MTTR • Recovery Time Objective Acceptabele maximum tijd dat een applicatie niet beschikbaar is na een incident • Recovery Point Objective Acceptabele maximum tijd dat data verloren gaat tijdens een incident • Mean Time To Recover Gemiddelde tijd die nodig is een applicatie te herstellen na een incident
  • 9. © Betabit Nederland B.V. Azure SLA SLA Downtime per week Downtime per month Downtime per year 99% 1.68 hours 7.2 hours 3.65 days 99.9% 10.1 minutes 43.2 minutes 8.76 hours 99.95% 5 minutes 21.6 minutes 4.38 hours 99.99% 1.01 minutes 4.32 minutes 52.56 minutes 99.999% 6 seconds 25.9 seconds 5.26 minutes
  • 10. © Betabit Nederland B.V. Composite SLA’s
  • 11. © Betabit Nederland B.V. Use case
  • 13. © Betabit Nederland B.V. Web Apps
  • 14. © Betabit Nederland B.V. Azure App Service Family Web Apps Web apps that scale with your business Mobile Apps Build mobile apps for any device Logic Apps Automate business processes across SaaS and on-premises API Apps Build and consume APIs in the cloud
  • 15. © Betabit Nederland B.V. Azure Web Apps Support a variety of languages and platforms .NET, Java, Node.js, PHP, Python, and more Support scaling (manual or auto) and load balancing Support slots for staged deployments and A/B testing Support continuous integration Global Scale Scale up and down as needed, manually or automatically Enterprise Grade ISO-, SOC2-, and PCO-compliant with enterprise-level SLAs Familiar and Fast Leverage existing skills, plus languages, frameworks, and tools you're familiar with
  • 16. © Betabit Nederland B.V. Scaling - Cloud Computing Patterns
  • 17. © Betabit Nederland B.V. Scaling Up vs. Scaling Out Scale Up Vary the VM size 1 Core w/ 1.75 GB RAM 2 Cores w/ 3.5 GB RAM 4 Cores w/ 7 GB RAM Scale Out Vary the VM count Max 3* instances Max 10 instances Max 20/50** instances
  • 18. © Betabit Nederland B.V. Manual Scaling vs. Auto-Scaling Auto – Schedule & Performance Rules Manual – Scale via portal or scripts Auto – CPU Percentage
  • 19.
  • 20.
  • 21.
  • 22. © Betabit Nederland B.V. Deployment Slots Use a Deploy-Confirm-Promote workflow Promote via “swap” through Azure portal http://sitename-slotname.azurewebsites.net
  • 23. © Betabit Nederland B.V. A/B Testing Test changes by routing requests to different deployment slots Use Traffic Routing to direct % of traffic to alternate slots
  • 24. © Betabit Nederland B.V. Continuous Integration Web apps can be deployed manually via FTP or WebDeploy Automate deployment using 3rd party source-control providers Can also use a local Git repository from Azure Portal DropBoxBitBucketGitHubCodePlexVisual Studio Team Services Git
  • 25. © Betabit Nederland B.V. Continuous Integration + Deployment Slots 1. Developer commits code 2. Automated process builds/compiles and deploys to staging slot 3. Automated and other tests validate content in staging slot 4. Staging content promoted to production 5. Users see updated site Staging Production TestSource Control 1 2 3 4 5
  • 26. © Betabit Nederland B.V. App Service Plans Billing and provisioning for App Service resources Free Shared Basic Standard Premium # of Apps 10 100 Unlimited Unlimited Unlimited Shared Disk Space 1 GB 1 GB 10 GB 50 GB 500 GB Maximum Instances 1 1 3 10 50 Autoscale No No No Yes Yes Staging Environments 5 20 Custom Domains No Yes Yes Yes Yes SLA 99.95%
  • 27. © Betabit Nederland B.V. Resiliency tips & tricks Kies de juiste tier en scale out. Scale up kan reset veroorzaken Geef elke omgeving (OTAP) zijn eigen App Service Plan Scheidt web apps van web APIs voor afzonderlijke schaling Gebruik App Service backup niet voor SQL backup (creëert .bacpac, kost DTU’s) Gebruik Deployment Slots
  • 28. © Betabit Nederland B.V. Web Jobs
  • 29. © Betabit Nederland B.V. Azure WebJobs “Run programs or scripts in WebJobs in your Azure App Service web app in three ways: on demand, continuously, or on a schedule. There is no additional cost to use WebJobs.”
  • 30. © Betabit Nederland B.V. Azure WebJobs Host and schedule lightweights job on an existing website Triggered once, by schedule or run continuously Support: batch (.exe/.cmd/.bat) bash (.sh) javascript (.js as node.js) php (.php) python (.py) Dashboard Experience
  • 31. © Betabit Nederland B.V. Store & start WebJobs WebJobs are stored within the website • SitewwwrootApp_Datajobs{job_type}{job_name} Will find the file to run by (first one found wins): • First look for a file called run.{supported extension} • If not found, look for any file with supported extension • If not found, then not a runnable WebJob
  • 32. © Betabit Nederland B.V. Many Options for Deploying • Azure Portal • Visual Studio • Visual Studio Team Services – Build • FTP • Dropbox • Drag-n-drop in Kudu • Others …
  • 33. © Betabit Nederland B.V. WebJobs SDK
  • 34. © Betabit Nederland B.V. WebJobs SDK “The purpose of the WebJobs SDK is to simplify the code you write for common tasks that a WebJob can perform, such as image processing, queue processing, RSS aggregation, file maintenance, and sending emails. The WebJobs SDK has built-in features for working with Azure Storage and Service Bus, for scheduling tasks and handling errors, and for many other common scenarios.”
  • 35. © Betabit Nederland B.V. WebJobs SDK components NuGet packages. NuGet packages that you add to a Visual Studio Console Application project provide a framework that your code uses by decorating your methods with WebJobs SDK attributes. Dashboard. Part of the WebJobs SDK is included in Azure App Service and provides rich monitoring and diagnostics for programs that use the NuGet packages. You don't have to write code to use these monitoring and diagnostics features.
  • 36. © Betabit Nederland B.V. Triggers Poll queue & create blob for each message:
  • 37. © Betabit Nederland B.V. Scheduling TimerTrigger can be used to run WebJob on a schedule Schedule WebJob as a whole (through Azure) Use TimerTrigger to schedule individual functions of a WebJob
  • 38. © Betabit Nederland B.V. Dashboard features Invoke functions Replay functions View logs - Linked to WebJob (Console.Out, Trace, etc.) - Linked to function invocation
  • 39. © Betabit Nederland B.V. Azure Functions
  • 40. © Betabit Nederland B.V. Azure Functions Create a “serverless” event- driven experience that extends the existing Azure App Service platform by building “nanoservices” that can scale based on demand
  • 41. © Betabit Nederland B.V. Supported Languages and Tools Create functions in JavaScript, C#, Python, and PHP, as well as scripting options such as Bash, Batch, and PowerShell, that can be triggered by virtually any event in Azure, 3rd party services, or on premise systems
  • 42. © Betabit Nederland B.V. Common Scenarios Your App or Service Office 365 Office Graph Azure Storage Other Functions Legacy Systems Web Services Timer-based processing Azure service event processing SaaS event processing Serverless web application architectures Serverless mobile backends Real-time stream processing Real-time bot messaging
  • 43. © Betabit Nederland B.V. Function App Templates Function App templates are categorized into general areas of Timer, Data Processing, and Webhook & API • BlobTrigger • EventHubTrigger • Generic webhook • GitHub webhook • HTTPTrigger • QueueTrigger • ServiceBusQueueTrigger • ServiceBusTopicTrigger • TimerTrigger • Blank & Experimental
  • 44. © Betabit Nederland B.V. Timer Function Apps Run at explicitly specified intervals, like every day at 2:00 am using CRON expressions, like “0 */5 * * * *“ (every 5 minutes) Can send information to other systems, but typically don’t “return” information, only write to logs Great for redundant cleanup and data management Great for checking state of services Can be combined with other functions
  • 45. © Betabit Nederland B.V. Data Processing Function Apps Run when triggered by a data event, such as an item being added to a queue or container Typically have in and out parameters Great for responding to CRUD events Great for performing CRUD events Great for moving content Access data across services
  • 46. © Betabit Nederland B.V. Webhook & API Function Apps Triggered by events in other services, like GitHub, Team Foundation Services, Office 365, OneDrive, Microsoft PowerApps Takes in a request and sends back a response Often mimic Web API and legacy web services flows Typically need CORS settings managed Best for exposing functionality to other apps and services Great for building Logic Apps
  • 47. © Betabit Nederland B.V. code Anatomy of a Function A “Run” file that containing the function code A “Function” file containing all service and trigger bindings and parameters A “Project” file containing project assembly and NuGet package references App Service settings, such as connection strings and API keys .NET Core and Project references Function configuration Executable code
  • 48. © Betabit Nederland B.V. Function Bindings Type Service Trigger Input Output Schedule Azure Functions ✔ HTTP (REST or webhook) Azure Functions ✔ ✔* Blob Storage Azure Storage ✔ ✔ ✔ Events Azure Event Hubs ✔ ✔ Queues Azure Storage ✔ ✔ Tables Azure Storage ✔ ✔ Tables Azure Mobile Apps ✔ ✔ No-SQL DB Azure DocumentDB ✔ ✔ Push Notifications Azure Notification Hubs ✔ Bindings serve as the basis for all connections to and from a function. Many bindings can be “bi-directional” as well.
  • 49. © Betabit Nederland B.V. Testing Functions Command-line tools 3rd party products such as Postman and Swagger Direct web calls via cURL Nested functions Microsoft Azure Storage Explorer Visual Studio Cloud Explorer
  • 50. © Betabit Nederland B.V. Hands-on lab
  • 51. © Betabit Nederland B.V. Service Fabric
  • 52. Topics Introducing Microservices & Azure Service Fabric Service Fabric Concepts Developing Service Fabric Applications Deployments & Upgrades
  • 53. © Betabit Nederland B.V. Introducing Microservices & Azure Service Fabric
  • 54. © Betabit Nederland B.V. Microservices Architecture An evolution of Service Oriented Architecture Create a system as a suite of small, independently deployable services Services communicate across lightweight protocols Considerations Services can be scaled to meet their individual needs Supports use of different technology stacks for different system parts Process automation is important (DevOps) UI/UX Storage Storage Business Logic Business Logic 1...n Monolithic Architecture UI/UX StorageStorage Shopping Cart AuthN Microservice Architecture Storage Product Catalog
  • 55. © Betabit Nederland B.V. Azure Service Fabric Can be thought of as an orchestrator of services across a managed cluster of machines Good for microservices, but not only Can be run in Azure, on-premises, or in other clouds Proven platform used by several Microsoft Cloud services, including: • Azure SQL Database • Document DB • Cortana • Microsoft Power BI • Microsoft Intune • Azure Event Hubs • Azure IoT Hub • Skype for Business
  • 56. © Betabit Nederland B.V. Service Fabric Concepts
  • 57. © Betabit Nederland B.V. Service Fabric Concepts Application Service Service Service Node Node Node Node Cluster Partitions
  • 58. © Betabit Nederland B.V. Service Models Reliable Service & Reliable Actor Services • Leverage Service Fabric’s own programming models • Networking Naming Service support • Integrate with code, configuration, and data upgrades • Instances are not process isolated for each instance, but instead are created as objects (higher density on host.) Guest Executable Services • Arbitrary executable packaged in a Service Fabric service • Can be written in any language • Service Fabric manages orchestration and execution management of the executable • Limited integration with the Service Fabric APIs Container Services • Containers can either be Reliable Services or Guest Containers • Supports Docker Containers (Linux) and Windows Server Containers • Currently in Preview
  • 59. © Betabit Nederland B.V. Reliable Services Stateless Service • Typically used for Web API front- ends or background workers that look at external queues • No state is maintained within the service, though external state storage can certainly be used Stateful Service • Used when state must be consistent and present for the service to function • Leverages the Reliable Collections • ReliableQueue, ReliableDictionary • State is kept locally, but replicated for high-availability, backed with disk storage for durability, and transactional.
  • 60. © Betabit Nederland B.V. Partitioning – Stateless Services Stateless Services Node 1 Node 3Node 2 Node 5Node 4 I I I I I • In a stateless environment, scalability and availability generally achieved by adding instances • Place an instance of the service in each Node • Add Nodes to scale out
  • 61. © Betabit Nederland B.V. Partitioning – Stateful Services Stateful Services Node 1 Node 3Node 2 Node 5Node 4 S3P1 S2 S1P3 S4 S3P5 S4 P2 S5 S5 P4S1 S2 • For stateful services • Services are Distributed for scalability • Service state is Replicated for availability • Distribute primary replicas across the nodes in the cluster and also place secondary replicas • Add Nodes, then rebalance to scale out
  • 62. © Betabit Nederland B.V. Reliable Actors Implementation of the Virtual Actor pattern Ideal when the application involves many (thousands) of small isolated units of logic & state Built on top of Stateful Reliable Services Actors are instantiated upon reference and collected upon inactivity State Management can be used during reference to “restore” an actor Actor actions are turn-based (single-threaded) per instance. Supports Timers and Reminders Also supports Events
  • 63. © Betabit Nederland B.V. Developing Service Fabric Applications Windows Setup
  • 64. © Betabit Nederland B.V. Installation The Microsoft Azure Service Fabric SDK is included in the “Azure development” Workload in the Visual Studio 2017 installer
  • 65. © Betabit Nederland B.V. Creating a Project Create a new project by selecting the “Service Fabric Application” template from either the Cloud project node. Choose your desired service type template
  • 66. © Betabit Nederland B.V. Solution Structure Application Project The Services node lists the service projects that make up the Application Includes an Application Manifest that describes the services that make up the Application Includes application publishing profiles, and per-profile settings. Service Project(s) Includes a Service Manifest that describes the Service characteristics Includes the Service code and configuration
  • 67. © Betabit Nederland B.V. Service Fabric Local Cluster Installed as part of the Service Fabric SDK Provides a local debug & test environment Can provision a 1-node or 5-node cluster Not an emulator or a simulator Can be managed via the Windows System Tray application or via PowerShell scripts. Visual Studio is configured to work with the Local Cluster
  • 68. © Betabit Nederland B.V. Service Fabric Explorer
  • 69. © Betabit Nederland B.V. Deployments & Upgrades
  • 70. © Betabit Nederland B.V. Deploying in Azure Service Fabric Applications are deployed in Azure into a Virtual Machine Cluster in a Virtual Machine Scale Set (VMSS) Clusters can be created on VMs running Windows Server 2012 R2, Windows Server 2016, or Linux Ubuntu 16.04 (in preview) Clusters networking can be configured via Azure VNets, Subnets, Public IP Addresses, and internal and/or external load balancing Can be managed with Azure ARM templates, Auto-scaling support is provided by Azure VMSS Management is via a combination of Azure tools and Service Fabric tools
  • 71. © Betabit Nederland B.V. Application Deployments Two types of deployments in Service Fabric – Full and Upgrade In a Full Deployment, the entire application is torn down (if already present) and then a new application instance is deployed. Upgrade Deployments Service Fabric supports rolling upgrades to maintain uptime Service Fabric monitors application health during the upgrade. If the system violates the application health policy, the upgrade is rolled back. Several modes govern the automation and health-check behavior during an upgrade.
  • 72. © Betabit Nederland B.V. Lunch
  • 73. © Betabit Nederland B.V. Agenda – Deel 2 - Cognitive Services - Hands-on lab - Visual Studio Team Services - Source control - Builds - Release Management
  • 74. © Betabit Nederland B.V. Cognitive Services
  • 75. © Betabit Nederland B.V. Cognitive Services Enable natural and contextual interaction Powerful artificial intelligence algorithms Vision, Language, Speech, Search & Knowledge Free trial Subscription management (products, quota left, add additional products) Upgrade to unlock limits Regional availability
  • 76. © Betabit Nederland B.V. Vision
  • 77. © Betabit Nederland B.V. Language
  • 78. © Betabit Nederland B.V. Speech
  • 79. © Betabit Nederland B.V. Search
  • 80. © Betabit Nederland B.V. Knowledge
  • 81. © Betabit Nederland B.V. Computer Vision Tagging images Categorizing images Identify image types Domain-specific content Generating descriptions Perceiving color schemes Flagging adult content Optical Character Recognition Recognize handwritten tekst Generating thumbnails
  • 82. © Betabit Nederland B.V. The 86-category concept
  • 83. © Betabit Nederland B.V. Computer Vision – Example
  • 84. © Betabit Nederland B.V. Generating description – Example
  • 85. © Betabit Nederland B.V. Face API Face detection Face recognition Face verification Finding similar face Face grouping Face identification Face storage
  • 86. © Betabit Nederland B.V. Face API – Example Face detection Face Grouping
  • 87. © Betabit Nederland B.V. Cognitive Services – How to use… They are ‘just’ REST APIs Use SDKs
  • 88. © Betabit Nederland B.V. Hands-on lab
  • 89. © Betabit Nederland B.V. Visual Studio Team Services
  • 90. © Betabit Nederland B.V. Source control Team Foundation Version Control (centralized) Git (distributed) The most commonly used version control system today “Git is the default version control provider for new projects. You should use Git for version control in your projects unless you have a specific need for centralized version control features in TFVC.” - visualstudio.com documentation
  • 91. © Betabit Nederland B.V. Continuous integration - Link builds to test results, work items, code and releases - Hosted build agents - Multi-platform (Windows, Mac, Linux) - Security, pool and queue management - Automated builds - Diagnostics - Continuous deployment
  • 92. © Betabit Nederland B.V. Automated deployments Design and automate release pipelines across your environments to any target platform.
  • 93. © Betabit Nederland B.V. Azure Setup your release with built in tasks for Azure and Azure Stack – deploy to websites, Docker containers, virtual machines, and more.
  • 94. © Betabit Nederland B.V. Quality Configure tasks for all of your release check points – performance, A/B, functional, security, beta testing and more. No more release day nightmares.
  • 95. © Betabit Nederland B.V. Control your deployments Enable sign-off for deployments using pre or post deployment approvals. Automatic notifications ensure collaboration and release visibility among team members.
  • 96. © Betabit Nederland B.V. Traceability Track the status of releases and deployments including commits and work items in each environment.
  • 97. © Betabit Nederland B.V. Resources Azure regions (includes products per region) Cognitive Services SDKs & Samples
  • 98. © Betabit Nederland B.V. Sponsors
  • 99. Bedankt voor je aandacht © Betabit Nederland B.V.

Hinweis der Redaktion

  1. Azure App Service is a PaaS offering that comprises four separate (but related) services: Web Apps is a fully managed compute platform optimized to host Web sites and Web applications Mobile Apps provides infrastructure for hosting back-ends for mobile apps -- for example, it provides infrastructure for sending push notifications not only to Windows clients, but to iOS and Android clients as well API Apps makes it easy to host APIs in the cloud, features integrated support for Swagger (http://swagger.io/), and offers a built-in authentication service for restricting access to APIs Logic Apps allows you to automate business processes and workflow -- for example, automatically finding negative tweets about your company and sending notifications to a Slack channel Together, these services comprise a ready-made solution to many of the challenges involved in publishing Web sites, Web apps, Web services, mobile apps, and more.
  2. The focus of this presentation is Azure Web Apps (https://azure.microsoft.com/en-us/documentation/articles/app-service-web-overview/). This service supports multiple languages and frameworks, including ASP.NET, Node.js, Java, PHP, and Python, so you can "use what you know" to begin leveraging it quickly. It supports scaling (manually or automatically) so capacity can grow as demand grows. It supports deployment slots for staged deployments -- for example, publish to staging, test your changes there, and then swap it into production only after you're confident it is ready. And it supports continuous integration, enabling you to be agile and aggressive in fixing bugs, adding features, and doing everything else needed to keep your site fresh and up to date.
  3. Deploy a Web app on a single server and you'll hit a wall when the demand on that server reaches a certain level. Deploy it in Azure, however, and you can handle bursts through auto-scaling or steady growth through manual scaling.
  4. With a traditional server farm, there are two ways to scale to meet demand: Scale up by beefing up the servers (more RAM, more cores, etc.) Scale out by adding servers The same holds true for virtual server farms. In App Services, scale up is a choice between B/S/P 1-3, where 1 = 1 Core, 1/75 GB RAM, 2 = 2 Core, 3.5 GB RAM, 3 = 4 Core, 7 GB RAM. You can also scale up/down between tiers (B/S/P), which impacts local HDD storage (10/50/250 GB) as well as the cap on number of instances (3/10/50). * For 3 instances on Basic, only manual scaling is supported ** For Premium Tier, there is a max of 20 if not using ASEs, and 50 if using ASE’s
  5. Manual scaling can be as simple as moving a slider to increase the number of VM instances. Auto-scaling can be enacted by scaling the number of VM instances as CPU utilization increases, or through rules that you specify. An example of the latter is scaling up during certain hours of the day in which you anticipate peak demand.
  6. Demonstrate scaling out in this and the next two slides by showing the VM count increasing as traffic increases.
  7. When you deploy an Azure Web App, you can deploy to a separate deployment slot instead of the default production slot when running in the Standard or Premium App Service plan mode. Deployment slots are actually live web apps with their own hostnames. Web app content and configurations elements can be swapped between two deployment slots, including the production slot. Deploying your application to a deployment slot has the following benefits: You can validate changes in a staging deployment slot before swapping it with the production slot. Deploying a web app to a slot first and swapping it into production ensures that all instances of the slot are warmed up before being swapped into production. This eliminates downtime when you deploy your web app. The traffic redirection is seamless, and no requests are dropped as a result of swap operations. This entire workflow can be automated by configuring Auto Swap when pre-swap validation is not needed. After a swap, the slot with the previously staged web app now has the previous production web app. If the changes swapped into the production slot are not as you expected, you can perform the same swap immediately to get your "last known good site" back For more information, see https://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/.
  8. A/B testing is useful for determining which of two landing pages, for example, is more effective in engaging customers. With Azure Web Apps, you can easily route traffic to different deployment slots by specifying percentage-based traffic allocations in the portal.
  9. Continuous integration means deploying updates to your Web app as often as needed -- even several times a day. Azure supports many different deployment methods, including FTP, Git deployment (publishing from a local Git repository to Azure), and WebDeploy, which supports diff-deployment, database creation, and more. Visual Studio has integrated support for all three. Teams can also publish via third-party source-control providers such as Kudu (https://github.com/projectkudu/kudu/wiki/Deployment), which supports deployments from OneDrive and Dropbox, as well as repository-based deployments from GitHub, BitBucket, VSTS, and local Git repositories. For more information, see https://azure.microsoft.com/en-us/documentation/articles/web-sites-deploy/.
  10. This process is a tried and tested one that is easily enacted using a combination of Azure features (e.g., deployment slots) and tooling support (e.g., Visual Studio).
  11. When you create an Azure Web App, you are asked to choose an App Service plan (or create a new one). These plans support 5 pricing tiers (Free, Shared, Basic, Standard, and Premium), with each tier offering a unique combination of capabilities and capacity. Apps in the same subscription and geographic location can share a plan. For more information, see https://azure.microsoft.com/en-us/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/.
  12. Azure Functions are part of the Azure Web + Mobile suite of App Services and are designed to enable the creation of small pieces of meaningful, reusable methods, easily shared across services. These serverless, event-driven methods are often referred to as “nanoservices” due to their small size. Although an Azure Function can contain quite a bit of code, they are typically designed to serve a single purpose, and respond to events in connected services.
  13. Azure Functions can be created in most common development and scripting languages, and can be “triggered” by events in other Azure App Services, such as Web, Mobile, Logic, and API apps. Azure Functions can also be exposed via HTTP URL schemes for easy integration into legacy systems.
  14. Azure Functions are “event-driven” meaning they run based on associated and configure events, or “triggers”. For example an Azure Function could be triggered by a simple timer, such as running a process once every 24-hours, or triggered by an event in a document management system, such as when a new document is uploaded to a SharePoint library. Azure Functions can also respond to Azure-specific events, such as an image added to a Storage Blob or a notification arriving in a Message Queue.
  15. Although Azure Functions can be created from scratch”, the Azure Portal exposes a large number of ever-growing templates to help get developers started. These templates are typically designed with specific triggers in mind, such as a Blob Storage event, or a GitHub webhook event. Templates can easily form the basis for robust function creation, and are really designed just to get a developer started.
  16. Timer Functions are exactly what they sound like: Functions triggered by a specific time event. Timer Functions are perfect for clean up and maintenance processes and can easily be combined with other functions for more robust scenarios. Timer Functions us CRON expressions to configure schedules. It’s a good idea to get familiar with CRON syntax, but in the meantime there are a number of tools online to help you build CRON expressions.
  17. Data Processing Functions are triggered by activity in a datastore, such as a table, queue, or container. Data Processing Functions also typically have both “in” and “out” parameters, meaning they can accept an object as a parameter, and then process information and then return another object from within the function. This is not the same as a “return” value, as most Azure Functions either return void, or an HTTP response such as “created”, “accepted”, or “OK”.
  18. Webhook and API Functions are designed to easily integrate with 3rd party systems, like GitHub, Office 365, and especially Microsoft PowerApps. Since Webhook and API Functions are often exposed to external or legacy systems, they typically need CORS settings managed in order to “allow” external resources to “see” and execute the function. Most Azure Logic Apps leverage Webhook and API Functions directly.
  19. An Azure Function is really a group of a few files that work in harmony. All actual function logic resides in a “Run” file written in a language of choice. A “Project” file is similar to a project file in other technologies such as .NET Core or Universal Windows Platform and contains “secondary” assembly references such as NuGet packages. Finally a “Function” file contains information about triggers and parameters, such as locations of Storage Queue connection strings and whether the parameter is design as an “in”, “out” or “bi-directional”. Optionally, additional configuration is also found in the Function App Settings such as an API Key or database connection string.
  20. Without bindings, an Azure Function would just be a “disconnected” algorithm without any way to serve a purpose. Bindings server to connect functions and output to other services. Some of the most common binding types and features are listed in the table, however variations and adaptations can and do exist.
  21. Many Azure Functions are exposed via an actual URL that can be called directly from a web client or browser. When an Azure Function is not exposed via a URL its common practice to call the function from another dunction, such as a Timer-based Function for testing purposes only. Since Azure Functions can be nested, testing scenarios can be quite varied. For managing and testing Azure Functions that integrate with Storage Containers, Microsoft provides the Microsoft Azure Storage Explorer, as well as the Visual Studio Cloud Explorer. The Logs console in the Azure Function Designer is also a great way to view and trace function processing.
  22. Objective: Discuss the agenda for the deck Notes: The deck is broken into 4 sections that discuss: An Introduction to Azure Service Fabric and the Microservices Architecture Pattern A discussion of the key Service Fabric concepts Getting Started with the development tools for Azure Service Fabric An overview of deployment and upgrade concepts
  23. Objective: This section will provide a high-level introduction to Azure Service Fabric and to the Microservices Architecture pattern.
  24. Objective: To provide an initial explanation of what a Microservices architecture entails Notes: The Microservices architecture is an evolution of the older Service Oriented Architecture (SOA) pattern, building on top of the rapid develop/test/deploy cycles that have arisen due to advances in both technology and project process management. In a Traditional “Monolithic” solution, a system will often be made up of large self-contained applications which are scaled as a group. Storage is often a single entity – albeit with some redundancy – and is scoped to address the entire set of application needs. Application segmentation usually takes the form of modules, libraries, or other platform artifacts that allow some segregation of implementation, but nonetheless, the application is both deployed and scaled as a single fixed unit. In a “Microservices Architecture”, the system is deployed as a suite of smaller, independent services which communicate over lightweight protocols such as HTTP or TCP. These smaller units can be developed and deployed independently, including support for using different platforms/languages/technologies to do so. As long as the contracts between the services are enforced (or otherwise managed), different parts of the application can be developed, deployed, and scaled independently of each other. Furthermore, storage is typically scoped just to the service that needs it, offering perhaps more nuanced choices for using different kinds of storage for different parts of the solution. Of course, with this added flexibility comes some additional responsibility – there are more individual units to deploy and manage. A good DevOps pipeline greatly facilitates the ability for a team to manage the additional complexity involved in the Microservices approach to distributing an application’s functionality.
  25. Objective: To provide a high level description of Azure Service Fabric Notes: Azure Service Fabric is a platform that manages or orchestrates one or several services across a cluster of machines. As such it is an ideal fit for applications that are designed around a Microservices architecture, though it can also accommodate other application architectures as well. Service Fabric solutions can be deployed into Microsoft Azure, on-premises, or even in other vendors clouds, though there is additional tooling and support when deployed in Microsoft Azure. As you can see, Service Fabric is not just a tool that is being made available to Azure customers, it is also a key part of the underpinnings of several components of the Microsoft Cloud, including the list shown here, among several others.
  26. Objective: This section will discuss several key Service Fabric Concepts, including the application and service models.
  27. Objective: Present the Core Concepts that make up a Service Fabric Application Notes: A Service Fabric Application is made up of a collection of Services, where each service id responsible for performing some distinct function. Services are composed of Code, Configuration, and Data, where code is the executable binaries, configuration consists of the service settings that affect its runtime behavior, and data is any arbitrary static data that the service will consume at runtime. Service Fabric supports several different Service models, and can be categorized as being either Stateful Services or Stateless Services (the different service models will be discussed in an upcoming slide.) At runtime, services are deployed into a Cluster, where a cluster is a scalable collection made up of a set of either physical or virtual machines. Each machine (physical or virtual) that is part of a cluster is called a Node. Service Fabric manages distribution of services across the cluster based on placement criteria identified in the service’s configuration and also on the application’s resource balancing needs. The configuration for each service will include a partition scheme for that service, as well as instance and/or replica counts. Services can split data and processing across multiple partitions, which are then spread out across the nodes in a cluster. Stateless services have instances, whereas stateful services have replicas. Instances provide availability, in that in the event of a failure of one instance, the other instances continue to function. Replicas keep the state for a service in sync across multiple partitions; should one replica fail, one of the others will take its place and a new replica will be created.
  28. Objective: To introduce the available models for service development in Azure Service Fabric Notes: There are 3 general categories of services that Azure Service Fabric can manage – “Reliable Service & Reliable Actor Applications”, “Guest Executable Applications”, and “Container Applications”. Reliable Service & Reliable Actor Services are built on top of .NET SDK frameworks provided by Azure Service Fabric. As such, they have programmatic access to service and service-fabric functionality. This includes accessing the Service Fabric Naming Service (resolve service instance URL by name) and integration with the instance lifecycle events, among others. Additionally, service instances are create as objects under the management of Service Fabric, instead of individual processes, which allows for higher density within the host cluster. These models will be discussed more in detail shortly. Guest Executable Services allow you to create a service that hosts an arbitrary executable. This executable can be written in any language you choose, and Service Fabric will take care of execution management tasks like ensuring the application is running and other orchestration tasks. Because guest executables are not built on top of the Service Fabric APIs, they have limited access internally to the Service Fabric functionality. Container Services can be thought of as an application-within-an-application, in that multiple services can be placed within a container. This includes supporting Reliable Services which include Stateless Services within a container (Linux only), Stateful Services within a container (Windows only), or arbitrary guest executables within a container. Additional Information: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-existing-app https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-containers-overview
  29. Objective: To introduce the Reliable Service programming models available in Azure Service Fabric Notes: Azure Service Fabric supports 2 different Reliable Service programming models – Stateless Service and Stateful Service (along with the Stateful Actor framework, to be discussed shortly.) Stateless services (as the name implies) do not include provisions for handling in-process state. Note that a stateless service *can* maintain state, it is just that the programming framework does not provide any tooling to that end. The state must be persisted to some external storage mechanism (like a database), and is not dissimilar from a typical stateless web application design. Stateful services include access to in-process state. The stateful information is both replicated and persisted to disk. Additionally, the stateful collections that are managed by Stateful Services also support transactions to ensure consistent operations. Additional Information: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-introduction
  30. Objective: To introduce the concept and impact of Partitioning in a Stateless Service Notes: Let’s take a look at the different Reliable Services and see how Partitioning allows Service Fabric to provide reliability and scalability. Since Stateless Services have no inherent state, the reliability and scalability come simply from numbers. Reliability exists because if one instance goes down, there are still other instances present to handle the load. Scalability is present because adding (or removing) nodes allows the service to handle additional (or reduced) volume. Here we have a Stateless Service running in 3 Partitions distributed across 3 Nodes. (Animation) If we add two more Nodes to the service, Service Fabric simply also create two additional service instances.
  31. Objective: To introduce the concept and impact of Partitioning in a Stateful Service Notes: Providing scalability and reliability is a little trickier in a Stateful Service. In order to do so, we need to maintain distributed replicas of the state in each partition, keeping track of a primary Partition and a number of Secondary Partitions. Reliability exists because if Service Fabric is aware of a single node going down, it can rebalance using the Secondary partition replicas located on other nodes, promoting them to Primary nodes as necessary and creating new additional Secondary replicas. Scalability is present as long as the number of Nodes approaches the number of Partitions (when scaling up.) Once you have more Nodes than Partitions, the additional Nodes do not generally contribute to expanded capacity in the system. Here we have a Stateful Service running in 5 Partitions with 3 Replicas per partition, distributed across 3 Nodes. (Animation) If we add two more Nodes to the service, Service Fabric rebalances the existing partitions, easing the load on the original 3 Nodes.
  32. Objective: To introduce the Reliable Actors framework available in Azure Service Fabric development Notes: The Reliable Actors framework is a Virtual Actor implementation that is built on top of stateful Reliable Services. In a Virtual Actor implementation, an Actor is a unit of both logic and state that is managed by the framework. Client applications reference an actor by a unique ID. The framework manages the allocation and lifetime of individual actor instances, including “resurrecting” an actor instance which has gone dormant due to a period of inactivity. Actor instances provide a turn-based, single-threaded access model, making it possible to not have to deal with concurrency issues in a distributed programming model. With this single-threaded behavior, Timers and Reminders both offer support for running code after a function call has completed. Timers and reminders differ mainly in that Timers cannot “re-awaken” a time-expired actor, whereas Reminders will continue to execute, “waking” a dormant actor instance as necessary, until the actor unregisters the reminder or the actor is explicitly deleted. Finally, actors also support raising events back to the calling application. Because of the nature of distributed programming, these events are not strictly guaranteed to reach their listeners (if reliable messaging is required, a queue-based or similar solution is recommended.) Additional Information: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-introduction
  33. Objective: Introduces the concepts related to developing Service Fabric projects with Visual Studio 2017 on Windows. For Linux, see https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started-linux For Mac OS, see https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started-mac
  34. Objective: Show what needs to be done to install the Service Fabric SDK and development tools in Visual Studio 2017 Notes: The Visual Studio 2017 features a different take on the previous Visual Studio installers, where “Features” are replaced by “Workloads.” To install the Service Fabric tools in Visual Studio 2017, you select the “Azure development” workload from the “Web & Cloud” section in the installer. For Visual Studio 2015, see https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started Note – in Visual Studio 2015, the Azure Service Fabric SDK and tools were deployed and updated via the Web Platform Installer. In Visual Studio 2017, these components have been moved to be part of the installation and update process for Visual Studio itself.
  35. Objective: To show how to start a new Azure Service Fabric project in Visual Studio 2017 Notes: To create a new Azure Service Fabric project in Visual Studio 2017, select File/New Project, then select the “Service Fabric Application” option from the “Cloud” node. Notice the various Service project types that can be created: Stateless & Stateful Reliable Services An Actor Service A Stateless Reliable Service provisioned with ASP.NET WebAPI endpoints A Guest Executable Service A Container Service (in Preview) A Stateless Reliable Service provisioned with ASP.NET Core (this project can also be used for web projects that include user interface elements.)
  36. Objective: To explain the folder and content layout of a typical Service Fabric solution Notes: When you create a new Service Fabric project in Visual Studio, your solution will be set up with at least 2 projects, each containing several important files. Each solution will include one Application Project (ServiceFabricDemo in the illustration) This project includes the configuration for the overall Application managed by Service Fabric (an application can include one or more services) The services node lists the services that have been included in this application – you can open this node and add or remove services The key file in this project is the Application Manifest file. This file identifies both the application type and the application version, and specifies the services that will make up the application as well as how the applications will be laid out in the Service Fabric cluster. The project also includes one or more Publishing Profiles which enable setting different application configurations for different deployment environments (for example, local deployment vs a cloud-based test cluster vs a cloud –based production environment.) Each solution will include one or more Service Projects (DemoStatelessApi in the illustration) This project includes the configuration for the overall Application managed by Service Fabric (an application can include one or more services) These projects will each include their own Service Manifest files, with the Service Manifest describing the service type, version, and other configuration options This project will also include the service’s code and configuration files
  37. Objective: To discuss the Service Fabric Local Cluster for local development Notes: The Service Fabric Local Cluster is included as part of the Azure Service Fabric SDK, and is meant to provide you with a complete local development and testing environment in order to accelerate your developing and deploying Service Fabric applications. The Local Cluster allows you to stand up either a 1-node or 5-node clusters – 1 node clusters are quicker to provision and deploy, but 5-node clusters are closer to real-world deployments. It’s important to note that this isn’t an emulator or simulator; the Local Cluster runs the same Service Fabric runtime that you will use in your production deployments. You can manage the Local Cluster with the Local Cluster Manager app that will be present in your Windows System Tray after you install the Service Fabric SDK, or you can use PowerShell scripts to manage the local cluster. Visual Studio “knows” about the Local Cluster and is set so that when you start the debugger, the application will be built, packaged, and deployed to the Local Cluster.
  38. Objective: To briefly introduce the Service Fabric Explorer tool Notes: Service Fabric deployments include the Service Fabric Explorer. This is a web-based tool that helps you see and manage the status of your cluster. You can use it to: See an overview of your cluster health and overall cluster information See and manage your deployed applications & services View and manage the nodes in your cluster
  39. Objective: This section will discuss the options for scaling VM’s (VM sizes and storage) and also the concepts of reliability via Availability Sets
  40. Objective: Describes the concept related to deploying a Service Fabric application in Azure Notes: In Microsoft Azure, Service Fabric applications are deployed over Virtual Machine (VM) Scale Sets. VM Scale Sets provide infrastructure for scaling workloads across multiple VM’s, as well as mechanisms for cluster management, scaling, and reliability. You can choose the size (and cost) of the VM’s that you application requires, and you can segment different service types to different collections of VM’s, grouped and isolated by subnets within an Azure Virtual Network (VNet), as well as choose to choose to use public-facing or internal-only load-balancing. Management of a Service Fabric Cluster in Azure is split across the Azure tooling - including the Azure Portal, command-line interfaces, and management APIs – as well as through the Service Fabric tooling via its management APIs tools such as the Service Fabric Explorer.
  41. Objective: Describes the concept related to Service Fabric Application Upgrades Notes: There are two models for deploying applications to Service Fabric – Full Deployments and Upgrade Deployments. Full Deployments completely tear down an existing application and push up a new instance. Any state held by the Service Fabric partitions will be lost, and users are likely to experience downtime during this kind of deployment Upgrade Deployments use a concept known as Upgrade Domains, in which nodes in the cluster are partitioned into subsets and the upgrade is performed in a series of stages in order to ensure availability. Service Fabric will monitor the health of the system during the upgrade, and if the system health becomes degraded, the upgrade will be rolled back. There are actually 3 upgrade modes – Monitored Mode upgrades perform the upgrade one Upgrade Domain at a time, moving on to the next section only when the previous one has passed all of its health checks. Unmonitored-Auto upgrades merely skip the health checks. Finally, Unmonitored-Manual upgrades require you to upgrade each Upgrade Domain yourself. Note that in order to support rolling upgrades, both versions must be forward and backward compatible (since both versions of the code will co-exist for a time) More information about upgrades: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-upgrade
  42. Based on a list of 86 concepts seen in the following diagram, visual features found in an image can be categorized ranging from broad to specific.