SlideShare a Scribd company logo
TECHNOLOGY
Rediscover the meaning of
WE’RE HERE AND THERE
“No pienses como tu sistema es
capaz de funcionar en la
infraestructura de la nube, cuando
pienses en la nube, hazlo sobre el
valor que esta te va a proporcionar”
¿Qué valores queremos ganar?
Agility
CI / CD
Containers
Serverless
TTM
Scalability
HA
Insights / Analytics
TCO
Infraestructure
Cost
Maintenance
IT
Standarization
Simplification
Matrix Maturity Model
Lift and Shift ( On-prem 2 Cloud IAAS)
• No re-architect / No new code
• Quick Migration
But
• Small cloud value
• Manual actions
• Limited scaling / high availability
Lift and Shift ( On-prem 2 Cloud IAAS)
• Availability Sets (99.95%)
• Protection agains failures within data centers
• Avalilability Zones (99.99%)
• Protection from entire datacenter failures
• 42 Region Pairs
• Data Residency compliance
El camino a las Cloud Native Apps - Introduction
Cloud Native Apps
• Main bullets
• App Services
• DevOps
• Automation infrastructure
• CI / CD
• Monitoring
• Containers
Azure App Service
Azure App Service
Azure App Service
App Service
Apps
Services
Platform
One business model
Platform support
App Service Core Capabilities
All features and capabilities are shared across all of App Service application (Web, Mobile, Functions and API)
Enterprise grade
Designed for secure mission-critical applications
Fully managed
Optimized for Availability and Automatic scale
Built for DevOps
Agility through Continuous Deployment
Premium Tier
App Service Environments
Hybrid Connections / VPN Support
Scheduled Backup
Azure Active Directory Integration
Site Resiliency, HA, and DR
Role Base Access Control
Audit / Compliance
Enterprise Migration
Client Certs
IP Restrictions/ SSL
Dedicated IP address IP / NSG
Web Sockets
WW Datacenter Coverage
Automated Deployment
AutoScale
Built-in Load Balancing
WW Datacenter Coverage
End Point Monitoring & Alerts
WildCard Support
HTTP Compression
WebJobs
Sticky Sessions
OS & Framework Patching
Auto-Healing
Local Cache
Init Module
Per Site Scaling
Easy Auth
Remote Debugging w/ Visual Studio
Site Staging Slots /Preview
Traffic Routing
Continuous Integration/Deployment
Git/ Hub, Visual Studio Team Services
App & Site Diagnostics
Site Extensions/ Gallery
NET, PHP, Python, Node, Java, Go
Framework Installer
Browser-based editing
Logging and Auditing
Admin-Site
Support Portal
Web Jobs / SDK 1.1
Recommendation Engine
Site Cloning
Demo
App services
www.plainconcepts.com info@plainconcepts.com
Infrastructure as code
• Declarative, model based specification
of resources and their configuration /
code/ extensions
• Idempotent and ‘replayable’
• Source file, checked-in
• Parameterized input/output
Infrastructure as code
SQL - A Website Virtual
Machines
CRUD
Website
[SQL CONFIG] VM (2x)
DEPENDS ON SQLDEPENDS ON SQL
SQL CONFIG
Infrastructure as code
• PowerShell
• Portal
• Visual Studio
• Azure CLI
• REST API
New-AzureRmResourceGroupDeployment -Name
ExampleDeployment -ResourceGroupName
ExampleResourceGroup -TemplateFile
<PathToTemplate> -TemplateParameterFile
<PathToParameterFile>
Infrastructure as code
Demo
Infrastructure as code
www.plainconcepts.com info@plainconcepts.com
What is serverless?
What are the benefits?
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
Local
debugging
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
application backends
application backends
backends
? ? ?
processing
Real-time processing
Real-time processing
Automation of tasks
applications
Why do we need “Durable Functions”
• Enable “long running” functions while maintaining local state.
• Simplify complex Function coordination (chaining, etc.)
• Easily call a Function from another Function
• All of the above using code-only
What is Durable Functions?
• Advanced feature for writing long-running orchestrations as a single
C# function. No JSON schemas. No designer.
• New orchestrator functions can synchronously or asynchronously call
other functions.
• Automatic checkpointing, enabling “long running” functions.
• Solves a variety of complex, transactional coding problems in
serverless apps.
• Built on the open source Durable Task Framework.
Pattern #1: Function chaining - Today
Problems:
• No visualization to show relationship between functions and queues.
• Middle queues are an implementation detail – conceptual overhead.
• Error handling adds a lot more complexity.
F1 F2 F3 F4
Pattern #1: Function chaining - Better
// calls functions in sequence
public static async Task<object> Run(DurableOrchestrationContext ctx)
{
try
{
var x = await ctx.CallFunctionAsync("F1");
var y = await ctx.CallFunctionAsync("F2", x);
var z = await ctx.CallFunctionAsync("F3", y);
return await ctx.CallFunctionAsync("F4", z);
}
catch (Exception)
{
// global error handling/compensation goes here
}
}
Pattern #2: Fan-out/Fan-in - Today
Problems:
• Fanning-out is easy, but fanning-in is significantly more complicated
• Functions offers no help with this scenario today
• All the same problems of the previous pattern
F1
F2
F3
Pattern #2: Fan-out/Fan-in - Easy
public static async Task Run(DurableOrchestrationContext ctx)
{
var parallelTasks = new List<Task<int>>();
// get a list of N work items to process in parallel
object[] workBatch = await ctx.CallFunctionAsync<object[]>("F1");
for (int i = 0; i < workBatch.Length; i++)
{
Task<int> task = ctx.CallFunctionAsync<int>("F2", workBatch[i]);
parallelTasks.Add(task);
}
await Task.WhenAll(parallelTasks);
// aggregate all N outputs and send result to F3
int sum = parallelTasks.Sum(t => t.Result);
await ctx.CallFunctionAsync("F3", sum);
}
Pattern #3: HTTP Async Response
Problems:
• Execution state needs to be explicitly stored and managed.
• Execution state and trigger state must be kept in sync manually.
• Start and GetStatus is often boilerplate code that is not related to the business problem.
Start DoWork
GetStatus
Pattern #3: HTTP Async Response – Built in!
> curl -X POST https://myfunc.azurewebsites.net/orchestrators/DoWork -H "Content-Length: 0" -i
HTTP/1.1 202 Accepted
Location: https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec
Server: Microsoft-IIS/8.0
> curl https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec -i
HTTP/1.1 202 Accepted
Content-Length: 173
Content-Type: application/json
Location: https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec
Server: Microsoft-IIS/8.0
{"runtimeStatus":"Running","createdTime":"2017-03-16T21:20:36Z","lastUpdatedTime":"2017-03-16T21:20:47Z"}
> curl https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec -i
HTTP/1.1 200 OK
Content-Length: 175
Content-Type: application/json
Server: Microsoft-IIS/8.0
{"runtimeStatus":"Completed","createdTime":"2017-03-16T21:20:36Z","lastUpdatedTime":"2017-03-16T21:20:57Z"}
Pattern #5: Human Interaction w/Timeout
RequestApproval
Escalate
ProcessApproval
Problems:
• Can’t easily coordinate a timeout with an approval request notification.
• Need a mechanism to reliably cancel either the approval handling or the
timeout depending on the outcome.
Pattern #5: Human Interaction w/Timeout
public static async Task Run(DurableOrchestrationContext ctx)
{
await ctx.CallFunctionAsync<object[]>("RequestApproval");
using (var timeoutCts = new CancellationTokenSource())
{
DateTime dueTime = ctx.CurrentUtcDateTime.AddHours(72);
Task durableTimeout = ctx.CreateTimer(dueTime, 0, cts.Token);
Task<bool> approvalEvent = ctx.WaitForExternalEvent<bool>("ApprovalEvent");
if (approvalEvent == await Task.WhenAny(approvalEvent, durableTimeout))
{
timeoutCts.Cancel();
await ctx.CallFunctionAsync("HandleApproval", approvalEvent.Result);
}
else
{
await ctx.CallFunctionAsync("Escalate");
}
}
}
Important Orchestrator Limitations
• Orchestrator code is replayed on every rehydration to restore all local
state (local variables, etc).
• Function calls are never replayed – the outputs are remembered.
• This requires the orchestrator code to be deterministic.
• Rule #1: Never write logic that depends on random numbers,
DateTime.Now, Guid.NewGuid(), etc.
• Rule #2: Never do I/O directly in the orchestrator function.
• Rule #3: Do not write infinite loops
• Rule #4: Use the built-in workarounds for rules #1, #2, and #3
THANKS FOR
YOUR TIME
www.plainconcepts.com info@plainconcepts.com

More Related Content

PPTX
One App, Many Clients: Converting an APEX Application to Multi-Tenant
Jeffrey Kemp
 
PPTX
Infrastructure as code
Naseath Saly
 
PPTX
Comparison of various streaming technologies
Sachin Aggarwal
 
PDF
KSQL---Streaming SQL for Apache Kafka
Matthias J. Sax
 
PPTX
Cloudify workshop at CCCEU 2014
Uri Cohen
 
PDF
Un'introduzione a Kafka Streams e KSQL... and why they matter!
Paolo Castagna
 
PDF
Azure Durable Functions (2018-06-13)
Paco de la Cruz
 
PPTX
Achieve big data analytic platform with lambda architecture on cloud
Scott Miao
 
One App, Many Clients: Converting an APEX Application to Multi-Tenant
Jeffrey Kemp
 
Infrastructure as code
Naseath Saly
 
Comparison of various streaming technologies
Sachin Aggarwal
 
KSQL---Streaming SQL for Apache Kafka
Matthias J. Sax
 
Cloudify workshop at CCCEU 2014
Uri Cohen
 
Un'introduzione a Kafka Streams e KSQL... and why they matter!
Paolo Castagna
 
Azure Durable Functions (2018-06-13)
Paco de la Cruz
 
Achieve big data analytic platform with lambda architecture on cloud
Scott Miao
 

What's hot (20)

PPTX
Tamir Dresher - What’s new in ASP.NET Core 6
Tamir Dresher
 
PDF
Correctness and Performance of Apache Spark SQL with Bogdan Ghit and Nicolas ...
Databricks
 
PDF
Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka S...
confluent
 
PDF
Understanding AWS with Terraform
Knoldus Inc.
 
PDF
New in Spring Framework 5.0: Functional Web Framework
VMware Tanzu
 
PDF
Siebel Monitoring Tools
Alceu Rodrigues de Freitas Junior
 
PDF
Developing Url Shortener With Dynamic Behaviour Using AWS Lambda
mitesh_sharma
 
PDF
Streaming with Spring Cloud Stream and Apache Kafka - Soby Chacko
VMware Tanzu
 
PPTX
What's new in c# 8.0
Moaid Hathot
 
PDF
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Shaun Murakami
 
PPTX
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
PDF
Infrastructure as Code
Matt Cowger
 
PDF
Alfresco Transform Service DevCon 2019
J V
 
PPTX
Autosys
Gagandeep Singh
 
PPTX
Service Fabric – building tomorrows applications today
BizTalk360
 
PDF
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
confluent
 
PPTX
Nashorn: JavaScript that doesn't suck - Tomer Gabel, Wix
Codemotion Tel Aviv
 
PDF
Oracle Enterprise Manager - EM12c R5 Hybrid Cloud Management
MarketingArrowECS_CZ
 
PDF
Apache Samza 1.0 - What's New, What's Next
Prateek Maheshwari
 
PPTX
Measure() or die()
Tamar Duvshani Hermel
 
Tamir Dresher - What’s new in ASP.NET Core 6
Tamir Dresher
 
Correctness and Performance of Apache Spark SQL with Bogdan Ghit and Nicolas ...
Databricks
 
Overcoming the Perils of Kafka Secret Sprawl (Tejal Adsul, Confluent) Kafka S...
confluent
 
Understanding AWS with Terraform
Knoldus Inc.
 
New in Spring Framework 5.0: Functional Web Framework
VMware Tanzu
 
Siebel Monitoring Tools
Alceu Rodrigues de Freitas Junior
 
Developing Url Shortener With Dynamic Behaviour Using AWS Lambda
mitesh_sharma
 
Streaming with Spring Cloud Stream and Apache Kafka - Soby Chacko
VMware Tanzu
 
What's new in c# 8.0
Moaid Hathot
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Shaun Murakami
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
Infrastructure as Code
Matt Cowger
 
