El trabajo del equipo de Developer Operations consiste en facilitar la integración entre los equipos de desarrollo e infraestructura. Nuestro objetivo es mejorar todas las tareas que deben realizar ambos equipos juntos: desplegar actualizaciones, mantener nuestros servicios en línea y con alta velocidad, automatizar todos estos procesos, entre otras.
Existen diferentes herramientas que nos ayudan a cumplir esta misión. Y podemos agruparlas en 2 grandes grupos: IaaS y PaaS. Las herramientas de cada grupo tienen un mayor o menor grado de flexibilidad. Y es nuestra responsabilidad decidir cuál de ellas se adapta mejor a nuestro proyecto.
Infraestructura como Servicio
Cuando construimos aplicaciones web no solo debemos encargarnos de construir su frontend y backend, también debemos desplegarla a un servidor y conectarla a un nombre de dominio que, por supuesto, debemos comprar.
Hace mucho tiempo, debíamos comprar nuestros propios servidores para realizar este proceso y que cualquier persona en internet pudiera acceder a nuestra aplicación. Esto significa que, además de construir nuestros proyectos, también debíamos encargarnos del mantenimiento de Hardware.
Esto cambió un poco cuando algunas empresas se dieron cuenta de que no usaban sus servidores todo el tiempo, así que decidieron arrendarlos. De esta forma, nuestros equipos solo deben elegir las especificaciones del servidor y pagar por el tiempo que lo vayan a usar, nada de preocuparse por el mantenimiento del hardware.
Uno de los servicios para arrendar servidores es Microsoft Azure. Incluso han desarrollado inteligencia artificial que identifica cuando un disco está a punto de dañarse. De esta forma pueden prevenir la caída de sus servidores y nuestras aplicaciones.
Esto es lo que llamamos Infraestructura como Servicio. Y estos servicios han evolucionado muchísimo. Aunque algunos no nos permiten tanta flexibilidad. Aún debemos elegir cuál de todos los proveedores se adapta mejor a nuestros requerimientos.
Hosting Compartido vs. Hosting Dedicado
El Hosting Compartido no es más que un servidor que debes compartir con otros usuarios. Esto significa que pagas menos, ya que repartes el costo con otras personas. Pero también significa que no puedes escalar correctamente.
Si la aplicación de tus vecinos de servidor tiene muchísimo tráfico, la tuya también se pondrá lenta. Lo mismo al revés. Si tu servidor no aguanta el tráfico de los domingos vas a necesitar comprar más servidores. El problema es que debes pagar todo el mes del segundo servidor, aunque realmente solo lo uses los domingos.
Afortunadamente, algunos servicios como Azure y AWS nos permiten alquilar un servidor solo para nosotros, lo que también significa cada quien paga todos los gastos de su servidor.
Podemos elegir las especificaciones de las máquinas y configurar alertas de picos de tráfico para aumentar las capacidades del servidor. También podemos usar Balanceadores de Carga para dividir el tráfico de nuestras aplicaciones por diferentes servidores.
Plataformas como Servicio
Las Plataformas como Servicio son la evolución de la Infraestructura como Servicio.
Además de todos los beneficios de IaaS, ahora tampoco nos encargamos de la infraestructura y todo lo que esto implica: administración de usuarios, procesos, permisos, actualizaciones del sistema operativo, cantidad de máquinas y balanceadores de carga, firewalls, etc.
Solo construimos nuestras aplicaciones, se la damos a nuestros proveedores y ellos se encargan de que funcione. Tal vez nos pregunte si “le damos permiso” de agrandar la infraestructura si tenemos picos de tráfico, así que la idea es decir que sí. ?
Es debido a estos servicios que pareciera que nuestras aplicaciones son solo Frontend y Backend, ya que servicios como GitHub Pages, Zeit Now o Heroku nos permiten desplegar nuestras aplicaciones sin encargarnos de nada más que nuestro código.
Esto significa que no tenemos control de muchos aspectos en nuestros servidores. Aunque estos servicios pueden permitirnos elegir algunas características, la verdad es que no controlamos el hardware ni los procesos del sistema operativo.
No significa que nuestras aplicaciones no pueden escalar, sino que son nuestros proveedores los que se encargarán de que la infraestructura y procesos sean suficientes para el tráfico de nuestra aplicación.
Fuente: Platzi