Hace poco estuve en una Meetup en la cuál presenté un tópico que en un principio pensé que iba a ser aburrido, repetido o monótono para los asistentes. Mi cortex frontal me indicaba que busque otro tema… pero mi instinto peleaba. Me dejé ganar por el último, así que presenté una charla que se titula Cloud Native - What is it? Why?. Mi instinto tenía razón. La reacción al tópico fue muy buena. Hubo preguntas después de la charla que fueron muy jugosas, charlas y discusiones que sirvieron para poner un poco más en claro un concepto tan amplio.

Todos hablan de Cloud Native… ¿pero quién lo entiende?

Respondiéndome a mí mismo, Cloud Native es entendido en su totalidad por pocos. Es un concepto relativamente nuevo, muy amplio, que incluye muchísimas definiciones y sectores dentro de IT y las industrias que lo implementan. ¿Lo entiendo yo? Si bien disto mucho de ser un experto como Matt Stine, estoy familiarizado con Cloud Native. Lo suficiente como para explicarlo, implementarlo y evolucionar en sus conceptos.

Pero… ¿qué es?

Cloud Native nace como concepto a la hora de proveer una solución que permita a las empresas poder proveer un servicio confiable, siempre disponible, rápido y que evolucione de acuerdo a las necesidades planteadas por el mercado y las oportunidades brindadas por la tecnología.

Hace un tiempo, se comenzó a hablar de “disrupción”. Hoy en día el término ha sido bastardeado un poco; la verdadera disrupción sucede cuando un David enfrenta a un Goliat y si bien quizá no gane la batalla, le haga cambiar totalmente su estrategia. Casos como estos hay muchos. Algunos de ellos son Netflix, Uber, AirBnB… todos servicios que hicieron disrupción en cada una de las industrias que pertenecen. Ahora, los gigantes están cambiando sus estrategias para adaptarse y evolucionar junto con las nuevas reglas de juego que proponen los nuevos jugadores y que la gente aceptó y favoreció.

Entonces, mi definición de Cloud Native es:

Un conjunto siempre cambiante de metodologías y herramientas que permite al software y a quienes lo utilizan ser adaptables, ágiles, resilientes y cooperativos.

Qué incluye

Entre las diferentes prácticas y herramientas que Cloud Native propone, se encuentran algunas más familiares que otras:

  • Automatización de procesos (automation)
  • Infraestructura como código (infrastructure as code)
  • Plataformas como Servicio (Platform as a Service)
  • Containerización (containerization)
  • Aplicaciones que siguen los 12 factors (12 factor apps)
  • Integración y entrega contínua (continuous integration & delivery)
  • Control de código fuente (source control)
  • Centros de datos múltiples (multi data center)

Implementar cada uno de estos ítems acerca más a una empresa a un estado en donde la evolución sea contínua. Un ejemplo: poder hacer cientos de deploys de una aplicación por día significa que se puede fallar y corregir en cuestión de minutos, lo que permite arriesgar, innovar, salir al mercado con características de un producto que sus competidores luego tendrán que alcanzar. Y también permite que si ese producto llega a la masividad, la empresa tenga sus operaciones listas para poder soportar esa carga.

Cloud Native es quizá la manera en que toda empresa de tecnología (y convengamos que hoy en día, prácticamente todas las empresas son de tecnología) sean competitivas y puedan sobrevivir al largo plazo.

Marc Andreeseen dijo: “El software se está devorando al mundo”. Adoptar e implementar Cloud Native es tener la oportunidad de convertirse en el depredador y no ser la comida.

Share: