Está en la página 1de 74

¿Qué es la consultoría DevOps?

Qué servicios se esperan?

Manuel Vega Ulloa



NO ES UNA METODOLOGIA, es
una Cultura, una forma de
entender como nos
COMUNICAMOS”
—José Juan Mora Pérez, CTO KOLOKIUM
DevOps
Es un mindset que tiene 3 vías

Manuel Vega Ulloa


La Primera Vía - Ver el SISTEMA como un TODO
enfatiza el rendimiento del sistema entero, en contra del
rendimiento de un silo específico o un departamento
concreto – este puede ser un departamento grande (p.e.
Desarrollo u Operaciones IT) o uno pequeño como una
sola persona (p.e. un desarrollador, administrador de
sistemas).

Manuel Vega Ulloa


La Primera Vía - System Thinking (el flujo de trabajo)
La atención se centra en todos aquellos elementos de
valor de negocio que están funcionando gracias a la IT.
En otras palabras, empieza identificando los requisitos
(p.e. por negocio o por IT), implementándose en
Desarrollo, y traspasándose hacia el equipo de
Operaciones IT, donde se entregan al cliente en forma de
servicio.

Los beneficios de poner la Primera Vía en práctica


incluyen que un defecto conocido nunca será propagado
hacia otros centros, nunca se permite crear una
optimización local que provoque una degradación global,
siempre se busca aumentar el flujo, y siempre se buscaManuel Vega Ulloa
Servicios relacionados con el
contexto del desarrollo de
software como:

● Automatización a todos los niveles


del desarrollo*
● Microservicios: Aquí pienso en
Docker y en Kubernetes
● Cloud: pienso en Azure, AWS o
Google Cloud por ejemplo.

Esto implica integración continua,


pruebas automatizadas y
automatización en el provisionado.
También pienso en pipelines y
infraestructura cómo código
La Segunda Vía - El flujo del feedback
trata sobre la creación de los ciclos de retroalimentación
(feedback) de derecha a izquierda. El objetivo de casi
cualquier iniciativa de mejora de proceso es reducir y
ampliar los circuitos de feedback para que las correcciones
necesarias se puedan hacer continuamente. Los beneficios
de la Segunda Vía incluyen comprender y dar respuesta a
todos los clientes, internos y externos, acortando y
amplificando todos los ciclos de feedback, e integrando
todos los conocimientos donde los necesitemos.

Manuel Vega Ulloa


Cualquier práctica, marco de
trabajo o metodología que
promocione la gestión del
feedback

● Creo que Scrum y la agilidad en


general pueden ayudar mucho
● Por otro lado, el monitoring y la
telemetría tienen un gran papel

Además aquí contaríamos con


conceptos como el Mean Time To
Detect (MTTD) y el Mean Time to
Repair (MTTR).
La Tercera Vía - Continuous Learning (el flujo de ideas o
conocimiento)
trata sobre crear una cultura que fomente dos cosas:
experimentación continua, correr riesgos y aprender del
fracaso; y entender que la repetición y la práctica son un
prerrequisito para llegar a dominar algo completamente.

Manuel Vega Ulloa


Kaizen* ( 改善 ‘ cambio a
mejor’ o ‘mejora’)

● Engloba el concepto de un método


de gestión de la calidad muy
conocido en el mundo de la
industria.

*Es un proceso de mejora continua basado


en acciones concretas, simples y poco
onerosas, y que implica a todos los
trabajadores de una empresa, desde los
directivos hasta los trabajadores de base
3 vías
fundamentales
para adoptar la
DevOp
cultura
s

Manuel Vega Ulloa


Ciclo de desarrollo de software

DevOps: mejoras que hacen que este ciclo sea más rápido
Manuel Vega Ulloa
Cambios en arquitectura

● Servicios altamente desacoplados


● Una sola responsabilidad
● Conectados a través de APIs

Microservicios
Ciclo de vida de los microservicios

Manuel Vega Ulloa


Necesito DevOps?
Necesito DevOps?

 Frecuencia en los pases


producción
 Cantidad de cambios
 Tiempo de espera
 Porcentaje de pases a
producción fallidos
 Tiempo de Recuperación
 Cantidad de defectos
reportados
 Cambios en el uso de la
aplicación
 Disponibilidad
 Tiempo de respuesta
Manuel Vega Ulloa
Cómo
lograrlo?
Primeros pasos
La fábrica de DevOps

Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6

El código como Integración Pruebas Administración Entrega Administración


infraestructura continua automatizadas del desempeño continua de la
de la aplicación configuración

Manuel Vega Ulloa


El código como
infraestructura
Infraestructure as Code (IaC)
El código como infraestructura

• Técnicas, procesos, herramientas para administrar y


configurar la entrega de aplicaciones
• Mayor control sobre el hardware, mantenimiento
repetitivo, resultados predecibles
• Se refina el ambiente de ejecución general de una
aplicación

Anti-patrón: scripts aislados, parches manuales,


ambientes no sincronizados, pases a producción para
ver qué pasa

Manuel Vega Ulloa


IaC - Herramientas

• Puppet
• Chef
• Ansible
• CFEngine
• Vagrant
• Docker
• Herramientas provistas en servicios como Amazon
AWS y Azure

Manuel Vega Ulloa


Integración Continua
Continuos Integration (CI)
Integración continua

Manuel Vega Ulloa


CI - Beneficios

• Promover código constantemente


• Automatizar las pruebas (todo lo posible)
• Construcciones (builds) frecuentes
• No promover código inestable
• Automatizar el despliegue
• Estrategia de versionamiento de artefactos de software
• Retroalimentación

Manuel Vega Ulloa


CI - Implementación

• Sistema de control de versiones (Git, Subversion,


Perforce, Mercurial)
• Herramienta de Integración Continua (Jenkins,
TeamCity, CruiseControl)
• Construcciones que se disparan automáticamente
• Análisis estático de código (Sonarqube)
• Automatizar todo lo que se pueda
• Administración de artefactis de software (artifactory,
nexus, npm)
• Pruebas en ambientes iguales a los de producción

Manuel Vega Ulloa


Pruebas automatizadas
Pruebas automatizadas

• Realizar pruebas al software es crítico pero es una


tarea que puede consumir mucho tiempo
• Respuesta: un conjunto de pruebas automatizadas
• Proveen visibilidad del rendimiento de la aplicación y
del impacto de sus cambios
• Equipos pueden entregar nuevas versiones de software
más rápido sin comprometer la calidad

Manuel Vega Ulloa


Pruebas automatizadas

• QA promueve el uso de herramientas y frameworks que


permiten probar de forma prematura el software
durante el ciclo de desarrollo

Anti-patrón: exceso de pruebas manuales, pruebas


tardías, despliegues a producción para ver qué pasa

Manuel Vega Ulloa


Pruebas automatizadas - herramientas

• Selenium (Web Application Testing)


• JMeter (Load Testing)
• Jenkins (Continuous Testing)
• Postman (API Testing)
• RazorSQL (Database Query Tool)

Manuel Vega Ulloa


Gestión del desempeño
Gestión del desempeño

• Lo que no se mide no se mejora


• Es necesario tener la mayor visibilidad del estado
actual de la aplicación
• Al analizar el desempeño se pueden identificar errores
en:
1. El código
2. La infraestructura
3. Alguna política del negocio

Anti-patrón: no medir, política del “silencio positivo”,


esperar por las quejas de los clientes

Manuel Vega Ulloa


Gestión del desempeño

• Sensu
• Prometheus
• Nagios
• ELK

Manuel Vega Ulloa


Entrega Continua
Continuos Delivery (CD)
Entrega continua

• Típicamente después de la
Integración continua
• La entrega continua envía un nuevo
artefacto estable a un ambiente de
producción
• Una tubería de entrega (delivery
pipeline) automatizada
• Implementado adecuadamente ayuda
a reducir el costo, tiempo y riesgo en
la entrega de nuevos cambios en las
aplicaciones
Manuel Vega Ulloa
Administración de la
configuración
Administración de la configuración

• Administración de la configuración (Configuration


management CM) es el conjunto de actividades
relacionadas con la administración de la evolución de
los productos durante todo su ciclo de vida.
• Para ello es necesario identificar, organizar y controlar
las modificaciones al producto con el objetivo de
maximizar la productividad a la vez que se minimizan
los errores.

Manuel Vega Ulloa


Administración de la configuración

• Es el control que se tiene sobre cada uno de los


componentes de configuración de un producto con el fin
de que todos los cambios que se realicen a estos
componentes, una vez que han sido aprobados, se hagan
de forma controlada y que en todo momento se conozca
cuál es la versión vigente de cada uno. Facilita la
identificación e integración de los componentes de
configuración que conforman los entregables del proyecto.
• Es el proceso de identificar la configuración del producto
para controlar sistemáticamente los cambios a la misma y
mantener su integridad a lo largo de todo el ciclo de vida
del proyecto.
Manuel Vega Ulloa
Administración de la configuración

• Ansible
• CFEngine
• Chef
• Puppet
• Salt

Manuel Vega Ulloa


Manuel Vega Ulloa
Radar Tecnológico y
clasificación de herramientas

Manuel Vega Ulloa


Radar Tecnológico y clasificación de
herramientas
• Si bien un enfoque ágil e innovador que use nuevas tecnologías favorece la investigación y el
desarrollo, desde el punto de vista operativo siempre habrá reticencia a aceptar todo tipo de
cambio para mantener la estabilidad de plataformas y sistemas.
• El aumento del número de herramientas a utilizar implica un periodo de formación y adaptación
que puede crear incertidumbre y tensión interna entre equipos (Dev vs Ops).
• El uso de un radar tecnológico (como el de la siguiente lámina) es importante para demostrar de
un modo visual el tipo de tecnologías contempladas por el equipo de arquitectura.
• Pero es también conveniente el consenso entre equipos en cuanto al uso de las herramientas
(no sólo visto como marcan las tendencias de mercado, sino como dictan las necesidades del
negocio).
• El uso de Terraform para el aprovisionamiento de elementos semi-estáticos de plataformas y el
uso de Ansible como herramienta de administración de configuración debe ser establecido sin
ambigüedad.
• Se debe dejar claro el rol de cada herramienta sin excepciones para evitar la acumulación de
deuda técnica.
Manuel Vega Ulloa
Técnicas Herramientas
1 Pipelines para infraestructura como código 1 Packer

2 Políticas de seguridad como código 2 Terraform


4 5 3 Scikit-learn
3 Malla de datos
3 4 Kubeflow
2 4
4 10X engineers 2
5 Azure Data Factory
para orquestación
1 1 3

1
Plataformas 3
2
2
1 3 Lenguajes
1 Docker 4 5 1 Flutter
2 Kubernetes 4 2 Tensorflow
3 Azure DevOps 3 GraphQL
4 Quarkus
4 GraalVM
5 Camunda

Manuel Vega Ulloa


Technology Radar

Adoptar: Creemos firmemente que la industria


debería adoptar estos elementos.
Nosotros los utilizamos cuando es apropiado para
nuestros proyectos
Probar: Vale la pena perseguirlo. Es importante
entender cómo construir esta habilidad. Las
empresas deberían implementar esta tecnología en
un proyecto que pueda manejar el riesgo.
Evaluar: Vale al pena explorarlo con el objetivo de
entender cómo afectará a su empresa.
Resistir: Continua con precaución

Adoptar Probar Evaluar Resistir

Manuel Vega Ulloa


Técnicas Herramientas
1 Pipelines para infraestructura como código

2 Políticas de seguridad como código


4
3 Malla de datos
3
4 10X engineers 2

Plataformas Lenguajes

Manuel Vega Ulloa


Pipelines para infraestructura como código
• El uso de pipelines de entrega continua para orquestar el proceso de entrega de
software se ha vuelto un concepto popular.
• Herramientas de CI/CD pueden ser usadas para testear configuraciones de
servidores (ej: Packer), aprovisionamiento de ambientes (ej: Terraform,
CloudFormation) y la integración de ambientes.
• El uso de pipelines para infraestructura como código permite encontrar errores
antes de que los cambios sean aplicados en los entornos operacionales -
incluyendo entornos utilizados para desarrollo y test.
• También ofrecen una manera de asegurar que las herramientas de infraestructuras
se están ejecutando consistentemente, utilizando agentes CI/CD en vez de
workstations individuales.
• Nuestros equipos han tenido buenos resultados utilizando esta técnica en sus
proyectos.

Manuel Vega Ulloa


