Linux

¿Realmente necesita microservicios?

data center
Imagen: Mark Agnor/Shutterstock

¿Será este otro artículo que promociona los amplios beneficios de los contenedores y los microservicios de todo tipo? Una palabra: no. De hecho, voy a responder esta pregunta al revés, mostrándole por qué probablemente no necesite implementar microservicios.

Escúchame, antes de poner los ojos en blanco y tirarme a un lado.

Pasé la mayor parte de cuatro años explorando Docker, Kubernetes y otras herramientas para implementar y administrar microservicios. Si bien nunca he afirmado ser un candidato para asumir las tareas comerciales corporativas, conozco mi camino hacia la tecnología. Mi conclusión hasta ahora es bastante simple: los microservicios no son para todos.

Incluso iría tan lejos como para decir que en las manos del administrador o de la compañía equivocada, los microservicios pueden hacer más daño que bien. Dejame explicar.

Mirar: Los 5 principales lenguajes de programación que los administradores de datos deben conocer (PDF gratuito) (República tecnológica)

Los desafíos inherentes de los microservicios

Si es una gran empresa, es muy probable que haya invertido mucho en su equipo de desarrollo. Estos equipos también pueden consistir en algunos de los mejores talentos del país o del mundo. También puede tener los recursos para invertir en equipos diseñados específicamente para microservicios.

Si eres tú, entonces felicidades. Los desafíos inherentes a los microservicios no lo detendrán. Tienes el presupuesto y los desarrolladores para hacerlo realidad.

Si no eres tú, toma nota. Si pensaba que esos desarrolladores internos podrían migrar a Kubernetes en un abrir y cerrar de ojos, se encontraría con una revelación.

Mientras que los microservicios son una bendición cuando se hacen bien, porque pueden:

Sin embargo, los microservicios no son fáciles de hacer bien. Estas implementaciones son un problema grave a menos que las ejecute con un nivel inusualmente alto de precisión y habilidad.

  • colapsarán

  • Los pods no se comunican entre sí

  • Serán mucho más caros de lo que cabría esperar.

  • perderás datos

  • Frustrarás a los clientes.

  • Sus desarrolladores sufrirán agotamiento (después de pasar incontables horas implementando)

  • Sus administradores dedicarán demasiado tiempo a mantener estos servicios en funcionamiento (y menos tiempo a mantener trabajando a los usuarios finales)

  • Su red estará lista para ser pirateada

¿Suena esto como una lista de problemas con los que está lidiando?

La verdad del asunto es que hacer bien los microservicios es muy desafiante. Internet parece decir lo contrario. Inicie una búsqueda en Google y podrá leer un flujo constante de historias de éxito de microservicios: empresas que han ahorrado miles de dólares e incluso han adoptado la automatización para facilitar las cosas.

Lo que estas historias no le cuentan es las innumerables horas que dedican sus desarrolladores y administradores para llegar a este punto, y el dinero que tienen que gastar para llegar allí.

Mientras tanto, su pequeña empresa puede implementar con éxito un único servicio a una fracción del costo y el tiempo, con el mismo éxito.

¿Escalará tan rápida, fácil y automáticamente como los microservicios? No. ¿Se curará solo como un microservicio? posible. Pero debe preguntarse, ¿qué tan ancho y qué tan alto necesita expandirse su empresa actualmente?

Por supuesto, quieres crecer. Para seguir siendo competitiva, toda empresa debe crecer. Aquí es donde la goma de la verdad se encuentra con el camino de la realidad. ¿Cuánto crecimiento espera ver en los próximos meses o años? Si cree que el crecimiento puede ser de naturaleza exponencial, puede ser hora de que comience a planificar la adición de microservicios a su paleta de TI. Cuando haces eso, tienes que calcular el costo y las personas para que esto suceda porque te costará. O eso, o tendrá que separar a algunos desarrolladores e informarles que están formando un nuevo equipo en preparación para agregar implementaciones de contenedores.

Necesitan el mayor tiempo posible.

Como dije antes, Kubernetes es difícil. Claro, puede implementar un clúster de Kubernetes en aproximadamente 10 minutos, pero la curva de aprendizaje después de la agrupación es inusualmente alta. Peor aún, para aprovechar al máximo los microservicios, deberá adoptar un flujo de trabajo DevOps en el que los desarrolladores y administradores trabajen juntos para implementar la tecnología.

El costo inherente de los microservicios

Todos quieren decirle cuánto ahorraron al usar microservicios. Que tiene sentido. Implementó un clúster de Kubernetes en AWS que se escala y repara automáticamente, lo que finalmente le brinda el tiempo de actividad que siempre soñó.

La cuestión es que, a menos que sus desarrolladores acierten en cada i y crucen cada t, terminará pagando más de lo que piensa. La falta de una i o una t puede hacer que un pod consuma recursos más rápido de lo que dices «¡resultado final!».

Considere esto: su desarrollador ha creado un pod para implementar en un clúster de Kubernetes en AWS. Los pods deben poder manejar un tráfico pesado, por lo que se aseguran de configurar algo como esto:

resources:
requests:
memory: 500M
cpu: 5
limits:
memory: 1000M
cpu: 10

El fragmento de código anterior solicitará 500 MB de memoria y 5 núcleos de CPU y está limitado a 1000 MB de memoria y 10 núcleos de CPU. Es una locura para cualquiera que implemente pods en Kubernetes, pero sucede. Los administradores descubren que su pod se niega a seguir ejecutándose, por lo que aumentan los recursos para asegurarse de que no se bloquee. Cuando eso suceda (y sucede), le costará. Recuerda que servicios como AWS son de pago por uso. ¿Qué sucedería si, de repente, tuviera varios contenedores en su módulo que estuvieran agotando los recursos de su cuenta mientras seguía cobrando por su cuenta?

Puede que te burles de ello, pero sucede. Lo he escuchado tantas veces de tantas empresas que creo que es un mito o una excepción.

Si no tiene un desarrollador con un conocimiento profundo de la configuración e implementación adecuada de microservicios, podría terminar pagando mucho más que implementar una aplicación monolítica a través de una máquina virtual.

En cambio, si tiene un equipo dedicado y experto en implementación de microservicios, puede ahorrar dinero y disfrutar de escalabilidad, agilidad y tiempo de actividad como nunca antes había experimentado. La clave es la formación, el conocimiento y la exigencia.

Si realmente necesita el nivel de escala que brindan los microservicios, y tiene un equipo de DevOps bien capacitado y con conocimientos que puede hacerlo con éxito, entonces hágalo.

Por otro lado, si no necesita ese nivel de escala, o no está seguro de si sus desarrolladores y administradores pueden lograrlo, debe pensarlo dos veces antes de sumergirse en el mundo de los microservicios. Pero si está seguro de que se avecina un cierto nivel de crecimiento (que solo pueden acomodar los contenedores y los microservicios), entonces es hora de que vaya a la sala de conferencias y comience a planificar un futuro lleno de Kubernetes, contenedores y servicios web.

Cuando se enfrente a la pregunta «¿Realmente necesita microservicios?», sepa que solo usted puede saber la respuesta con honestidad. Pero al responder, debe ser verdaderamente honesto consigo mismo, con su empresa y con el personal de TI que lo mantiene en funcionamiento.

Suscríbase a Cómo hacer que la tecnología funcione de Tecnopedia en YouTube Obtenga los últimos consejos técnicos para profesionales de negocios de Jack Wallen.

LEER  Peach OSI: una versión de XFCE en la que puedes sumergirte directamente

Deja una respuesta

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

Botón volver arriba