Tres razones por las que necesitas una arquitectura de agregación de registros hoy

Tres razones por las que necesitas una arquitectura de agregación de registros hoy

La agregación de registros ya no es una mercancía, sino un componente crítico en plataformas basadas en contenedores

La gestión de registros no parece un tema muy fantástico. No es el tema que ves y dices: “¡Oh! ¡Increíble! Esto es con lo que he soñado toda mi vida”. No, soy consciente de que esto no es muy atractivo, pero eso no lo hace menos crítico que otras capacidades que tu arquitectura necesita tener.

Desde el principio de los tiempos, hemos usado archivos de registro como la única fuente de datos confiable cuando se trataba de solucionar problemas de tus aplicaciones o saber qué falló en tu implementación o cualquier otra acción relacionada con una computadora.

El procedimiento era fácil:

  • Lanzar “algo”
  • “Algo” falló.
  • Revisar los registros
  • Cambiar algo
  • Repetir

Y lo hemos estado haciendo de esa manera durante mucho, mucho tiempo. Incluso con otros enfoques más robustos de manejo y gestión de errores como el Sistema de Auditoría, también volvemos a los registros cuando necesitamos obtener el detalle minucioso sobre el error. Buscar una traza de pila allí, más detalle sobre el error que se insertó en el Sistema de Auditoría o más datos que solo el código de error y la descripción que proporcionó una API REST.

Los sistemas comenzaron a crecer, la arquitectura se volvió más complicada, pero incluso con eso, terminamos con el mismo método una y otra vez. Estás al tanto de arquitecturas de agregación de registros como la pila ELK o soluciones comerciales como Splunk o incluso ofertas SaaS como Loggly, pero simplemente piensas que no son para ti.

Son caras de comprar o caras de configurar, y conoces muy bien tu ecosistema, y es más fácil simplemente entrar en una máquina y seguir el archivo de registro. Probablemente también tengas tu caja de herramientas de scripts para hacer esto tan rápido como cualquiera puede abrir Kibana e intentar buscar algo como el ID de instancia allí para ver el error de una transacción específica.

Ok, necesito decirte algo: Es hora de cambiar, y te voy a explicar por qué.

Las cosas están cambiando, y TI y todos los nuevos paradigmas se basan en algunos fundamentos comunes:

  • Vas a tener más componentes que van a funcionar aislados con sus archivos de registro y datos.
  • Las implementaciones serán más regulares en tu entorno de producción, y eso significa que las cosas van a estar mal más a menudo (de una manera controlada, pero más a menudo)
  • Las tecnologías van a coexistir, por lo que los registros van a ser muy diferentes en términos de patrones y diseños, y necesitas estar preparado para eso.

Así que, discutamos estos tres argumentos que espero te hagan pensar de una manera diferente sobre las arquitecturas y enfoques de Gestión de Registros.

1.- Tu enfoque simplemente no escalable

Tu enfoque es excelente para sistemas tradicionales. ¿Cuántas máquinas gestionas? ¿30? ¿50? ¿100? Y puedes hacerlo bastante bien. Imagina ahora una plataforma basada en contenedores para una empresa típica. Creo que un número promedio podría ser alrededor de 1000 contenedores solo para propósitos comerciales, sin hablar de arquitectura o servicios básicos. ¿Eres capaz de estar listo para ir contenedor por contenedor para verificar 1000 flujos de registros para conocer el error?

Incluso si eso es posible, ¿vas a ser el cuello de botella para el crecimiento de tu empresa? ¿Cuántos registros de contenedores puedes seguir? ¿2000? Como decía al principio, eso simplemente no es escalable.

2.- Los registros no están allí para siempre

Y ahora, lees el primer tema y probablemente solo estás diciendo a la pantalla que estás usando para leer esto. ¡Vamos! Ya sé que los registros no están allí, se están rotando, se pierden, y así sucesivamente.

Sí, eso es cierto, esto es aún más importante en el enfoque nativo de la nube. Con plataformas basadas en contenedores, los registros son efímeros, y además, si seguimos el manifiesto de la aplicación de 12 factores, no hay archivo con el registro. Todas las trazas de registro deben imprimirse en la salida estándar, y eso es todo.

¿Y dónde se eliminan los registros? Cuando el contenedor falla… ¿y cuáles son los registros que más necesitas? Los que han fallado.

Así que, si no haces nada, las trazas de registro que más necesitas son las que vas a perder.

3.- Necesitas poder predecir cuándo las cosas van a fallar

Pero los registros no solo son válidos cuando algo sale mal, son adecuados para detectar cuándo algo va a estar mal, sino para predecir cuándo las cosas van a fallar. Y necesitas poder agregar esos datos para poder generar información y conocimientos a partir de ellos. Para poder ejecutar modelos de ML para detectar si algo va como se espera o si algo diferente está sucediendo que podría llevar a algún problema antes de que ocurra.

Resumen

Espero que estos argumentos te hayan hecho pensar que incluso para tu empresa de pequeño tamaño o incluso para tu sistema, necesitas poder configurar una técnica de Agregación de Registros ahora y no esperar a otro momento cuando probablemente sea demasiado tarde.

Mayor agilidad a través de la conectividad digital moderna

Mayor agilidad a través de la conectividad digital moderna

Descubra cómo TIBCO Cloud Integration puede ayudarle a aumentar la agilidad empresarial conectando todas sus aplicaciones, dispositivos y datos sin importar dónde estén alojados

Vivimos en un mundo donde el número de activos digitales que necesitan ser integrados, los tipos de activos y dónde están alojados están explotando. Hemos pasado de un panorama empresarial simple donde todos nuestros sistemas estaban alojados en un solo centro de datos, y el número de sistemas era pequeño. Si aún recuerda esos días, probablemente podría nombrar todos los sistemas que mantenía. ¿Podría imaginarse haciendo eso hoy?