Políticas de seguridad como código
• Las políticas de seguridad son reglas y procedimientos que protegen a nuestros
sistemas de amenazas y alteraciones.
• Por ejemplo, las políticas de control de acceso definen y resguardan quiénes
pueden acceder a qué tipo de servicios y de recursos y bajo qué circunstancias; o
las políticas de seguridad de redes pueden limitar dinámicamente la velocidad del
tráfico a un servicio en particular.
• El complejo panorama tecnológico de hoy exige tratar las políticas de seguridad
como código: definir y mantener esas políticas bajo control de versionamiento,
validarlas automáticamente, desplegarlas automáticamente y monitorear su
desempeño.
• Herramientas tales como el Open Policy Agent o plataformas como Istio proveen
mecanismos flexibles de definición y ejecución de políticas que apoyan la práctica
de tratar las políticas de seguridad como código.

Manuel Vega Ulloa


Malla de datos
• Malla de datos es un paradigma de arquitectura que desbloquea datos analíticos a
escala; rápidamente desbloquea accesos a un número cada vez mayor de
conjuntos distribuidos de datos de dominio, para una proliferación de escenarios de
consumo tales como aplicaciones de aprendizaje automático, análisis o uso
intensivo de datos en toda la organización.
• Malla de datos aborda los modos de fallas comunes de los data lakes centralizados
tradicionales o de la arquitectura de plataforma de datos, con un cambio desde el
paradigma centralizado de un lake, o su predecesor, el data warehouse.
• Malla de datos cambia a un paradigma que traza desde una arquitectura distribuida
moderna: considerando dominios como los asuntos de primera clase, aplicando
platform thinking para crear una infraestructura de datos de autoservicio,
tratamiento de datos como un producto, e implementando estandarización abierta
para habilitar un ecosistema de productos de datos distribuidos inter-operables.

Manuel Vega Ulloa


10X engineer
• El antiguo término 10x engineer ha sido sometido a escrutinio estos pasados
meses. Un hilo ampliamente distribuido en Twitter sugiere esencialmente que las
compañías deben excusar comportamientos antisociales y dañinos para retener
ingenieras/os que son percibidas/os como altamente eficientes (a nivel de output
individual).
• Afortunadamente, muchas personas en la red social realizaron bromas sobre el
concepto, pero el estereotipo del rol de “desarrollador/a rockstar” es todavía
generalizado.
• En nuestra experiencia, grandes ingenieras/os no se guían por el output individual,
sino por trabajar en equipos fantásticos.
• Es más eficiente construir equipos de gente con talento, tanto experiencias como
backgrounds variados, que proporcionen los ingredientes precisos para el trabajo
en equipo, el aprendizaje y la mejora continua.
• Estos equipos 10x pueden moverse más rápido, escalar rápidamente y ser mucho
más resilientes, sin necesidad de justificar malos comportamientos.
Manuel Vega Ulloa
Técnicas Herramientas
1 Pipelines para infraestructura como código 1 Packer

2 Políticas de seguridad como código 2 Terraform


4 5 3 Scikit-learn
3 Malla de datos
3 4 Kubeflow
2 4
4 10X engineers 2
5 Azure Data Factory
para orquestación
1 1 3

Plataformas Lenguajes

Manuel Vega Ulloa


Packer
• Las imágenes de máquina se han vuelto esenciales para procesos pipelines de
despliegues modernas y hay varias técnicas y herramientas para crear las
imágenes.
• Debido a su conjunto comprehensivo de funcionalidades y experiencias positivas
que hemos tenido, recomendamos Packer a otras alternativas.
• También aconsejamos no intentar desarrollar scripts personalizados para hacer lo
que Packer hace por omisión

Manuel Vega Ulloa


Terraform
• Con Terraform se puede gestionar la infraestructura cloud escribiendo definiciones
declaratorias.
• La configuración de los servidores instanciados por Terraform se deja usualmente a
herramientas como Puppet, Chef o Ansible.
• Nos gusta Terraform porque la sintaxis de sus archivos es fácil de leer y porque
soporta un buen número de proveedores de cloud sin intentar proveer una
abstracción artificial entre estos proveedores.
• Después de nuestro primer uso de Terraform hace dos años, se ha visto un
desarrollo continuo y ha evolucionado a un producto estable que ha probado su
valor en nuestros proyectos.
• El tema con la gestión del archivo de estado puede ahora esquivarse utilizando lo
que Terraform llama un “remote state backend”. Hemos utilizado Consul
exitosamente para ese propósito.

Manuel Vega Ulloa