Alfresco Transform Service DevCon 2019
J V
 
Service Fabric – building tomorrows applications today
BizTalk360
 
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
confluent
 
Nashorn: JavaScript that doesn't suck - Tomer Gabel, Wix
Codemotion Tel Aviv
 
Oracle Enterprise Manager - EM12c R5 Hybrid Cloud Management
MarketingArrowECS_CZ
 
Apache Samza 1.0 - What's New, What's Next
Prateek Maheshwari
 
Measure() or die()
Tamar Duvshani Hermel
 
Ad

Similar to El camino a las Cloud Native Apps - Introduction (20)

PPTX
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
KatyShimizu
 
PPTX
[NDC 2019] Enterprise-Grade Serverless
KatyShimizu
 
PPTX
Develop in ludicrous mode with azure serverless
Lalit Kale
 
PDF
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
BizTalk360
 
PPTX
Mastering Azure Durable Functions - Building Resilient and Scalable Workflows
Callon Campbell
 
PDF
Working with data using Azure Functions.pdf
Stephanie Locke
 
PDF
Expanding your impact with programmability in the data center
Cisco Canada
 
PPTX
CQRS and Event Sourcing
Sergey Seletsky
 
PPTX
What's New in .Net 4.5
Malam Team
 
PPTX
ServerLess by usama Azure fuctions.pptx
Usama Wahab Khan Cloud, Data and AI
 
PPTX
Serverless in-action
Assaf Gannon
 
PDF
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
CodeMill digital skills
 
PPTX
Exploring Twitter's Finagle technology stack for microservices
💡 Tomasz Kogut
 
PPTX
Building stateful serverless orchestrations with Azure Durable Azure Function...
Callon Campbell
 
PPTX
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Puppet
 
PDF
Reimagine Frontend in the Serverless Era
Evangelia Mitsopoulou
 
PPTX
Migrating on premises workload to azure sql database
PARIKSHIT SAVJANI
 
PPTX
SQL Server - CLR integration
Peter Gfader
 
PDF
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
DataWorks Summit
 
PPTX
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Kinetica
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
KatyShimizu
 
[NDC 2019] Enterprise-Grade Serverless
KatyShimizu
 
Develop in ludicrous mode with azure serverless
Lalit Kale
 
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
BizTalk360
 
Mastering Azure Durable Functions - Building Resilient and Scalable Workflows
Callon Campbell
 
Working with data using Azure Functions.pdf
Stephanie Locke
 
Expanding your impact with programmability in the data center
Cisco Canada
 
CQRS and Event Sourcing
Sergey Seletsky
 
What's New in .Net 4.5
Malam Team
 
ServerLess by usama Azure fuctions.pptx
Usama Wahab Khan Cloud, Data and AI
 
Serverless in-action
Assaf Gannon
 
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
CodeMill digital skills
 
Exploring Twitter's Finagle technology stack for microservices
💡 Tomasz Kogut
 
Building stateful serverless orchestrations with Azure Durable Azure Function...
Callon Campbell
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Puppet
 
Reimagine Frontend in the Serverless Era
Evangelia Mitsopoulou
 
Migrating on premises workload to azure sql database
PARIKSHIT SAVJANI
 
SQL Server - CLR integration
Peter Gfader
 
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
DataWorks Summit
 
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Kinetica
 
Ad

More from Plain Concepts (20)

PPTX
R y Python con Power BI, la ciencia y el análisis de datos, juntos
Plain Concepts
 
PDF
Video kills the radio star: e-mail is crap and needed disruption
Plain Concepts
 
PPTX
Cómo redefinir tu organización con IA
Plain Concepts
 
PPTX
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Plain Concepts
 
PDF
¿Qué es real? Cuando la IA intenta engañar al ojo humano
Plain Concepts
 
PPTX
Inteligencia artificial para detectar el cáncer de mama
Plain Concepts
 
PPTX
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
Plain Concepts
 
PDF
Cognitive Services en acción
Plain Concepts
 
PDF
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
Plain Concepts
 
PDF
What if AI was your daughter?
Plain Concepts
 
PPTX
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Plain Concepts
 
PPTX
Revolucionando la experiencia de cliente con Big Data e IA
Plain Concepts
 
