Jorge Serrano
  • Home

Microsoft anuncia Azure Functions 2.0.12115 – Consideraciones a tener en cuenta

  • By jorge
  • Sep-28-2018
  • .NET Core, Azure Functions, Serverless, Visual Studio 2017, Visual Studio 2017 for Mac, Visual Studio Code
  • 0 Comments.

El pasado 24 de Septiembre de 2018 durante el Microsoft Ignite 2018 que se ha llevado a cabo estos días en Orlando (USA), Microsoft anunció la GA o Global Availability (disponibilidad general) de Azure Functions 2.0.

Azure Functions es un entorno Serverless muy sólido con un 99,95% de SLA.

El anuncio de esta nueva versión de Azure Functions tiene sin embargo algunos aspectos escritos en letra pequeña que conviene conocer. Pero que nadie se asuste en exceso.

Microsoft recomienda desde ya que todos los nuevos desarrollos se realicen en Azure Functions 2.0, al mismo tiempo que anima a que las aplicaciones de Azure Functions 1.0 sean migradas a 2.0 para obtener todos los beneficios que ofrece esta nueva versión de Azure Functions.

Si tienes dudas respecto a la migración de Azure Functions, Microsoft ha elaborado un documento de migración que podrás consultar en este enlace. No es muy completo bajo mi personal punto de vista, pero da muchas pistas de lo que debemos tener en cuenta.

En cuanto a rendimiento, Azure Functions 2.0 mejora la actual versión y tiene la capacidad de ejecutar código desde un paquete (Run your Azure Functions from a package file).

Ten en cuenta también que desde ya, cuando creamos una nueva Azure Function desde el Portal de Azure, ésta será creada en v2.x por defecto.
Si queremos cambiar de 2.x a 1.x deberemos ir a la sección de Function Settings para cambiar manualmente su versión a 1.x.
Considera que si ya tienes Azure Functions desplegadas en tu Azure Function App, esta opción aparecerá deshabilitada, por lo que debemos hacer esto antes de desplegar o crear ninguna Azure Function.
Ten en cuenta también, que cambiar la versión implica reiniciar tu Azure Functions App.

Pero quizás la novedad más importante (al menos para mí) está en el Runtime.

El Runtime de 2.x se ejecuta en .NET Core 2.
El hecho de que se ejecute en .NET Core implica que pueda ejecutarse en múltiples plataformas incluyendo de forma local: macOS, Linux o Windows.
Podemos utilizar Visual Studio, Visual Studio for Mac o Visual Studio Code para el desarrollo y despliegue de nuestras Azure Functions y probarlas en el mismo entorno en el que lo estamos desarrollando.

Una cosa importante a tener en cuenta es que una Azure Function App en Azure Functions 2.x estará por motivos de rendimiento limitada fundamentalmente a utilizar un único lenguaje.
Azure Functions 2.x soporta los lenguajes: C#, F#, JavaScript y Java aunque vendrán más en un futuro cercano.
En el caso de Java, está como Preview con Java 8, mientras que en el caso de los otros tres están como GA.
Para C# (.NET Core 2), para F# (.NET Core 2), y para JavaScript (Node 8 y 10).
Los lenguajes de programación experimentales utilizados en Azure Functions 1.x no han sido actualizados para Azure Functions 2.x de forma directa, aunque se está trabajando en algunos de ellos como comentaré más adelante.

En el momento de escribir esta entrada, tenemos como versión final .NET Core 2.1.4, con lo que podremos desarrollar nuestras Azure Functions en esta versión.
Desarrollar en .NET Core 2.1 conlleva mejoras importantes en cuanto a rendimiento, y podremos utilizar éstas en diferentes entornos, pudiendo incluso desplegarlas sobre Linux en el caso de un Consumption Plan (mirar el final de esta entrada en lo relativo al roadmap previsto).

Otro aspecto a tener en cuenta en cuanto a los lenguajes a utilizar es que el uso de JavaScript con el soporte de Node 8 y Node 10 supone mejoras de rendimiento también en términos generales.