Scikit-learn
• Scikit-learn es una librería desarrollada en Python para aprendizaje de máquina
cada vez más popular.
• Provee un conjunto robusto de modelos de aprendizaje de máquina tales como
agrupaciones, clasificación, regresión y reducción de dimensiones, y un conjunto
abundante de funcionalidad para tareas anexas como selección y evaluación de
modelos, además de preparación de datos.
• Debido a que fue diseñado para ser sencillo y reusable en varios contextos, además
de estar bien documentado, podemos notar que esta herramienta será accesible
incluso para quienes no son expertos, para que exploren el espacio de aprendizaje
de máquinas.

Manuel Vega Ulloa


Kubeflow
• Kubeflow es interesante por dos motivos. El primero es su uso innovador de
Operadores Kubernetes. El segundo es que provee una manera de codificar y
modelar cargas de trabajo para aprendizaje de máquinas que facilita trasladarlas de
un entorno de ejecución a otro.
• Kubeflow incluye componentes tales como Jupyter notebooks, canalizaciones de
datos y herramientas de control.
• Varios de estos componentes vienen empaquetados como operadores de
Kubernetes, para aprovechar su habilidad de reaccionar a los eventos generados
por pods mediante la implementación de varias fases de la carga de trabajo.
• Al tomar los programas individuales y los datos y empaquetarlos como
contenedores es posible trasladar cargas de trabajo enteras de un entorno a otro.
• Esto puede resultar conveniente al trasladar una carga de trabajo útil pero
computacionalmente exigente y desarrollada en la nube a una supercomputadora
personalizada o a un clúster de unidades de procesamiento tensorial.

Manuel Vega Ulloa


Azure Data Factory
• Azure Data Factory (ADF) es actualmente el producto por defecto de Azure, para la
orquestación de flujos de procesamiento de datos. Permite ingesta de datos, copia
de datos desde y hacia diferentes tipos de almacenamiento tanto On-Prem como
Azure, y la ejecución de lógica de transformación.
• Si bien hemos tenido algunos resultados aceptables con ADF para migraciones
simples de almacenes de datos de On-Prem a la nube, desaconsejamos el uso de
Azure Data Factory para la orquestación de flujos de procesamiento de datos
complejos.

Manuel Vega Ulloa


Azure Data Factory
• Nuestra experiencia ha sido desafiante debido a diferentes factores, incluyendo una
cobertura limitada de capacidades que pueden implementarse dando prioridad a la
codificación, ya que parece que ADF está priorizando dejar disponible primero las
capacidades de plataforma de baja codificación; pocas facilidades para depuración
y reporte de errores; observabilidad limitada ya que las capacidades de log de ADF
no se integran con otros productos como Azure Data Lake Storage o Databricks,
haciendo muy complicado disponer de una observabilidad de extremo a extremo en
su lugar; y la disponibilidad de mecanismos de activación de la fuente de datos
limitada a algunas regiones solamente.
• En este momento, aconsejamos utilizar otras herramientas de orquestación de
código abierto (por ejemplo, Airflow) para flujos de datos complejos, y limitar el uso
de ADF a copia de datos o snapshots. Confiamos en que ADF solucionará estas
deficiencias para poder abastecer adecuadamente más flujos de procesamiento de
datos complejos y priorizar el acceso a capacidades que anteponen la codificación.

Manuel Vega Ulloa


Técnicas Herramientas
1 Pipelines para infraestructura como código 1 Packer

2 Políticas de seguridad como código 2 Terraform


4 5 3 Scikit-learn
3 Malla de datos
3 4 Kubeflow
2 4
4 10X engineers 2
5 Azure Data Factory
para orquestación
1 1 3

Plataformas Lenguajes
1 Docker
2 Kubernetes
3 Azure DevOps
4 GraalVM

Manuel Vega Ulloa


Docker
• Seguimos entusiasmados con Docker a medida que evoluciona de una herramienta
a una plataforma compleja de tecnologías.
• Los equipos de desarrollo adoran Docker, ya que el formato de imagen de Docker
facilita la paridad entre el desarrollo y la producción, lo que permite
implementaciones confiables.
• Es un ajuste natural en una aplicación de estilo microservicios como mecanismo de
empaquetado para servicios autónomos.
• En el frente operativo, Docker admite herramientas de monitoreo ( Sensu ,
Prometheus , cAdvisor , etc.), herramientas de orquestación ( Kubernetes ,
Marathon, etc.) y las herramientas de automatización de implementación reflejan la
madurez creciente de la plataforma y su disponibilidad para el uso de producción