Esto ha cambiado completamente. Las empresas hoy en día operan cada vez más en aplicaciones y datos en lugar de en procesos manuales documentados, y eso ha aumentado las demandas para tenerlos conectados para apoyar las operaciones del negocio. ¿Cómo puede un equipo de TI tradicional mantenerse al día con todas las solicitudes de conectividad provenientes de todas las áreas del negocio para asegurar que estos activos estén completamente integrados y funcionen sin problemas?

Además, el entorno empresarial ha cambiado completamente. Hoy en día todo está hiperacelerado. Ya no puede esperar seis meses para poner en línea sus nuevas promociones de marketing o para introducir nuevos servicios digitales.

Esto se debe a que los mercados cambian constantemente con el tiempo. A veces crecen, y otras veces se contraen. Esto obligó a las empresas a cambiar rápidamente la forma en que hacen negocios.

Entonces, si necesitamos resumir todo lo que necesitamos de una arquitectura de aplicaciones para asegurarnos de que pueda ayudarnos a cumplir con nuestros requisitos empresariales, esa palabra es «agilidad». Y la agilidad arquitectónica crea agilidad empresarial.

Se han adoptado diferentes paradigmas de TI para ayudar a aumentar la agilidad arquitectónica desde diferentes perspectivas que proporcionan una forma rápida de adaptarse, conectarse y ofrecer nuevas capacidades a los clientes:

  • Agilidad de Infraestructura: Basada en la adopción de la nube, los proveedores de nube ofrecen una forma ágil de aprovechar inmediatamente la capacidad de infraestructura requerida, permitiendo una rápida innovación al crear rápidamente nuevos entornos y desplegar nuevos servicios bajo demanda.
  • Agilidad de Operación y Gestión: Las aplicaciones basadas en SaaS le permiten adoptar suites empresariales de mejor calidad sin tener que adquirir y gestionar la infraestructura subyacente, como lo hace en su enfoque local. Esto le permite agilizar y acelerar las operaciones de su negocio.
  • Agilidad de Desarrollo: Basada en las tecnologías de aplicaciones que crean componentes de software pequeños y altamente escalables que pueden evolucionarse, desplegarse y gestionarse de manera autónoma. Este enfoque integra capacidades de integración directamente dentro de las aplicaciones desplegadas, haciendo que la integración ya no sea una capa separada, sino algo que está incorporado dentro de cada componente. Los conceptos de microservicios, desarrollo liderado por API y arquitectura impulsada por eventos juegan un papel esencial y expanden las personas involucradas en el proceso de desarrollo.

Entonces, todas estas formas de agilidad ayudan a construir una arquitectura de aplicaciones que es altamente ágil, capaz de responder rápidamente a los cambios en el entorno en el que opera. Y puede lograr todas ellas con TIBCO® Cloud Integration (TCI).

TCI es una Plataforma de Integración como Servicio (iPaaS), una solución de integración basada en la nube que hace extremadamente fácil para usted conectar todos sus activos sin importar dónde estén alojados. Es una oferta SaaS que se ejecuta tanto en AWS como en Microsoft Azure, por lo que no tiene que gestionar la infraestructura subyacente para asegurarse de que los activos de integración que son críticos para su negocio estén siempre disponibles y se escalen a cualquier nivel de demanda.

Desde la perspectiva del desarrollo, TCI le proporciona todas las herramientas necesarias para que su negocio desarrolle y conecte todos sus activos digitales, incluidas sus aplicaciones, fuentes de datos, dispositivos, suites empresariales, procesos y soluciones SaaS, utilizando los estándares más modernos dentro de una experiencia inmersiva.

Aborda patrones de integración desde enfoques tradicionales, como en la replicación de datos, hasta enfoques modernos, incluyendo arquitecturas lideradas por API e impulsadas por eventos. También admite los últimos estándares de conectividad como REST, GraphQL, AsyncAPI y gRPC. Y para reducir el tiempo de comercialización de sus integraciones, también incluye un número significativo de conectores preempaquetados que simplifican la conectividad a suites empresariales heredadas y modernas, fuentes de datos y más, sin importar si residen en su centro de datos o en la nube. Estos conectores son fácilmente accesibles dentro de un mercado de conectores integrado directamente en la experiencia del usuario para ser utilizados en toda la plataforma.

TCI mejora el desarrollo basado en equipos. Con TIBCO® Cloud Mesh, accesible a través de TCI, sus integradores pueden compartir, descubrir y reutilizar fácilmente activos digitales creados en toda la empresa dentro de TIBCO Cloud, como APIs y aplicaciones, y utilizarlos muy rápidamente dentro de las integraciones de manera segura sin necesidad de preocuparse por aspectos técnicos.

Esta capacidad promueve la reutilización de activos existentes y una mejor colaboración entre equipos. Combinado con conectores preempaquetados que son directamente accesibles dentro de TCI, el tiempo de desarrollo para introducir nuevas integraciones se reduce significativamente.

Mayor agilidad a través de la conectividad digital moderna
Acceda fácilmente a conectores preempaquetados dentro de un mercado de conectores integrado

TCI también amplía el número de personas en su negocio que pueden crear integraciones, con múltiples experiencias de desarrollo que están adaptadas para diferentes roles, proporcionando su propia experiencia y habilidades. Ahora no solo los especialistas en integración pueden participar en el proceso de integración, sino también los desarrolladores, propietarios de productos API e integradores ciudadanos.

Esto aumenta drásticamente la agilidad empresarial porque sus diversas unidades de negocio pueden crear integraciones de manera autoservicio, colaborar para proporcionar soluciones incluso si abarcan diferentes unidades de negocio, y reducir sus dependencias en equipos de TI sobrecargados. Esto libera a sus especialistas en integración para que se concentren en proporcionar las mejores prácticas de integración para su empresa y en diseñar una arquitectura de aplicaciones receptiva.

TCI aborda una serie de casos de uso de integración, incluyendo:

  1. Conectar aplicaciones, datos y dispositivos que residen en cualquier lugar (por ejemplo, en las instalaciones, SaaS, nube privada/pública)
  2. Diseñar, orquestar y gestionar APIs y microservicios
  3. Rearquitecturar aplicaciones monolíticas inflexibles en aplicaciones nativas de la nube altamente escalables.
  4. Construir aplicaciones impulsadas por eventos que procesan flujos de datos (por ejemplo, de dispositivos IoT o Apache Kafka)

TCI también proporciona información detallada sobre el rendimiento y el estado de ejecución de sus integraciones para que pueda optimizarlas según sea necesario o detectar y resolver fácilmente cualquier problema potencial con ellas. Esto asegura que los procesos empresariales que dependen de sus integraciones se vean mínimamente interrumpidos.

Mayor agilidad a través de la conectividad digital moderna
Obtenga vistas rápidas de la ejecución de aplicaciones y detalles de rendimiento.
Mayor agilidad a través de la conectividad digital moderna
Profundice para obtener información ampliada sobre los historiales de ejecución de aplicaciones y las tendencias de rendimiento.

Al incorporar a más personas en su proceso de integración, empoderándolas con una vista inmersiva que les ayuda a trabajar juntos sin problemas en sus integraciones, proporcionando capacidades como TIBCO Cloud Mesh y conectores preempaquetados dentro de un mercado de conectores unificado que acelera el desarrollo de integraciones, su negocio digital puede conectarse y reconectarse muy rápidamente para responder a los mercados cambiantes, lo que aumenta enormemente su agilidad empresarial.

Para experimentar lo fácil que es conectar todos sus activos digitales para aumentar su agilidad empresarial, regístrese hoy para una prueba gratuita de 30 días de TIBCO Cloud Integration.

Regístrese para la prueba gratuita en https://www.tibco.com/products/cloud-integration

TIBCO Cloud Integration es un servicio proporcionado dentro de la Plataforma de Inteligencia Conectada de TIBCO, que proporciona un conjunto completo de capacidades para conectar su negocio.

Guerras tecnológicas: Solución de Gestión de API vs Malla de Servicios

Guerras tecnológicas: Solución de Gestión de API vs Malla de Servicios

Service Mesh vs. Solución de Gestión de API: ¿es lo mismo? ¿Son compatibles? ¿Son rivales?

Cuando hablamos de comunicación en un mundo distribuido nativo de la nube y especialmente cuando hablamos de arquitecturas basadas en contenedores basadas en la plataforma Kubernetes como AKS, EKS, Openshift, etc., dos tecnologías generan mucha confusión porque parecen estar cubriendo las mismas capacidades: Esas son Service Mesh y Soluciones de Gestión de API.

Ha sido un tema controvertido donde se han hecho diferentes declaraciones audaces: Personas que piensan que esas tecnologías trabajan juntas de manera complementaria, otras que creen que están tratando de resolver los mismos problemas de diferentes maneras e incluso personas que piensan que una es solo la evolución de la otra hacia la nueva arquitectura nativa de la nube.

Soluciones de Gestión de API

Las Soluciones de Gestión de API han sido parte de nuestras arquitecturas durante mucho tiempo. Es un componente crucial de cualquier arquitectura hoy en día que se crea siguiendo los principios de la Arquitectura Guiada por API, y son una evolución del Gateway de API preexistente que hemos incluido como una evolución de los proxies puros a finales de los 90 y principios de los 2000.

La Solución de Gestión de API es un componente crítico de su Estrategia de API porque permite a su empresa trabajar en un Enfoque Guiado por API. Y eso es mucho más que el aspecto técnico de ello. Usualmente tratamos de simplificar el Enfoque Guiado por API al lado técnico con el desarrollo basado en API y los microservicios que estamos creando y el espíritu colaborativo en mente que usamos hoy para hacer cualquier pieza de software que se despliega en el entorno de producción.

Pero es mucho más que eso. Las Arquitecturas Guiadas por API se tratan de crear productos a partir de nuestra API, proporcionando todos los artefactos (técnicos y no técnicos) que necesitamos para hacer esa conversión. Una lista rápida de esos artefactos (pero no es una lista exhaustiva) son los siguientes:

  • Soporte de Documentación de API
  • Definición de Planes de Paquetes
  • Capacidades de Suscripción
  • Capacidades de Monetización
  • Descubrimiento de API de Autoservicio
  • Capacidades de Versionado

Tradicionalmente, la solución de Gestión de API también viene con capacidades de Gateway de API integradas para cubrir incluso el aspecto técnico de ello, y que también proporcionan algunas otras capacidades más a nivel técnico:

  • Exposición
  • Enrutamiento
  • Seguridad
  • Limitación

Service Mesh

Service Mesh es más una palabra de moda en estos días y una tecnología que ahora está en tendencia porque ha sido creada para resolver algunos de los desafíos que son inherentes al enfoque de microservicios y contenedores y todo bajo la etiqueta de nativo de la nube.

En este caso, proviene del lado técnico, por lo que es mucho más un enfoque de abajo hacia arriba porque su existencia es para poder resolver un problema técnico e intentar proporcionar una mejor experiencia de usuario a los nuevos desarrolladores y administradores de sistemas en este nuevo mundo mucho más complicado. ¿Y cuáles son los desafíos que se han creado en esta transición? Echemos un vistazo a ellos:

El Registro y Descubrimiento de Servicios es una de las cosas críticas que necesitamos cubrir porque con el paradigma elástico del mundo nativo de la nube hace que los servicios cambien su ubicación de vez en cuando comenzando en nuevas máquinas cuando sea necesario, eliminándolos cuando no hay suficiente carga para requerir su presencia, por lo que es esencial proporcionar una manera de gestionar fácilmente esa nueva realidad que no necesitábamos en el pasado cuando nuestros servicios estaban vinculados a una máquina específica o conjunto de dispositivos.

La seguridad es otro tema importante en cualquier arquitectura que podamos crear hoy, y con el enfoque poliglota que hemos incorporado en nuestras arquitecturas es otra cosa desafiante porque necesitamos proporcionar una manera segura de comunicar nuestros servicios que son compatibles con cualquier tecnología que estemos usando y cualquiera que podamos usar en el futuro. Y no estamos hablando solo de Autenticación pura sino también de Autorización porque en una comunicación de servicio a servicio también necesitamos proporcionar una manera de verificar si el microservicio que está llamando a otro está permitido para hacerlo y hacerlo de una manera ágil para no detener todas las nuevas ventajas que su arquitectura nativa de la nube proporciona debido a su concepción.

Los requisitos de enrutamiento también han cambiado en estas nuevas arquitecturas. Si recuerdas cómo solíamos desplegar en arquitecturas tradicionales, normalmente intentamos encontrar un enfoque de cero tiempo de inactividad (cuando es posible) pero un procedimiento muy estándar. Desplegar una nueva versión, validar su funcionamiento y abrir el tráfico para cualquiera, pero hoy los requisitos exigen paradigmas mucho más complejos. Las tecnologías de Service Mesh soportan estrategias de implementación como Pruebas A/B, Enrutamiento basado en peso, Implementaciones Canary.

¿Rival o Compañero?

Entonces, después de hacer una vista rápida del propósito de estas tecnologías y el problema que intentaron resolver, ¿son rivales o compañeros? ¿Deberíamos elegir una u otra o intentar colocar ambas en nuestra arquitectura?

Como siempre, la respuesta a esas preguntas es la misma: «¡Depende!». Depende de lo que estás tratando de hacer, lo que tu empresa está tratando de lograr, lo que estás construyendo…

  • Se necesita una solución de Gestión de API siempre que estés implementando una Estrategia de API en tu organización. La tecnología de Service Mesh no está tratando de llenar ese vacío. Pueden proporcionar capacidades técnicas para cubrir lo que tradicionalmente ha hecho el componente de Gateway de API, pero este es solo uno de los elementos de la Solución de Gestión de API. Las otras partes que proporcionan las capacidades de gestión y gobernanza no están cubiertas por ningún Service Mesh hoy en día.
  • Se necesita Service Mesh si tienes una arquitectura nativa de la nube basada en la plataforma de contenedores que se basa firmemente en la comunicación HTTP para la comunicación sincrónica. Proporciona tantas capacidades técnicas que harán tu vida mucho más manejable que tan pronto como lo incluyas en tu arquitectura, no podrás vivir sin él.
  • Service Mesh solo va a proporcionar sus capacidades en un enfoque de plataforma de contenedores. Entonces, si tienes un panorama más heterogéneo como muchas empresas tienen hoy en día, (tienes una plataforma de contenedores pero también otras plataformas como aplicaciones SaaS, algunos sistemas aún en las instalaciones y arquitecturas tradicionales que todas ellas están proporcionando capacidades que te gustaría aprovechar como parte de los productos de API), necesitarás incluir una Solución de Gestión de API.

Por lo tanto, estas tecnologías pueden jugar juntas en una arquitectura completa para cubrir diferentes tipos de requisitos, especialmente cuando estamos hablando de arquitecturas heterogéneas complejas con la necesidad de incluir un enfoque Guiado por API.

En próximos artículos, cubriremos cómo podemos integrar ambas tecnologías desde el aspecto técnico y cómo fluye la información entre los diferentes componentes de la arquitectura.

Por qué deberíamos preocuparnos menos por pagar por servicios en línea

Por qué deberíamos preocuparnos menos por pagar por servicios en línea

Cuatro argumentos que cambian tu forma de pensar sobre esos gastos.

Si estás en tus treinta y tantos, probablemente seas como yo, y deberías recordar la vieja época de este mundo donde cada servicio en línea era gratuito. Vivíamos en un mundo donde la piratería era una situación normal. Todo, desde películas hasta música, desde libros hasta software era gratis. Podías encontrar rápidamente un torrent, un enlace de descarga directa, o incluso si eres más viejo, un enlace de Mule. ¿Todavía recuerdas Mule? Jaja, sí, yo también.

Nuestra generación se alejó de una era de «todo gratis sin la mejor calidad» a un enfoque de «pago por servicio». Y esta transición está siendo complicada. Así que, si ese es tu caso o conoces a alguien que usualmente tiene este tipo de pensamiento, intentaré explicar por qué deberías preocuparte menos por el costo de esos servicios.

1. No estamos evaluando esos gastos de la misma manera que lo hacemos con los servicios físicos

Ese es el primer tema, y me gustaría explicarlo un poco más. Imagina la suscripción a Medium, si no me equivoco, son 50€ al año por acceso ilimitado a esos artículos, y conozco a mucha gente que piensa que es caro, que no vale lo que ofrecen.

Las mismas personas pueden gastar 50€ al mes en una suscripción al gimnasio y no piensan que esto sea caro en absoluto. Así que, ahora, probablemente estés pensando algo como esto: ¡Vamos! ¡No eres justo! ¿Cómo te atreves a comparar la suscripción a Medium con una suscripción al gimnasio?

El gimnasio tiene una infraestructura física que necesitan mantener. Tienen personas trabajando allí, en la recepción, servicios de limpieza, entrenadores personales, etc. También tienen costos adicionales debido al uso de la infraestructura como electricidad, agua, impuestos, etc.

¡Sí, eso es cierto! ¿Y qué hay de Medium? ¿No tiene la misma situación? Tienen una infraestructura en la nube que necesitan mantener, servidores, red, almacenamiento, copias de seguridad, etc. También tienen personas trabajando en ello: en el sitio mismo, curadores, pero también desarrolladores, administradores de sistemas, etc., para realizar todas las tareas de mantenimiento para mantener el lugar al mejor nivel posible para que lo uses. Así que, esto no es diferente en absoluto en ambos casos. Pero este no es el único argumento.

2. ¡Los servicios en línea son increíblemente más baratos!

Ahora, en lugar de hablar de Medium, hablemos de una aplicación que podrías pensar que es cara. Hablemos de Netflix, que dependiendo de tu país puede tener una tarifa mensual de unos 15–20€.

Y puedes argumentar, pero no veo ni el 0.1% de su catálogo, ¿por qué debería pagar por todo si no voy a usar todo lo que ofrece?

Pero piensa en cuánto te costaron las entradas de cine la última vez que pudiste salir (Sí, sí, lo sé, este no es el mejor momento para hablar de cines y salir en esta situación, pero aguanta conmigo en esta).

Hagamos las cuentas conmigo: Dos personas yendo al cine, 10 € cada uno por las entradas. Si tienes algo más para beber o comer, podrías rápidamente gastar 35 € solo por una sesión de 2 horas.

Por supuesto, incluso con el mejor sistema de cine en casa, no es comparable en absoluto con lo que puedes sentir en una sesión de cine, pero ese no es el tema. El argumento es que si puedes permitirte una sesión de cine al mes (Sí, solo una al mes) y no sientes que estás desperdiciando tu dinero, puedes permitirte Netflix + Disney + Prime Video al mismo ritmo.

Y esto se aplica a todo. Siempre recomiendo cuando hablo de esto con otras personas comparar con algo físico que hacen sin pensarlo mucho, por ejemplo, un café matutino. Muchos de nosotros tomamos una taza de café para llevar cada día de nuestra vida laboral. Imagina un costo promedio de 1.5€, y cada mes tiene 20 días laborables, eso significa que estás gastando 30 € al mes solo en tu café matutino. Una vez más, la misma cantidad para tres servicios de streaming de video de primera.

La idea principal de este argumento no es que dejes de tomar esa primera taza de café que necesitas para que tu cuerpo funcione y se prepare para el día. Aún así, piensa que si no sientes mucho por ese café matutino, no deberías preocuparte tanto por la tarifa del servicio en línea también.

3. Puedes reevaluar tu decisión en cualquier momento

Además, otro argumento para no preocuparse mucho por esto es porque puedes revisarlo cada vez que quieras. El procedimiento aquí no es el mismo que usas para evaluar la compra de tu nuevo iPad, o si necesitas una laptop o un coche. Que necesitas estar muy seguro de que vas a sacarle el máximo provecho.

En este caso, esta es una tarifa recurrente que puedes cancelar en cualquier momento si crees que no la vas a usar o ves que no es tan útil como pensabas. Así que, no hay problema en probarlo por unos meses, y si no funciona, simplemente cancélalo. Así que, si tienes ese poder y opciones en tus manos, ¿por qué estás tan preocupado por dar ese paso de pagar por primera vez solo para probar?

Lo hacemos todo el tiempo en otros aspectos de la vida. Imagina la siguiente situación en el mercado, cuando ves una nueva marca de algo que vas a comprar. Puede ser yogur fresco, jugo fresco, o incluso una nueva cerveza. ¿Cuántas veces obtienes algo de una nueva marca, solo para probar? ¡Probablemente la respuesta sea TODO EL TIEMPO! Y sí, estás pagando por ello, no es como si fueras al cajero y le dijeras: No, no, déjame solo probar esto por varios meses y probablemente el próximo año pueda ver si vale la pena.

4. Estamos invirtiendo en nosotros mismos

Este argumento puede parecer extraño al principio porque parece más: No, no, no. Estoy invirtiendo en esta empresa, sus desarrolladores, y puedo sentirme feliz por ello, pero esto es una transacción. Sí, eso también es cierto, pero imagina eso. ¿Qué te pasa si todos los servicios que estás usando en línea desaparecen porque ya no es un negocio sustancial para ellos? ¿Va a afectar tu vida? Sí, seguro.

Solo recuerdo la primera aplicación que usé mucho que fue descontinuada y eliminada. Siempre he sido un chico de Linux, y he usado mucho una herramienta de gestión de tareas llamada BasKet como parte del entorno KDE que era similar a lo que hoy es OneNote. Podías juntar muchos tipos de contenido y gestionarlo como quisieras.

Era increíble, pero finalmente decidieron dejar de trabajar en la herramienta, y la herramienta no fue actualizada, y sí, eliminaron la herramienta. Mi vida cambió mucho. Necesitaba encontrar otra herramienta para hacer el mismo trabajo e imagina qué: No había ninguna en ese momento (estaba hablando de 2006 🙂 ). Así que mi vida fue peor porque nadie apoyó su esfuerzo al nivel que necesitaban para seguir haciéndolo. Así que, también deberías pensar eso, ¿cuánto me costará si esta aplicación X desaparece?

Conclusión

Así que, espero que estos argumentos puedan ayudarte a cambiar de opinión o ser útiles en tus conversaciones con otras personas que tienen esta idea de que todo debería ser gratis en el mundo en línea para ser más coherentes con la realidad en la que vivimos ahora. Así que, probemos nuevos servicios en línea, ¡y probablemente descubramos que nuestra vida en línea puede ser mejor!

Estamos haciendo mal el enfoque del trabajo remoto

Estamos haciendo mal el enfoque del trabajo remoto

Sé que todos vivimos en una situación muy complicada que nos ha obligado a trabajar bajo un conjunto diferente de reglas, tratando de ponernos al día para ser productivos y trabajar como solíamos hacerlo, pero en modo de trabajo completamente remoto.

Para algunos de nosotros, esto ha sido bastante fácil porque las personas que trabajan en la industria tecnológica, en cierto nivel, ya trabajan de forma remota. Especialmente las personas, como yo, que trabajan para empresas internacionales con equipos de diferentes ubicaciones, zonas horarias, etc., estábamos acostumbrados a algunas partes del proceso. Las herramientas que usábamos como Slack, Zoom, Microsoft Team o Google Meet no eran algo nuevo para nosotros.

Además, estábamos acostumbrados a gestionar diferentes zonas horarias en nuestras reuniones para poder encontrar un momento adecuado para todos nosotros y poder compartir nuestra experiencia, etc. Así que parecía que íbamos a hacerlo perfectamente. Pero, ese no es el caso, y ha sido bastante para todos.

Solo déjame hacerte una pregunta: ¿Cómo está tu calendario ahora comparado con cómo estaba antes de la pandemia? ¿Cuántas horas tienes dedicadas solo a reuniones internas?

Si buscas un poco, incluso aquí en Medium, podrías encontrar muchos ejemplos sobre esto, también si escuchas el podcast ya estás al tanto de esta situación, cada uno de nosotros sabe sobre esa situación o simplemente la hemos experimentado nosotros mismos.

Parece que estábamos tratando de cambiar de las conversaciones habituales que teníamos en la oficina o con clientes a una conferencia en línea de unos 30 minutos para ponernos al día sobre cualquier otro tema que solíamos manejar en un café rápido en la oficina o simplemente una llamada rápida de 2 minutos.

Aunque la mayoría de nosotros hemos crecido en el mundo de la mensajería instantánea y no quiero hablar de las «nuevas cosas» si podemos llamar a WhatsApp, Telegram o Slack de esa manera, lo estábamos haciendo desde hace mucho tiempo, con AOL, ICQ o IRC.

Nos hemos entrenado en la comunicación asincrónica, pero parece que no aprendimos nada de ella. ¿Cuántas reuniones podrían ser reemplazadas por un hilo de correo electrónico? ¿Cuántas reuniones podrían ser reemplazadas por un canal de Slack?

Estamos acostumbrados a pensar de la otra manera, que la reunión es mucho más efectiva que un hilo de correo, y eso posiblemente sea cierto en algunos casos. Finalmente, tenemos a todos los interesados al mismo tiempo en el mismo lugar hablando sobre el mismo tema, lo que hace que el tiempo dedicado al asunto sea menor.

Pero el problema es cuando el número de conversaciones y temas crece exponencialmente porque también necesitamos trabajar en base a eso. Acabamos de escuchar a un colega mío hace unos días decir algo como esto:

  • Ahora tengo todo el día bloqueado con reuniones
  • Para cada una de estas reuniones, termino con tareas que necesito trabajar.
  • Pero basado en lo lleno que está mi calendario, tengo menos tiempo para trabajar en ellas
  • Cada día tengo más trabajo por hacer y no puedo cumplir con mis plazos

Y este ciclo se repite una y otra vez y empeora la situación cada día, porque es cierto que estamos pasando mucho tiempo en reuniones, pero no solo eso, también las reuniones son bastante más agotadoras, lo que te deja con menos energía para trabajar en esos puntos de acción que recopilaste.

Además, está el horario del calendario, ya que tienes tantas reuniones que no puedes bloquear parte de tu tiempo más productivo para trabajar en esos elementos, y te ves obligado a trabajar en ellos solo en los espacios libres que tienes disponibles entre todas esas reuniones. Eso significa que no estás eligiendo lo que vas a hacer ahora, solo necesitas luchar para poder encontrar algún espacio para poder despejar un poco tu escritorio de esas tareas pendientes.

Entonces, ¿parece que el correo electrónico y la comunicación asincrónica son la respuesta a todo lo que estamos sufriendo ahora? No. Probablemente no, pero al menos la comunicación asincrónica se centra en varios conceptos clave que son importantes tener en cuenta:

Tu tiempo es tan valioso como el de cualquier otro.

Cuando eres el organizador de una reunión y tienes una lista de asistentes, probablemente la importancia del tema a discutir no será la misma para cada uno de ellos. Probablemente para ti como organizador eres el más interesado en organizar esa reunión y obtener algún resultado de ella, pero otros probablemente tengan otras cosas importantes en sus mentes también a esos niveles.

Por lo tanto, la comunicación asincrónica permite a todos manejar sus prioridades y actuar sobre cada elemento según puedan basarse en su lista de prioridades.

La flexibilidad es la clave

No estoy obligado a estar a las 9 PM mi hora para poder reunirme con mis colegas de EE. UU. o mis colegas indios no están obligados a hacerlo al mismo tiempo conmigo. La comunicación asincrónica permite a cualquiera atender los asuntos importantes durante el tiempo en que son más productivos y también poder gestionar su propio horario y tiempo.

Para mí puede ser mejor responder a esas preguntas durante mis horas de la mañana o al revés, prefiero centrarme en algunas tareas al comienzo de mi día y usar la tarde para cubrir esas.

La gestión también es necesaria para las conversaciones asincrónicas

El problema de la comunicación asincrónica, como sabemos, es que las cosas pueden ralentizarse porque, basándonos en los temas anteriores, las preguntas podrían necesitar más tiempo para responderse, pero esto se puede resolver utilizando la gestión de esas conversaciones. Cosas como plazos, recordatorios, conversaciones de seguimiento 1 a 1 podrían ayudar a cerrar los temas. El rol es el mismo que el del organizador de la reunión en la reunión en línea, pero utilizando herramientas asincrónicas.

Malentendidos entre lo escrito y lo hablado

Usualmente decimos que es más fácil no captar el significado completo de la conversación en un mundo asincrónico porque carecemos de muchos recursos que tenemos en nuestra reunión en línea o incluso mejor en nuestras reuniones cara a cara. Y eso es cierto. Incluso, con emojis y demás, no tenemos la misma caja de herramientas que tenemos usando nuestra voz o nuestro cuerpo para hacerlo, pero esto no es algo que no se resuelva también en los otros tipos de comunicación. ¿Cuántas veces pensamos que lo que otra persona estaba diciendo usando su voz tiene un significado diferente comparado con lo que realmente intentó decir? Tratamos de resolver eso con las actas de la reunión y tratando de ponerlo por escrito para poder tener un entendimiento común. Y probablemente esto es algo que evitamos en la comunicación asincrónica porque esto ya está escrito, pero esto no debería evitarse ya que también nos ayuda a poner todo junto nuevamente en la misma página sobre nuestro entendimiento común.

Conclusión

Así que, espero que todos aprendamos de esta situación para tratar de mejorar la forma en que nos comunicamos entre nosotros para ser más productivos y más eficientes y también para mejorar nuestro propósito de gestión del tiempo. Y soy consciente de que probablemente esta no sea la situación para todos nosotros, pero esto es bastante común y es importante tenerlo en cuenta incluso si somos capaces de tener éxito durante este tsunami de reuniones que enfrentamos cada día.

Además, mis expectativas son que probablemente todo lo que aprendamos en esta situación pueda ayudarnos a estar más preparados para la próxima o para nuestro trabajo diario cuando volvamos a la nueva situación normal si esto va a suceder en algún momento.

¿Quieres ser un mejor administrador de sistemas? ¡Aprende a programar!

¿Quieres ser un mejor administrador de sistemas? ¡Aprende a programar!

Estamos viviendo tiempos en los que se escucha hablar de DevOps en todas partes, cómo se deben eliminar las barreras entre estos dos mundos como Desarrollo y Operaciones, pero todos estos discursos se basan en el punto de vista del desarrollador y del negocio, pero nunca desde el punto de vista del Administrador.

Venimos de una época en la que los equipos de operaciones estaban divididos en varios niveles de escalamiento donde cada nivel debía estar menos poblado y más capacitado que el anterior. Así que tenemos un primer nivel con personas con conocimientos básicos que trabajan 24×7 cubriendo cualquier tipo de incidente que pudiera ocurrir. En caso de que ocurra algo, intentan resolverlo con el conocimiento (generalmente más documento que conocimiento…) y en caso de que algo no funcione como se espera, lo derivan a un segundo nivel con más conocimiento sobre la plataforma donde probablemente sean un equipo de guardia para manejar eso y vamos a tener tantos niveles como se desee. ¿Cómo encaja todo esto con DevOps, CI & CD y demás…? Ok, bastante fácil…

El Nivel 1 hoy en día no existe: Las herramientas de monitoreo, CI & CD y demás, hacen innecesario este primer nivel, porque si puedes crear un documento con los pasos a seguir cuando algo sale mal, estás escribiendo código pero dentro de un Documento, así que nadie te detiene para entregar una herramienta automatizada para hacer eso. Entonces, en inglés sencillo, los operadores de primer nivel de ayer ahora son scripts. Pero todavía necesitamos nuestros equipos de operaciones, nuestro servicio 24×7 y demás… seguro, porque de vez en cuando (más a menudo de lo que nos gustaría) sucede algo fuera de lo normal y eso necesita ser gestionado.

Entonces, la automatización nunca va a reemplazar a L2 & L3, así que vas a necesitar personas capacitadas para manejar incidentes, tal vez podrías tener un equipo más pequeño a medida que automatizas más procesos, pero nunca puedes deshacerte de la parte del conocimiento, ese no es el punto. Aquí, podemos discutir si este equipo podría ser el equipo de desarrollo o un equipo mixto de ambos mundos, y eso podría ser correcto. Cualquier enfoque es válido con esto. Así que, hemos implementado todos nuestros nuevos y elegantes procesos de CI & CD, herramientas de monitoreo y las plataformas parecen estar funcionando sin ninguna ayuda y soporte hasta que algo realmente extraño sucede. Entonces, ¿qué hacer con esa gente? Por supuesto, enseñar las habilidades para ser valiosos como L2 & L3, así que tienen que ser mejores operadores / administradores de sistemas / cualquier palabra que más te guste. ¿Y cómo pueden hacer eso?