PPTX
IA Score en InfoJobs
Plain Concepts
 
PPTX
Recuperación de información para solicitantes de empleo
Plain Concepts
 
PPTX
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
Plain Concepts
 
PDF
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
Plain Concepts
 
PDF
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
Plain Concepts
 
PDF
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
Plain Concepts
 
PPTX
El camino a las Cloud Native Apps - Azure AI
Plain Concepts
 
PPTX
El camino a las Cloud Native Apps - Application modernization on Azure with c...
Plain Concepts
 
R y Python con Power BI, la ciencia y el análisis de datos, juntos
Plain Concepts
 
Video kills the radio star: e-mail is crap and needed disruption
Plain Concepts
 
Cómo redefinir tu organización con IA
Plain Concepts
 
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Plain Concepts
 
¿Qué es real? Cuando la IA intenta engañar al ojo humano
Plain Concepts
 
Inteligencia artificial para detectar el cáncer de mama
Plain Concepts
 
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
Plain Concepts
 
Cognitive Services en acción
Plain Concepts
 
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
Plain Concepts
 
What if AI was your daughter?
Plain Concepts
 
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Plain Concepts
 
Revolucionando la experiencia de cliente con Big Data e IA
Plain Concepts
 
IA Score en InfoJobs
Plain Concepts
 
Recuperación de información para solicitantes de empleo
Plain Concepts
 
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
Plain Concepts
 
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
Plain Concepts
 
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
Plain Concepts
 
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
Plain Concepts
 
El camino a las Cloud Native Apps - Azure AI
Plain Concepts
 
El camino a las Cloud Native Apps - Application modernization on Azure with c...
Plain Concepts
 

Recently uploaded (20)

PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Doc9.....................................
SofiaCollazos
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Software Development Methodologies in 2025
KodekX
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 

El camino a las Cloud Native Apps - Introduction

  • 3. “No pienses como tu sistema es capaz de funcionar en la infraestructura de la nube, cuando pienses en la nube, hazlo sobre el valor que esta te va a proporcionar”
  • 4. ¿Qué valores queremos ganar? Agility CI / CD Containers Serverless TTM Scalability HA Insights / Analytics TCO Infraestructure Cost Maintenance IT Standarization Simplification
  • 6. Lift and Shift ( On-prem 2 Cloud IAAS) • No re-architect / No new code • Quick Migration But • Small cloud value • Manual actions • Limited scaling / high availability
  • 7. Lift and Shift ( On-prem 2 Cloud IAAS) • Availability Sets (99.95%) • Protection agains failures within data centers • Avalilability Zones (99.99%) • Protection from entire datacenter failures • 42 Region Pairs • Data Residency compliance
  • 9. Cloud Native Apps • Main bullets • App Services • DevOps • Automation infrastructure • CI / CD • Monitoring • Containers
  • 15. App Service Core Capabilities All features and capabilities are shared across all of App Service application (Web, Mobile, Functions and API) Enterprise grade Designed for secure mission-critical applications Fully managed Optimized for Availability and Automatic scale Built for DevOps Agility through Continuous Deployment Premium Tier App Service Environments Hybrid Connections / VPN Support Scheduled Backup Azure Active Directory Integration Site Resiliency, HA, and DR Role Base Access Control Audit / Compliance Enterprise Migration Client Certs IP Restrictions/ SSL Dedicated IP address IP / NSG Web Sockets WW Datacenter Coverage Automated Deployment AutoScale Built-in Load Balancing WW Datacenter Coverage End Point Monitoring & Alerts WildCard Support HTTP Compression WebJobs Sticky Sessions OS & Framework Patching Auto-Healing Local Cache Init Module Per Site Scaling Easy Auth Remote Debugging w/ Visual Studio Site Staging Slots /Preview Traffic Routing Continuous Integration/Deployment Git/ Hub, Visual Studio Team Services App & Site Diagnostics Site Extensions/ Gallery NET, PHP, Python, Node, Java, Go Framework Installer Browser-based editing Logging and Auditing Admin-Site Support Portal Web Jobs / SDK 1.1 Recommendation Engine Site Cloning
  • 18. • Declarative, model based specification of resources and their configuration / code/ extensions • Idempotent and ‘replayable’ • Source file, checked-in • Parameterized input/output Infrastructure as code SQL - A Website Virtual Machines CRUD Website [SQL CONFIG] VM (2x) DEPENDS ON SQLDEPENDS ON SQL SQL CONFIG
  • 20. • PowerShell • Portal • Visual Studio • Azure CLI • REST API New-AzureRmResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup -TemplateFile <PathToTemplate> -TemplateParameterFile <PathToParameterFile> Infrastructure as code
  • 23. What are the benefits?
  • 39. Why do we need “Durable Functions” • Enable “long running” functions while maintaining local state. • Simplify complex Function coordination (chaining, etc.) • Easily call a Function from another Function • All of the above using code-only
  • 40. What is Durable Functions? • Advanced feature for writing long-running orchestrations as a single C# function. No JSON schemas. No designer. • New orchestrator functions can synchronously or asynchronously call other functions. • Automatic checkpointing, enabling “long running” functions. • Solves a variety of complex, transactional coding problems in serverless apps. • Built on the open source Durable Task Framework.
  • 41. Pattern #1: Function chaining - Today Problems: • No visualization to show relationship between functions and queues. • Middle queues are an implementation detail – conceptual overhead. • Error handling adds a lot more complexity. F1 F2 F3 F4
  • 42. Pattern #1: Function chaining - Better // calls functions in sequence public static async Task<object> Run(DurableOrchestrationContext ctx) { try { var x = await ctx.CallFunctionAsync("F1"); var y = await ctx.CallFunctionAsync("F2", x); var z = await ctx.CallFunctionAsync("F3", y); return await ctx.CallFunctionAsync("F4", z); } catch (Exception) { // global error handling/compensation goes here } }
  • 43. Pattern #2: Fan-out/Fan-in - Today Problems: • Fanning-out is easy, but fanning-in is significantly more complicated • Functions offers no help with this scenario today • All the same problems of the previous pattern F1 F2 F3
  • 44. Pattern #2: Fan-out/Fan-in - Easy public static async Task Run(DurableOrchestrationContext ctx) { var parallelTasks = new List<Task<int>>(); // get a list of N work items to process in parallel object[] workBatch = await ctx.CallFunctionAsync<object[]>("F1"); for (int i = 0; i < workBatch.Length; i++) { Task<int> task = ctx.CallFunctionAsync<int>("F2", workBatch[i]); parallelTasks.Add(task); } await Task.WhenAll(parallelTasks); // aggregate all N outputs and send result to F3 int sum = parallelTasks.Sum(t => t.Result); await ctx.CallFunctionAsync("F3", sum); }
  • 45. Pattern #3: HTTP Async Response Problems: • Execution state needs to be explicitly stored and managed. • Execution state and trigger state must be kept in sync manually. • Start and GetStatus is often boilerplate code that is not related to the business problem. Start DoWork GetStatus
  • 46. Pattern #3: HTTP Async Response – Built in! > curl -X POST https://myfunc.azurewebsites.net/orchestrators/DoWork -H "Content-Length: 0" -i HTTP/1.1 202 Accepted Location: https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec Server: Microsoft-IIS/8.0 > curl https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec -i HTTP/1.1 202 Accepted Content-Length: 173 Content-Type: application/json Location: https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec Server: Microsoft-IIS/8.0 {"runtimeStatus":"Running","createdTime":"2017-03-16T21:20:36Z","lastUpdatedTime":"2017-03-16T21:20:47Z"} > curl https://myfunc.azurewebsites.net/orchestrators/b79baf67f717453ca9e86c5da21e03ec -i HTTP/1.1 200 OK Content-Length: 175 Content-Type: application/json Server: Microsoft-IIS/8.0 {"runtimeStatus":"Completed","createdTime":"2017-03-16T21:20:36Z","lastUpdatedTime":"2017-03-16T21:20:57Z"}
  • 47. Pattern #5: Human Interaction w/Timeout RequestApproval Escalate ProcessApproval Problems: • Can’t easily coordinate a timeout with an approval request notification. • Need a mechanism to reliably cancel either the approval handling or the timeout depending on the outcome.
  • 48. Pattern #5: Human Interaction w/Timeout public static async Task Run(DurableOrchestrationContext ctx) { await ctx.CallFunctionAsync<object[]>("RequestApproval"); using (var timeoutCts = new CancellationTokenSource()) { DateTime dueTime = ctx.CurrentUtcDateTime.AddHours(72); Task durableTimeout = ctx.CreateTimer(dueTime, 0, cts.Token); Task<bool> approvalEvent = ctx.WaitForExternalEvent<bool>("ApprovalEvent"); if (approvalEvent == await Task.WhenAny(approvalEvent, durableTimeout)) { timeoutCts.Cancel(); await ctx.CallFunctionAsync("HandleApproval", approvalEvent.Result); } else { await ctx.CallFunctionAsync("Escalate"); } } }
  • 49. Important Orchestrator Limitations • Orchestrator code is replayed on every rehydration to restore all local state (local variables, etc). • Function calls are never replayed – the outputs are remembered. • This requires the orchestrator code to be deterministic. • Rule #1: Never write logic that depends on random numbers, DateTime.Now, Guid.NewGuid(), etc. • Rule #2: Never do I/O directly in the orchestrator function. • Rule #3: Do not write infinite loops • Rule #4: Use the built-in workarounds for rules #1, #2, and #3

