“Integración de Web3 en Azure DevOps” Experimento Blockchain de Microsoft

Aunque ‘Web 3’ es una de las denominadas tecnologías de tendencia, aún no llega al punto de reemplazar por completo la infraestructura y el software que se han utilizado durante los últimos 30 años. Aún así, es bueno echar un vistazo a los problemas que Web3 está tratando de resolver. Esto se debe a que puede ayudar a predecir la dirección de la tecnología blockchain.
ⓒ Banco de imágenes Getty

Los defensores de Web3 ven a Web3 como una gran colección de tecnologías de consumo, que dicen que esencialmente puede reemplazar la base transaccional de la web. Según mi interpretación, Web3 admite un subconjunto algo limitado de aplicaciones empresariales centradas en el intercambio electrónico de datos (EDI). Dicha tecnología se puede construir con tecnología blockchain, porque los datos inmutables se pueden intercambiar entre las partes prometidas de manera confiable. Por lo tanto, es muy útil para escribir en forma de documentos y contratos digitales.

La cadena de bloques que Microsoft está creando actualmente es muy interesante. La tecnología que crean, operada por una coalición de organizaciones sin confianza, proporciona una alternativa rápida y de bajo impacto a los sistemas de prueba de trabajo y prueba de participación. Al mismo tiempo, el servidor SQL lanzado recientemente proporciona un libro de contabilidad inmutable para aplicaciones que actualmente no necesitan distribuirse entre diferentes entidades.

Un ejemplo de dicha tecnología serían los conocimientos de embarque digitales (facturas emitidas por transportistas o armadores) que se utilizan para la gestión de la carga de los buques. Cada una de las partes especificadas en el contrato de conocimiento de embarque puede ser un fabricante, una compañía naviera, un gerente de almacén, un operador de un buque de carga, un agente de aduanas, una oficina de aduanas, etc. Dado que cada parte pasa documentos y contratos de un lado a otro, solo las partes a las que pertenecen conectados directamente pueden conocer la información: todos necesitan acceso a los documentos y muchos necesitan agregar sus propias firmas como parte de un complejo proceso de aprobación de múltiples partes.

A primera vista, esta estructura se puede construir como una cadena de bloques empresarial, pero debemos considerar el entorno de desarrollo moderno una vez más. Ya estamos usando plataformas DevOps y CI/CD para crear aplicaciones nativas de la nube, construyendo sistemas distribuidos a escala en el proceso. Entonces, ¿se pueden utilizar las tecnologías utilizadas tradicionalmente para Web3?

Uso de las herramientas empresariales de blockchain

Donovan Brown, gerente de programas de socios de Microsoft, está examinando cómo los desarrolladores pueden manejar esta plataforma de aplicaciones descentralizada. Brown también es actualmente miembro del equipo de incubación de CTO dirigido por Mark Russinovich en la división Azure. Recientemente entrevisté a Brown para ver cómo se combinan las herramientas empresariales y la cadena de bloques.

Para que las herramientas Web3 se utilicen en la empresa, tanto la plataforma de desarrollo como las herramientas de compilación y prueba deben estar integradas. Es importante asegurarse de que las herramientas de Web3 funcionen por separado y no creen problemas, especialmente cuando se trata de manejar el comercio electrónico y otra información clave y flujos de valor. No queremos un conocimiento de embarque que corre el riesgo de ser robado por alguien. Quiero evitar casos en los que alguien lo tome en secreto y lo entregue a otro almacén, o incluso lo lleve a otro destino.

Según Brown, la explosión de herramientas que ofrecen diferentes capacidades puede ser un problema. También puede ser un entorno difícil de integrar, ya que no existe una cadena de herramientas clara ni las mejores prácticas para ayudar a construir la cadena de herramientas. Eso significa que deberá trabajar para identificar herramientas maduras que admitan las mejores prácticas empresariales en el futuro, ya sea administradas como GitHub Codespace o utilizadas en el entorno de desarrollo virtual Dev Box de Microsoft. De lo contrario, es difícil comenzar, ya que no hay un camino fácil cuando los nuevos desarrolladores se unen al equipo.

La selección de herramientas es solo una parte del problema y probablemente sea la más fácil de superar. El mayor problema es que es bastante difícil incorporar estas nuevas herramientas en las canalizaciones existentes si se utilizan las mejores prácticas de desarrollo. “A medida que profundizamos, nos dimos cuenta de que estas herramientas ni siquiera estaban diseñadas para ser puestas en proceso”, dijo Brown. Escriben su propio código, simplemente lo publican sin pruebas formales y dependen en gran medida de las técnicas de publicación. Este enfoque funciona bien tanto para la experimentación autohospedada como para la creación de prototipos, pero no para entregar código de nivel empresarial.