Como dije antes, estamos pasando de un mundo donde los equipos de Operaciones trabajan basados en procedimientos escritos y tienen su imaginación limitada para mirar más allá de su protocolo aprobado, pero eso ya no es la forma en que L2 & L3 trabaja. Cuando te enfrentas a un incidente, el procedimiento es bastante similar a cazar un error, o si escapamos del mundo de TI, es como resolver un crimen. ¿Cuáles son las similitudes entre resolver un crimen y gestionar una plataforma? Ok, enumerémoslas:

  1. – ¿Qué? — ¿Qué le pasó a mi sistema? Comienzas con las consecuencias del problema, probablemente un rastro de error en el registro, probablemente otro sistema llamándote porque tu sistema no está disponible… Ok, aquí lo tienes, este es tu cadáver.
  2. ¿Cuándo? — Cuando sabes que algo salió mal, comienzas a encontrar la causa raíz, y comienzas a buscar rastros de registros para encontrar el primero que generó el problema, incluso descartas los rastros de registros que son consecuencias del primero, y tratas de encontrar cuándo todo comenzó a fallar. Para hacer eso, necesitas buscar evidencias sobre el fallo y demás… Así que ahora, estás investigando, buscando evidencias, hablando con testigos (sí, tus rastros de registros son los testigos más confiables que vas a encontrar, rara vez mienten. Es como si estuvieran en el estrado frente a un juez)
  3. ….. ¿Y ahora? ¿Cómo & Por qué? — Y ese es el punto difícil, cómo & por qué, son los siguientes pasos como lo haces en una caza de errores, pero la principal diferencia aquí, es cuando el equipo de desarrollo está cazando un error, pueden correlacionar las evidencias que recopilan en el paso dos, con el código fuente que construyeron para saber cómo y por qué todo salió mal… Pero en tu caso, como administrador de sistemas probablemente te enfrentas a un sistema propietario o no tienes acceso al código o cómo enfrentarlo incluso si fuera de código abierto… y probablemente ni siquiera tienes acceso al código fuente del equipo de desarrollo… Entonces, ¿cómo resuelves esto?
  • Ok, probablemente la mayoría de ustedes están pensando algo como: Conocer el producto y tu plataforma. Ser un operador certificado del producto que estás gestionando, conocer todo el manual del producto, y demás… Y eso podría ser útil, porque eso significa que sabes mejor cómo funcionan las cosas a un nivel alto… pero… seamos claros: ¿Alguna vez encontraste en un curso de certificación, o examen o documentación o lo que sea, información de tan bajo nivel que podría ayudarte en el caso específico que estás enfrentando…? En caso de que la respuesta a mi pregunta sea sí, tal vez no estás enfrentando un error difícil, sino un error de configuración principal…
  • Entonces… ¿qué podemos hacer? Como dice el título: Aprende a programar. Pero probablemente estás pensando, ¿cómo puede estar relacionado saber programar con cazar un error cuando no tengo acceso al código ni siquiera para echar un vistazo? Y… ¿aprender a programar en qué lenguaje? ¿en los componentes que se gestionan en mi plataforma? ¿en java? ¿en Go? ¿En node.js? ¿En C++? ¿En x86? ¿Todos ellos? Ok… tienes razón, tal vez la pregunta no es simplemente aprender a programar, pero esa es la idea: Aprende a programar, aprende a diseñar, aprende a arquitectar soluciones… ¿Quieres saber por qué? Ok, veamos. En toda mi carrera he estado trabajando con muchos productos diferentes, diferentes enfoques, diferentes paradigmas, diferentes lenguajes base, todo diferente, pero todos comparten una cosa, que todos los sistemas hoy en día comparten: Están construidos por personas.

Sí, cada pieza de software, cada servidor, cada programa, cada página web, cada todo está construido por una persona, como tú y como yo…

Si piensas que todos los productos y piezas de software están hechos por genios, estás equivocado. ¿Eres consciente de cuántas piezas de software están disponibles? ¿Crees que existen tantos genios en todo el mundo? Por supuesto, son personas capacitadas y algunas de ellas son realmente brillantes, y es por eso que generalmente siguen el sentido común para arquitectar, diseñar y construir sus soluciones.

Y ese es el punto que podemos usar para resolver nuestro caso y resolver nuestro asesinato, porque con las evidencias que tenemos y las ideas de construir soluciones, tenemos que pensar: Ok, ¿cómo habría construido esto si yo fuera el encargado de esta pieza de software? Y vas a ver que tienes razón casi todo el tiempo…

Pero me falta otro punto importante que dejamos sin respuesta antes… ¿Aprender a programar en qué lenguaje? En el que tu plataforma está basada: Si estás gestionando una plataforma basada en OSGi, aprende mucho sobre desarrollo en java y desarrollo y arquitectura OSGI, vas a encontrar que todos los problemas son lo mismo… Una dependencia entre dos módulos OSGI, y una sentencia Import-package que debería estar allí… la otra en la que alguien carga los paquetes o alguna sentencia Export-Package que debería estar allí…

Lo mismo, si estás ejecutando una aplicación de escritorio .NET, aprende mucho sobre desarrollo .NET y serás lo suficientemente capacitado para no necesitar un documento para saber qué hacer, porque sabes cómo debería funcionar esto… y eso te llevará a por qué está sucediendo esto.

Y con todas esas preguntas respondidas, solo queda una cosa. Necesitas poner en marcha un plan para mitigar o resolver el problema, para que el problema nunca vuelva a suceder. Y con todo eso, presentamos nuestra orden de arresto al incidente.

Finalmente estás en la parte del juicio, cuando presentas tus evidencias, tu teoría sobre cómo y por qué sucedió esto (el motivo :P) y deberías poder convencer al jurado (el cliente) más allá de una duda razonable, y finalmente terminas con la sentencia que pediste para el error/fallo/incidente que es el plan de mitigación, y tu plataforma es un mundo mejor con un incidente menos caminando libre.

Lo que describimos aquí es cómo hacer un análisis post-mortem y probablemente para la mayoría de ustedes esto es algo diario que hacen, pero todo el tiempo en los clientes cuando trabajamos en colaboración con el equipo de operaciones, notamos que no siguen este enfoque, por lo que están atascados porque no tienen un documento que nos diga cómo hacer (paso a paso) en estas situaciones extrañas.

Así que, me gustaría terminar con un himno para resumir todo esto: Cuando te enfrentas a un incidente: «Mantén la calma, aplica el sentido común y comienza a leer los rastros de registros!!»