Lo más destacable de todo lo que he dicho hasta ahora es que aunque Microsoft recomienda migrar nuestras Azure Functions a 2.x, éstas deben ser compatibles con el runtime utilizado, así que en el caso de que por ejemplo nuestras Azure Functions estén desarrolladas con .NET Framework en Azure Functions 1.x y deseemos utilizar Azure Functions 2.x, no nos quedará otra que migrar nuestras funciones a .NET Core 2 también.
Otro aspecto a destacar de nuestras Azure Functions es todo lo relativo a los cambios en el uso de los triggers, bindings y otras características adicionales.
Te recomiendo leer la información adicional sobre los cambios de triggers y bindings en Azure Functions 2.x.
Encontrarás algo de material en este enlace.

Microsoft por otra parte, también ha adaptado, cambiado y modificado, eliminado y añadido nuevas características en Azure Funtions 2.x.
Encontrarás toda esta información en este enlace.

Desde el punto de vista de DevOps, Azure Functions 2.0 trae mejoras en este sentido.
Se ha creado un nuevo Deployment Center (Centro de Despliegues) que permite crear y desplegar con múltiples opciones muy útiles para DevOps.
Para acceder al Deployment Center, deberemos hacer clic en «Platform features» (si nuestro portal de Azure está en inglés) dentro de nuestra Azure Function App.

De cara al futuro (probablemente dentro de muy poco tiempo) y según el roadmap compartido por el equipo de Azure Functions:
Lo he adelantado anteriormente. Microsoft está apostando también por la posibilidad de tener alojadas nuestras Azure Functions en Linux OS y es de esperar que esté cubierto por completo en breve.
Se está trabajando en dar soporte para otro lenguaje de programación que estaba en fase experimental en Azure Functions 1.x. Estoy hablando de Python 3.6. Si quieres probarlo, accede a este enlace.

Por otro lado, una cosa que sorprende es la ausencia directa a PowerShell.
Sin embargo, Microsoft tiene planeada la posibilidad de incorporarlo a Azure Functions 2.0, aunque no está claro si en un corto periodo de tiempo o más amplio.
Ahora mismo está en fase de desarrollo y no recomiendan su uso en producción.
Seguramente su soporte se limite a PowerShell Core que está basado en .NET Core 2.1.
La actual versión de PowerShell Core es la 6.1.
Para más información al respecto, visita este enlace.

Ahora bien, la pregunta del millón sea quizás ¿qué va a pasar con nuestras Azure Functions en 1.x?. ¿Van a seguir siendo soportadas por Microsoft?. La pregunta es sí,… de momento. Ese «momento» no está definido aún porque está indeterminado. Se habla de 1 año, pero podría ser más. El problema es que no ha sido anunciado oficialmente aún y hay muchas empresas que tienen sus Azure Functions desplegadas en 1.x y otras que tienen desarrollos en curso.

Todas las notas de cambios aplicados en Azure Functions 2.0.12115 puede ser consultada en este enlace.

Podrás consultar la noticia oficial de Azure Functions 2.x en este enlace.

Happy Coding!

Comments

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

← Previous Post Next Post →

Jorge Serrano

MVP Reconnect


¡Subscríbete a mi canal!
YouTube

Donaciones
Donation

Entradas recientes

  • Go – Arrays
  • Go – Operators
  • Go – Constants
  • Go – Tipos de Datos
  • Go – Variables
  • Hello Go-rld!
  • Introducción a Go o Golang
  • JSON Patch en ASP.NET Core 5 Web API
  • Null Checking en C#
  • ¿Porqué mi página web por defecto de ASP.NET Core no se vé en mi Azure Web App y me da un 404?

Categorías

  • .NET 5
  • .NET Core
  • .NET Core 3.0
  • .NET Core 3.1
  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5
  • .NET Framework 4.0
  • .NET Framework 4.5
  • .NET Framework 4.6
  • .NET Framework 4.7
  • .NET Framework 4.8
  • .NET Standard 2.0
  • .NET Standard 2.1
  • AMQP
  • Android
  • Angular
  • API REST
  • Apple
  • Apple iOS
  • Apple macOs
  • Arquitectura
  • ASP.NET
  • ASP.NET Core
  • ASP.NET Core 3
  • ASP.NET Core 5
  • AWS
  • Azure App Service
  • Azure Application Insights
  • Azure Cosmos DB
  • Azure Database Migration Service
  • Azure Databricks
  • Azure DevOps
  • Azure Event Grid
  • Azure Functions
  • Azure IoT
  • Azure Portal
  • Azure PowerShell
  • Azure Queue Storage
  • Azure SQL
  • Azure Storage
  • Azure Virtual Datacenter
  • Azure WebApps
  • Big Data
  • Bing
  • Blazor
  • Blog
  • Bots
  • C#
  • C# 7.0
  • C# 7.1
  • C# 7.2
  • C# 7.3
  • C# 8.0
  • C# 9.0
  • Channel 9
  • Codeplex
  • Codespaces
  • Containers
  • Debugging
  • DevOps
  • Docker
  • Electron
  • Entity Framework
  • Entity Framework Core
  • Entity Framework Core 3.0
  • Entity Framework Core 5
  • Eventos
  • F#
  • FaaS
  • FeatureFlags
  • FeatureToggles
  • Feeds
  • Fluent Assertions
  • General
  • GIMP
  • Git
  • GitHub
  • Go
  • Google
  • Google Analytics
  • Gradle
  • gRPC
  • GSA
  • Historia de la Informática
  • HoloLens
  • HtmlAgilityPack
  • IdentityServer4
  • Inkscape
  • Ionic
  • iOS
  • IoT
  • Java
  • JavaScript
  • JDBC
  • JSON
  • Kubernetes
  • Lenguajes de Programación
  • Libros y Cursos
  • LINQ
  • Linux
  • LiteDB
  • Machine Learning
  • macOS
  • Microservices
  • Microsoft
  • Microsoft .NET Framework 4.5
  • Microsoft 365
  • Microsoft Azure
  • Microsoft Build
  • Microsoft Ignite
  • Microsoft Learn
  • Microsoft Orleans
  • Microsoft Surface Go
  • Microsoft Teams
  • ML.NET
  • MQTT
  • MRO
  • MS-DOS
  • MsCoders Madrid
  • MVP
  • NancyFx
  • Node.js
  • NoSQL
  • NuGet
  • NUnit
  • OData
  • ODP.NET Core
  • Office 2007
  • Office 2010
  • Office 2013
  • Office 2016
  • Office 2019
  • Office 365
  • Open Source
  • Open XML SDK
  • Opinión
  • Orchard CMS
  • OT
  • PaaS
  • Patterns
  • PdfSharpCore
  • Performance
  • PHP
  • Postman
  • Power BI
  • PowerShell
  • PowerShell Core
  • Productividad
  • Project Server 2019
  • R
  • Rendimiento
  • Scala
  • Scraper
  • Security
  • Serverless
  • Service Fabric
  • SharePoint Server 2019
  • SignalR
  • Sin categoría
  • Sistemas Distribuidos
  • Skype
  • Skype for Business Server 2019
  • Small Basic Online
  • SQL Server 2005
  • SQL Server 2008
  • SQL Server 2012
  • SQL Server 2014
  • SQL Server 2016
  • SQL Server 2017
  • SQL Server 2019
  • STOMP
  • Swagger
  • Testing
  • TFS 2017
  • TFS 2018
  • Tools
  • TypeScript
  • Unity
  • UWP
  • UX
  • Visio
  • Visual Basic
  • Visual Studio 2010
  • Visual Studio 2012
  • Visual Studio 2013
  • Visual Studio 2015
  • Visual Studio 2017
  • Visual Studio 2017 for Mac
  • Visual Studio 2019
  • Visual Studio 2019 for Mac
  • Visual Studio App Center
  • Visual Studio Code
  • Visual Studio IntelliCode
  • Visual Studio Live Share
  • Visual Studio Live Share Audio
  • Visual Studio Online
  • VS Anywhere
  • Vue.js
  • Web API
  • WebAssembly
  • WinDbg
  • Windows
  • Windows 10
  • Windows Compatibility Pack
  • Windows Phone 10
  • Windows Phone 7
  • Windows Phone 8
  • Windows Server 2008
  • Windows Server 2012
  • Windows Server 2016
  • Windows Server 2019
  • Windows Service
  • WinForms
  • WinUI
  • WPF
  • Xamarin
  • Xbox
  • Xcode
  • Xiaomi Mi Band 2
  • xUnit
  • YAML