Creación de una canalización de DevOps para contratos inteligentes en Azure

¿Cómo podemos llevar los contratos inteligentes a la canalización de DevOps? Primero, debemos dejar de pensar en las tecnologías Web3 como algo aislado del resto de la pila de aplicaciones empresariales. Si lo hace, puede encontrar puntos de integración, como poner contratos inteligentes en un arnés de prueba y usar técnicas de desarrollo de prueba primero.

Brown creó un entorno de aplicaciones distribuidas basado en Ethereum utilizando Azure Pipelines con un entorno de desarrollo (Dev), un entorno de pruebas (QA) y resultados de producción, con el front-end de Azure Static Web Apps en el proceso. La implementación hospedada del entorno de desarrollo se ejecutó en instancias privadas de Ethereum en Azure Containers. El mayor problema con este enfoque es implementar contratos inteligentes en diferentes entornos.

Resulta que el contrato inteligente codifica una dirección que se agrega automáticamente cuando se compila en un archivo JSON. Esto requiere reconstruir todo el contrato para cada implementación, lo que requiere múltiples reconstrucciones para cada entorno. Brown señaló esto como un patrón que se aparta de los principios devops. En el tiempo de ejecución, debe compilarlo de una sola vez agregando valores específicos del entorno. Si quisiera admitir una fuente externa de direcciones de red, tendría que reescribir un poco el código de interfaz de usuario de su aplicación. Este enfoque hace que el servicio sea más fácil de usar cuando no se puede encontrar la dirección del contrato y usa Azure Functions para pasar la dirección al ejecutar consultas.

En esta estructura, el código escrito por Brown permite que se construya solo una vez en la etapa de front-end y admite su uso en cada etapa de la canalización de implementación. Entonces podría usar marcos de prueba de JavaScript estándar con la aplicación. Puede compilar todos los pasos necesarios para compilar e implementar cada entorno desde el repositorio de GitHub en una sola canalización de Azure, eliminando el entorno a medida que se valida cada paso. El uso de herramientas como Azure Container Apps es útil, ya que puede implementar artefactos de compilación rápidamente.

A partir de esto, puede crear entornos repetibles agregando compatibilidad con los marcos y herramientas de código adicionales de cada entorno, como Bicep, y scripts de administración del sistema en la CLI de Azure y PowerShell. También puede proporcionar aplicaciones listas para ejecutar y todos los servidores y servicios. Cuando trabaja con herramientas de plataforma como servicio y plataforma como servicio en Azure, puede ahorrar dinero eliminando entornos que ya no usa. y garantizar que las aplicaciones y los entornos de aplicación sean implementaciones idempotentes. Cada cambio en el código requiere redespliegue y soporte de infraestructura en toda la aplicación.

Apuntando a un modelo de madurez para la tecnología Blockchain

La tecnología de Brown demuestra cómo las tecnologías Web3 pueden integrarse en entornos empresariales familiares como parte de los marcos de aplicaciones modernas. No tiene que usar otras herramientas que no sean aquellas con las que está familiarizado, como GitHub, Azure DevOps, Azure Container Apps o VS Code. Sin embargo, se necesitan cambios en la forma en que el marco Web3 funciona con variables de entorno y recursos dinámicos. Estos no están diseñados para funcionar en canalizaciones de varias etapas y deberán cambiar para proporcionar el nivel adecuado de madurez a escala en las aplicaciones empresariales. También necesitamos una mejor telemetría para que los desarrolladores puedan ver con mayor claridad el rendimiento de sus aplicaciones y contratos.

El resultado de estas tecnologías es una mezcla de lo familiar y lo nuevo. Este es un buen resultado porque facilita a los desarrolladores adoptar nuevas tecnologías e incorporarlas en sus procesos de desarrollo existentes. Para Microsoft, es importante profundizar en las nuevas tecnologías que pueden acelerar la innovación. Las empresas pueden proporcionar un camino de incubación desde la experimentación hasta la empresa. Y años de experiencia en el desarrollo de aplicaciones empresariales, tanto dentro como fuera de su propia plataforma, informan este camino.
[email protected]


Source: ITWorld Korea by www.itworld.co.kr.

*The article has been translated based on the content of ITWorld Korea by www.itworld.co.kr. If there is any problem regarding the content, copyright, please leave a report below the article. We will try to process as quickly as possible to protect the rights of the author. Thank you very much!

*We just want readers to access information more quickly and easily with other multilingual content, instead of information only available in a certain language.

*We always respect the copyright of the content of the author and always include the original link of the source article.If the author disagrees, just leave the report below the article, the article will be edited or deleted at the request of the author. Thanks very much! Best regards!