Manuel Vega Ulloa


Kubernetes
• Kubernetes, se ha convertido en la solución predeterminada para la mayoría de
nuestros clientes cuando implementamos contenedores en un grupo de máquinas.
• Kubernetes se ha convertido en la plataforma de orquestación de contenedores
elegida por las principales plataformas de nube pública, incluido el Servicio de
Contenedor Azure de Microsoft y Google Cloud.
• Y hay muchos productos útiles que enriquecen el ecosistema de rápido crecimiento
de Kubernetes.

Manuel Vega Ulloa


Azure DevOps
• Los servicios de Azure DevOps incluyen un conjunto de servicios administrados,
como repositorios Git alojados, pipelines de CI/CD, herramientas de prueba
automatizadas, herramientas de administración de trabajos pendientes y repositorio
de artefactos.
• Los pipelines de Azure DevOps han ido madurando con el tiempo. Nos gusta
especialmente su capacidad para definir Pipelines como código y su ecosistema de
extensiones en el mercado de Azure DevOps.
• Al momento de escribir esto, nuestros equipos aún se encuentran con algunas
características inmaduras, incluida la falta de una interfaz de usuario efectiva para
la visualización y navegación de pipelines, y la incapacidad de activar un pipeline a
partir de artefactos u otras pipelines.

Manuel Vega Ulloa


GraalVM
• GraalVM es una máquina virtual universal de Oracle para correr aplicaciones
escritas en lenguajes JVM, JavaScript, Python, Ruby, y R, así como C/C+ y otros
lenguajes basados en LLVM.
• En su forma más simple, GraalVM puede ser usado como una MV con mayor
rendimiento para JVM y otros lenguajes no-JVM soportados.
• Pero también nos permite escribir aplicaciones políglotas con muy poco impacto en
el rendimiento; y su utilidad de Imagen Nativa (de momento solo disponible como
una tecnología de Early Adopter) nos permite realizar una compilación anticipada de
código Java a ejecutables autónomos para un inicio más rápido y con un menor uso
de memoria.
• GraalVM ha despertado mucho entusiasmo en la comunidad de Java, y varios
frameworks de Java (incluyendo a Micronaut, Quarkus, y Helidon) ya están
sacando provecho suyo.

Manuel Vega Ulloa


Técnicas Herramientas
1 Pipelines para infraestructura como código 1 Packer

2 Políticas de seguridad como código 2 Terraform


4 5 3 Scikit-learn
3 Malla de datos
3 4 Kubeflow
2 4
4 10X engineers 2
5 Azure Data Factory
para orquestación
1 1 3

1
Plataformas 3
2
2
1 3 Lenguajes
1 Docker 4 5 1 Flutter
2 Kubernetes 4 2 Tensorflow
3 Azure DevOps 3 GraphQL
4 Quarkus
4 GraalVM
5 Camunda

Manuel Vega Ulloa


Flutter
• FLUTTER es un framework multiplataforma que permite escribir aplicaciones
móviles nativas en Dart.
• Se beneficia de Dart y puede compilarse en código nativo y comunicarse con la
plataforma destino sin puente y cambio de contexto - algo que puede causar cuellos
de botella de rendimiento en frameworks como React Native o Weex.
• La función de recarga en caliente de Flutter es impresionante y proporciona una
retroalimentación visual super rápida cuando se edita el código.

Manuel Vega Ulloa


Flutter
• Con su versión 2.0, TensorFlow mantiene su prominencia como framework líder en
el sector de Machine Learning (ML).
• TensorFlow comenzó como un paquete de procesamiento numérico que se
expandió gradualmente para incluir librerías que permiten varias aproximaciones y
entornos de ejecución de ML, abarcando desde las CPUs de los móviles hasta
grandes clusters de GPUs. Por el camino, se habilitó una gran cantidad de
frameworks para simplificar las tareas de creación de redes neuronales y
entrenamiento.
• Al mismo tiempo, otras frameworks, especialmente PyTorch, ofrecían un modelo de
programación imperativa que hacía la depuración y ejecución más simple y fácil

Manuel Vega Ulloa