Editor's Notes

  • #5: Explicar los valores que queremos ganarcon la modernización - Agilidad Time To Market TCO IT
  • #6: Cloud IAAS -> Lift and Shift Cloud Service -> Cloud Service Ready Cloud Native
  • #11: Positioning
  • #13: Marketing positioning: Logic apps is also part of App Service but for developers it’s important to understand concepts of App Service Plan and Apps apply to the four above, but not Logic Apps
  • #15: .NET CLR: 2.0, 4.0 The default is CLR 4.0. Framework: up to 4.6 The default is .NET Framework 4.6 (currently .NET 4.6.1). ASP.NET Core is also supported either through Kudu or Web Deploy Node.js (and matching npm) To get the full list of supported Node and npm: Go to https://[yoursite].scm.azurewebsites.net/ Click on 'Runtime versions' under API PHP 5.4 5.5 5.6 7.0 The default is PHP 5.4. Python 2.7 3.4 Java [Jetty, Tomcat] 1.7.0_51
  • #16: Before we dive into App Service details, let’s talk about APIs – because we are following the API-centric approach in our demo
  • #17: Guión
  • #26: Building on top of the FaaS programming model, Azure Functions keep all the mentioned features and extend your possibilities with additional capabilities that help to reduce your development time and boost productivity, while using best in class tools.
  • #28: Additional information Triggers and bindings – https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings Monitoring—https://azure.microsoft.com/en-us/services/application-insights/ Local debugging—https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#run-functions-locally CI/CD—https://docs.microsoft.com/en-us/azure/azure-functions/functions-continuous-deployment Run locally—https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local Proxies—https://docs.microsoft.com/en-us/azure/azure-functions/functions-proxies
  • #29: There is a lot of code you can save thanks to the Functions programming model based on triggers and bindings, as this code to connect to different services (either for trigger data and input/output operations) is done by the platform, improving your development time as you don’t lose a minute on connections code that tend to be reused a lot of times. See the full list of services with Triggers and bindings – https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings
  • #30: Additional information Languages—https://docs.microsoft.com/en-us/azure/azure-functions/supported-languages Dev options— Azure Functions portal—https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function Visual Studio—https://docs.microsoft.com/en-us/azure/azure-functions/functions-develop-vs Visual Studio Code—https://code.visualstudio.com/docs CLI—https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function-azure-cli Java/Maven—https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-java-maven Hosting options—https://azure.microsoft.com/en-us/pricing/details/functions/ Durable Functions—https://docs.microsoft.com/en-us/azure/azure-functions/durable-functions-overview
  • #41: https://github.com/Azure/durabletask
  • #43: CallFunctionAsync uses queues under the covers, thus they can be scaled out to multiple VMs.
  • #47: Logic Apps and Microsoft Flow have built-in support for this pattern. Note that specifics URL routes are subject to change (and have already changed since this deck was originally written).
  • #49: We will expose a mechanism for sending named events to an orchestrator from outside the orchestration context – e.g. REST API and/or output binding.