Archivos

  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • julio 2020
  • junio 2020
  • mayo 2020
  • abril 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • diciembre 2019
  • noviembre 2019
  • octubre 2019
  • septiembre 2019
  • agosto 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • marzo 2019
  • febrero 2019
  • enero 2019
  • diciembre 2018
  • noviembre 2018
  • octubre 2018
  • septiembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • abril 2018
  • marzo 2018
  • febrero 2018
  • enero 2018
  • diciembre 2017
  • noviembre 2017
  • octubre 2017
  • septiembre 2017
  • agosto 2017
  • julio 2017
  • junio 2017
  • febrero 2015
  • octubre 2014
  • junio 2014
  • marzo 2014
  • febrero 2014
  • enero 2014
  • diciembre 2013
  • septiembre 2013
  • agosto 2013
  • julio 2013
  • junio 2013
  • abril 2013
  • febrero 2013
  • enero 2013
  • diciembre 2012
  • noviembre 2012
  • septiembre 2012
  • agosto 2012
  • junio 2012
  • mayo 2012
  • abril 2012
  • marzo 2012
  • febrero 2012
  • enero 2012
  • diciembre 2011
  • noviembre 2011
  • octubre 2011
  • septiembre 2011
  • agosto 2011
  • julio 2011
  • junio 2011
  • mayo 2011
  • abril 2011
  • marzo 2011
  • enero 2011
  • diciembre 2010
  • noviembre 2010
  • octubre 2010
  • septiembre 2010
  • agosto 2010
  • julio 2010
  • junio 2010
  • mayo 2010
  • abril 2010
  • marzo 2010
  • febrero 2010
  • enero 2010
  • diciembre 2009
  • noviembre 2009
  • octubre 2009
  • septiembre 2009
  • agosto 2009
  • julio 2009
  • junio 2009
  • mayo 2009
  • abril 2009
  • marzo 2009
  • febrero 2009
  • enero 2009
  • diciembre 2008
  • noviembre 2008
  • octubre 2008
  • septiembre 2008
  • agosto 2008
  • julio 2008
  • junio 2008
  • mayo 2008
  • abril 2008
  • marzo 2008
  • febrero 2008
  • enero 2008
  • diciembre 2007
  • noviembre 2007
  • octubre 2007
  • septiembre 2007
  • agosto 2007
  • julio 2007
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007
  • febrero 2007
  • enero 2007
  • diciembre 2006
  • noviembre 2006
  • octubre 2006
  • septiembre 2006
  • agosto 2006
  • julio 2006
  • junio 2006
  • mayo 2006
About This Site

A cras tincidunt, ut tellus et. Gravida scel ipsum sed iaculis, nunc non nam. Placerat sed phase llus, purus purus elit.

Archives Widget
  • January 2010
  • December 2009
  • November 2009
  • October 2009
Categories
  • Entertainment
  • Technology
  • Sports & Recreation
  • Jobs & Lifestyle
Search
  • twitter

Powered by WordPress  |  Business Directory by InkThemes.

This site uses cookies: Find out more.