Flutter
• TensorFlow 2.0 adopta Keras como única API de alto nivel. Mientras estos cambios
modernizan la usabilidad de TensorFlow y lo hacen más competitivo frente a
PyTorch, se trata de una reescritura significativa que a menudo rompe la
retrocompatibilidad — muchas herramientas y frameworks de servicio en el
ecosistema de TensorFlow no funcionarán de manera inmediata con la nueva
versión.
• De momento, hay que considerar si queremos diseñar y experimentar en
TensorFlow 2.0 pero volver a la versión 1 para servir y ejecutar los modelos en
producción.

Manuel Vega Ulloa


Camunda
• Tendemos a ser bastante escépticos con respecto al modelo de procesos de
negocios y las herramientas de notación (BPMN) en general, ya que a menudo se
las asocia con entornos de low-code y sus desventajas.
• Aunque el framework OSS BPMN CAMUNDA proporciona algo de ostentosidad,
también ofrece flujos de trabajo y motores de decisión que pueden integrarse
directamente como una biblioteca en su código Java.
• Esto facilita las pruebas, versionamiento y los flujos de trabajo de refactor.
• Camunda también se integra con Spring y Spring Boot, entre otros frameworks, por
lo que es una opción sólida.

Manuel Vega Ulloa


GraphQL
• Hemos visto muchas implementaciones exitosas de GraphQL en nuestros
proyectos.
• También hemos visto algunos patrones de uso interesantes, incluyendo GraphQL
for server-side resource aggregation.
• Dicho esto, existen inquietudes sobre el mal uso de este framework y algunos de
los problemas que pueden ocurrir. Por ejemplo problemas de rendimiento alrededor
de consultas N+1 y código repetitivo necesario cuando se agregan nuevos modelos,
conduciendo a complejidad.
• Hay alternativas a estos problemas como el cacheo de consultas. Sin embargo, no
es una “bala de plata”, todavía pensamos que vale la pena una evaluación como
parte de tu arquitectura.

Manuel Vega Ulloa


Quarkus
• Quarkus es un framework basado en contenedores y nativo de la nube de Red Hat
para escribir aplicaciones en Java. Tiene un tiempo de arranque muy corto
(decenas de milisegundos) y tiene utilización de memoria baja lo que lo convierte en
un buen candidato para FaaS o para escalado hacia arriba o hacia abajo de manera
frecuente en un orquestador de contenedores.
• Al igual que Micronaut, Quarkus consigue esto utilizando técnicas de compilación
ahead-of-time para realizar la inyección de dependencias en tiempo de compilación
y evitar los costes de la reflexión en tiempo de ejecución.
• También funciona bien con la Imagen Nativa de GraalVM que reduce aún más el
tiempo de arranque. Quarkus soporta los modelos tanto imperativo como reactivo.
• Junto a Micronaut y Helidon, Quarkus lidera la carga en la nueva generación de
frameworks Java que tratan de solucionar el problema del tiempo de arranque y
consumo de memoria sin sacrificar la efectividad de la persona que desarrolla. Ha
recibido mucha atención por parte de la comunidad y merece la pena mantenerla
bajo vigilancia.
Manuel Vega Ulloa
Técnicas Herramientas
1 Pipelines para infraestructura como código 1 Packer

2 Políticas de seguridad como código 2 Terraform


4 5 3 Scikit-learn
3 Malla de datos
3 4 Kubeflow
2 4
4 10X engineers 2
5 Azure Data Factory
para orquestación
1 1 3

1
Plataformas 3
2
2
1 3 Lenguajes
1 Docker 4 5 1 Flutter
2 Kubernetes 4 2 Tensorflow
3 Azure DevOps 3 GraphQL
4 Quarkus
4 GraalVM
5 Camunda

Manuel Vega Ulloa


DevOps
Tools
Manuel Vega Ulloa
Manuel Vega Ulloa
Tools

Manuel Vega Ulloa


Tuleap es un sistema de gestión del ciclo de
vida de la aplicación, que facilita el desarrollo
ágil de software, proyectos de diseño, modelo
V, gestión de requisitos y gestión de servicios
de TI. Es un software gratuito lanzado bajo la
Licencia Pública General de GNU, versión 2.
Manuel Vega Ulloa
Taiga es un sistema de gestión de proyectos
gratuito y de código abierto para startups,
desarrolladores ágiles y diseñadores.
Su interfaz está escrita en AngularJS y CoffeeScript;
backend, en Django y Python. Taiga se lanza bajo
licencia pública general de Affero de GNU.

Manuel Vega Ulloa


Manuel Vega Ulloa

También podría gustarte