El cloud computing es una tecnología fundamental en todo empleo del ámbito de IT, y en particular en los puestos de trabajo asociados al tratamiento de los datos.
Dentro de los principales perfiles de data (Data Engineer, Data Analyst y Data Scientist), el Data Engineer sería el más vinculado con esta tecnología. Eso no quita que el Data Analyst y el Data Scientist no sepan lo que es. Es más, probablemente desarrollen todo su trabajo a través de una herramienta en cloud, ya sea de BI, de procesado de datos o de Machine Learning. Son perfiles más de explotación de los servicios en la nube, y no de despliegue y mantenimiento.
Veamos qué es esto del cloud, qué aporta, sus inconvenientes y los principales proveedores.
¿Qué es el Cloud Computing?
El “cloud computing” o computación en la nube se refiere a la entrega de servicios de computación a través de Internet, mediante un modelo de negocio de pago por uso. Las compañías en lugar de utilizar servidores locales o dispositivos de almacenamiento, rentan a las plataformas cloud su red de servidores remotos ubicados en centros de datos en todo el mundo para almacenar y administrar datos y ejecutar aplicaciones.
En el modelo de cloud computing, los usuarios pueden acceder a recursos informáticos, como servidores, almacenamiento y software, a través de Internet. Estos recursos se proporcionan bajo demanda y se pueden escalar fácilmente para satisfacer las necesidades cambiantes de los usuarios. En lugar de tener que invertir en infraestructura de IT costosa y mantenerla localmente, las empresas y los individuos pueden utilizar la infraestructura en la nube como un servicio, pagando solo por lo que utilizan.
Ventajas
El cloud computing ofrece numerosas ventajas para las empresas y los usuarios, algunas de las cuales incluyen:
- Escalabilidad: Los servicios en la nube permiten escalar fácilmente los recursos informáticos según las necesidades cambiantes. Puedes aumentar o disminuir la capacidad de almacenamiento, la potencia de procesamiento y la memoria según sea necesario, sin tener que realizar inversiones costosas en hardware.
- Flexibilidad: La computación en la nube permite acceder a los recursos y servicios desde cualquier lugar y en cualquier momento, siempre que tengas una conexión a Internet. Esto facilita el trabajo remoto, la colaboración en tiempo real y el acceso a los datos y aplicaciones desde múltiples dispositivos.
- Costos reducidos: El cloud computing elimina la necesidad de invertir en infraestructura de IT costosa y de mantenerla localmente. Los servicios en la nube suelen tener un modelo de pago por uso, lo que significa que solo pagas por los recursos y servicios que utilizas. Esto puede resultar en ahorros significativos, especialmente para las pequeñas y medianas empresas.
- Actualizaciones automáticas: Los proveedores de servicios en la nube se encargan de mantener y actualizar la infraestructura y el software subyacentes. Esto significa que los usuarios no tienen que preocuparse por instalar actualizaciones y parches de seguridad, ya que se aplican de forma automática y transparente.
- Mayor capacidad de almacenamiento: La nube ofrece una gran capacidad de almacenamiento, lo que te permite almacenar y respaldar grandes cantidades de datos sin la necesidad de hardware adicional. Además, la mayoría de los proveedores de servicios en la nube ofrecen opciones de almacenamiento redundante y copias de seguridad automáticas, lo que garantiza la seguridad y la disponibilidad de tus datos.
- Mejor colaboración: El cloud computing facilita la colaboración en tiempo real y el intercambio de información entre usuarios, ya que los archivos y las aplicaciones se pueden acceder y compartir fácilmente a través de la nube. Esto mejora la productividad y la eficiencia de los equipos de trabajo.
- Alta disponibilidad y tolerancia a fallos: Los servicios en la nube generalmente se basan en infraestructuras altamente redundantes y centros de datos distribuidos geográficamente. Esto garantiza una alta disponibilidad y una mayor tolerancia a fallos, ya que si un servidor o centro de datos falla, el servicio se puede continuar desde otro lugar sin interrupciones significativas.
Estas son solo algunas de las ventajas del cloud computing, y cada empresa o usuario puede encontrar beneficios adicionales según sus necesidades y casos de uso específicos.
Inconvenientes
Aunque el cloud computing ofrece muchas ventajas, también tiene algunos inconvenientes que debes tener en cuenta:
- Dependencia de la conexión a Internet: Para acceder a los servicios en la nube y utilizar los recursos almacenados, se requiere una conexión a Internet estable. Si experimentas problemas de conectividad o si no tienes acceso a Internet, puedes experimentar interrupciones en el uso de los servicios en la nube.
- Riesgos de seguridad y privacidad: Al almacenar datos y ejecutar aplicaciones en servidores remotos, existe un riesgo potencial de seguridad y privacidad. Aunque los proveedores de servicios en la nube implementan medidas de seguridad, como cifrado de datos y controles de acceso, aún existen preocupaciones sobre la seguridad de los datos en la nube. También es importante considerar las regulaciones y leyes de privacidad en tu jurisdicción.
- Pérdida de control: Al utilizar servicios en la nube, estás confiando en el proveedor para gestionar la infraestructura y los servicios. Esto significa que no tienes un control total sobre el entorno y estás sujeto a las políticas y decisiones del proveedor. Si el proveedor experimenta problemas o cambios en su oferta de servicios, podría afectar la disponibilidad y la calidad del servicio que recibes.
- Costos a largo plazo: Aunque el cloud computing puede ofrecer ahorros a corto plazo en comparación con la inversión en infraestructura local, a largo plazo puede resultar en costos recurrentes. A medida que aumenta la utilización de los servicios en la nube y se requieren mayores recursos, los costos pueden acumularse. Además, si no se monitorea y administra adecuadamente el uso de los recursos en la nube, puede haber sorpresas en la factura mensual.
- Problemas de cumplimiento y jurisdicción: Al utilizar servicios en la nube, es importante considerar las leyes y regulaciones de cumplimiento en tu jurisdicción y en la jurisdicción donde se alojan los servidores del proveedor. Puede haber restricciones sobre dónde se pueden almacenar ciertos tipos de datos, lo que podría afectar la elección del proveedor de servicios en la nube.
Es importante evaluar cuidadosamente los beneficios y los riesgos asociados con el cloud computing antes de tomar decisiones. Dependiendo de tus necesidades específicas y requisitos de seguridad, puede ser necesario adoptar estrategias adicionales, como cifrado de extremo a extremo y copias de seguridad externas, para mitigar los riesgos y garantizar la protección de los datos.
Capex vs Opex
Veamos primero qué significan estos dos conceptos más del ámbito financiero que del tecnológico.
- CAPEX (Capital Expenditure): Se refiere a los gastos de capital, es decir, las inversiones iniciales que una empresa realiza para adquirir activos a largo plazo, como hardware, servidores, equipos de red o licencias de software. Estos gastos se registran como activos en el balance de la empresa y se amortizan a lo largo del tiempo. Antes del cloud computing, las empresas solían invertir en infraestructura propia para construir y mantener sus centros de datos.
- OPEX (Operational Expenditure): Se refiere a los gastos operativos, es decir, los costos recurrentes que una empresa incurre para mantener sus operaciones en funcionamiento, como gastos de electricidad, alquiler de instalaciones, mantenimiento, personal y suscripciones a servicios en la nube. Los gastos OPEX se registran como gastos en el estado de resultados y son deducibles de impuestos.
Una de las ventajas clave de utilizar la nube es la capacidad de cambiar de un modelo CAPEX a un modelo OPEX. Al utilizar servicios en la nube, las empresas pueden evitar grandes inversiones iniciales en infraestructura y pagar solo por los recursos y servicios que realmente utilizan. Esto les brinda mayor flexibilidad y agilidad para adaptarse a las necesidades cambiantes de su negocio. Además, el modelo OPEX permite a las empresas escalar y ajustar sus gastos según la demanda, lo que puede resultar más eficiente y rentable en comparación con el enfoque tradicional de CAPEX.
Tipo de recursos
IaaS, PaaS y SaaS son modelos de servicio en el ámbito del cloud computing que se diferencian según el nivel de abstracción y el tipo de servicios que ofrecen.
- IaaS (Infrastructure as a Service): IaaS se refiere a la infraestructura como servicio. En este modelo, los proveedores de servicios en la nube ofrecen recursos de infraestructura virtualizada, como servidores, almacenamiento y redes, a través de Internet. Los usuarios tienen control sobre el sistema operativo, las aplicaciones y la configuración de red. Básicamente, se proporciona una infraestructura de IT virtual a la que los usuarios pueden acceder y utilizar según sus necesidades, sin tener que preocuparse por adquirir y administrar hardware físico.
- PaaS (Platform as a Service): PaaS se refiere a la plataforma como servicio. En este modelo, los proveedores de servicios en la nube ofrecen una plataforma de desarrollo y ejecución de aplicaciones. Los usuarios pueden desarrollar, probar y ejecutar aplicaciones sin preocuparse por la infraestructura subyacente, como los servidores y la gestión del sistema operativo. La plataforma proporciona un entorno completo para el desarrollo de aplicaciones, incluyendo herramientas de desarrollo, bibliotecas, entornos de ejecución y servicios adicionales, como bases de datos y sistemas de colas. Los usuarios se centran en el desarrollo de sus aplicaciones sin tener que preocuparse por la configuración y el mantenimiento de la infraestructura.
- SaaS (Software as a Service): SaaS se refiere al software como servicio. En este modelo, los proveedores de servicios en la nube ofrecen aplicaciones completas a través de Internet. Los usuarios pueden acceder a estas aplicaciones a través de un navegador web o una interfaz de usuario específica proporcionada por el proveedor. El software y los datos asociados se alojan y se ejecutan en la infraestructura del proveedor, y los usuarios pueden utilizar el software sin tener que instalarlo o mantenerlo localmente. Los ejemplos comunes de SaaS incluyen aplicaciones de productividad empresarial, como suites de oficina en línea, herramientas de gestión de proyectos, CRM (Customer Relationship Management) y servicios de correo electrónico.
En resumen, IaaS proporciona recursos de infraestructura virtualizada, PaaS ofrece una plataforma para el desarrollo de aplicaciones y SaaS ofrece aplicaciones completas a través de Internet. Cada modelo ofrece diferentes niveles de abstracción y responsabilidades compartidas entre el proveedor y el usuario.
Los recursos cloud suelen llevar asociado el “as a service”, por lo que no solo te vas a encontrar los conceptos de IaaS, PaaS y SaaS en la web, sino que también te toparás con otros como DBaaS o CaaS, que significan Data Base as a Service o Container as a Service.
Modelos de cloud
Los principales modelos de implementación en el cloud computing son los siguientes:
- Public Cloud: En un entorno de nube pública, los servicios y recursos de computación son proporcionados por proveedores de servicios en la nube y están disponibles para el público en general a través de Internet. Los proveedores de servicios en la nube son responsables de administrar y mantener la infraestructura subyacente, así como de garantizar la seguridad y la disponibilidad de los servicios. Ejemplos de proveedores de servicios en la nube pública incluyen Amazon Web Services (AWS), Microsoft Azure y Google Cloud Platform.
- Private Cloud: En una nube privada, los servicios y recursos de computación se implementan y se gestionan exclusivamente para una organización específica. La infraestructura puede estar ubicada en las instalaciones de la organización o ser administrada por un proveedor externo. La nube privada ofrece mayor control y seguridad, ya que los recursos se utilizan exclusivamente para la organización y no se comparten con otros usuarios. Esto es especialmente relevante para organizaciones que tienen requisitos estrictos de cumplimiento y seguridad, o que necesitan un mayor control sobre su infraestructura.
- Hybrid Cloud: La nube híbrida es una combinación de una nube pública y una nube privada, donde los servicios y recursos se despliegan en ambas infraestructuras. Permite a las organizaciones aprovechar los beneficios de ambos modelos de implementación. Por ejemplo, una organización puede utilizar una nube pública para cargas de trabajo de menor sensibilidad y para escalar rápidamente, mientras mantiene cargas de trabajo más críticas o sensibles en una nube privada para tener un mayor control y seguridad.
Cada modelo de implementación tiene sus propias características y consideraciones. La elección del modelo de implementación adecuado depende de los requisitos específicos de una organización, incluyendo aspectos de seguridad, cumplimiento, control, escalabilidad y costo.
Nuevos modelos cloud
Además de los modelos de nube pública, privada e híbrida, han surgido otros modelos de implementación de la nube que han ganado popularidad en los últimos años. Algunos de estos modelos emergentes son:
- Community Cloud: La nube comunitaria es un modelo en el que la infraestructura de nube se comparte entre varias organizaciones que comparten intereses comunes, como cumplimiento normativo o requisitos de seguridad similares. La nube comunitaria permite a las organizaciones obtener los beneficios de la nube mientras mantienen el control y la confianza en una comunidad cerrada.
- Nube multicloud: El modelo de nube multicloud implica el uso simultáneo de servicios y recursos en la nube de múltiples proveedores. En lugar de depender de un solo proveedor de servicios en la nube, las organizaciones utilizan varios proveedores para distribuir cargas de trabajo y aprovechar las fortalezas individuales de cada proveedor. Esto puede ayudar a evitar el bloqueo del proveedor y aumentar la flexibilidad y la resiliencia.
- Distributed Cloud: La nube distribuida implica la distribución física de recursos y servicios en la nube en ubicaciones geográficas múltiples, incluyendo centros de datos locales y dispositivos periféricos. Esto permite una mayor proximidad, y latencia reducida para aplicaciones y servicios en la nube, lo que es beneficioso para casos de uso que requieren un alto rendimiento y una baja latencia, como el procesamiento en tiempo real y el Internet de las cosas (IoT).
- Edge Computing: El edge computingse refiere a la distribución de servicios y recursos de computación más cerca de los dispositivos y usuarios finales, en lugar de centralizarlos en centros de datos remotos. Esto permite una mayor capacidad de procesamiento y almacenamiento en la periferia de la red, lo que es beneficioso para aplicaciones y servicios que requieren baja latencia y una mayor capacidad de respuesta.
Estos modelos emergentes están ganando popularidad a medida que las organizaciones buscan soluciones más flexibles y adaptadas a sus necesidades específicas. Cada uno de estos modelos tiene sus propias características y consideraciones, y la elección del modelo de implementación adecuado depende de los requisitos y objetivos específicos de cada organización.
Principales plataformas
Se trata de plataformas de propósito general que incluyen SaaS, PaaS e IaaS, y ocupan la mayor parte del mercado europeo y americano.
AWS, Azure y GCP son las que llevan tiempo siendo líderes de mercado, pero tampoco hay que dejar de lado otras plataformas interesantes con gran cantidad de recursos orientados a data como IBM Cloud, Tencent Cloud o Alibaba Cloud.
Replicación geográfica
Si hablamos de cloud, tenemos que mencionar también los datacenters y la replicación geográfica. Al contratar servicios cloud, ya no tenemos la aplicación alojada en un servidor físicamente dentro de la empresa, y es posible que tus bases de datos y otros componentes estén desplegados en servidores a miles de kilómetros de tu sede central o de donde se encuentren tus clientes.
Cuando despliegas un recurso cloud, realmente lo estás instalando en un servidor propiedad de por ejemplo Google, el cual puede estar situado en Nueva York, compartiendo maquina con otros servicios o teniendo su propio servidor dedicado. A su vez esta maquina formará parte de un conjunto de servidores de alto rendimiento en lo que se conoce como un datacenter.
Las plataformas cloud cuentan con decenas de datacenters distribuidos por todo el mundo, lo que nos permite desplegar piezas software en varios puntos del planeta. ¿Esto que nos aporta?
- Si los servicios que ofrecemos a nuestros clientes son consumidos desde muchas partes del mundo, no podemos contar con un único punto de acceso, pues tendremos usuarios con latencias muy altas y probablemente saturación de peticiones en el servidor. Para reducir estas latencias habrá que desplegar ese mismo recurso en un datacenter cercano a esos usuarios.
- Puede que en la zona geográfica donde ofrecemos servicios no sea muy estable, y por tanto cualquier desastre haría que se caigan todos los servicios desplegados en esa zona. Si replicamos estos servicios en múltiples áreas geográficas minimizamos el riesgo y garantizamos su disponibilidad.
¿Quién trabaja en cloud?
El campo del cloud computing ha dado lugar a una variedad de perfiles profesionales y roles especializados. Algunos de los perfiles comunes que se encuentran en el ámbito del cloud computing incluyen:
- Arquitecto de soluciones en la nube (Cloud Solutions Architect): Estos profesionales son responsables de diseñar e implementar soluciones en la nube para satisfacer las necesidades de una organización. Deben tener un conocimiento profundo de los servicios en la nube, las mejores prácticas de arquitectura y la capacidad de traducir los requisitos comerciales en soluciones técnicas basadas en la nube.
- Administrador de la nube (Cloud Administrator): Los administradores de la nube son responsables de la gestión y el mantenimiento de la infraestructura y los servicios en la nube. Esto incluye tareas como la configuración, el aprovisionamiento, la monitorización, la resolución de problemas y la optimización de los recursos en la nube.
- Ingeniero de DevOps: Los ingenieros de DevOps son responsables de la integración continua, la entrega continua y la implementación automatizada de aplicaciones en la nube. Trabajan en estrecha colaboración con los equipos de desarrollo y operaciones para agilizar el desarrollo y la implementación de software en entornos de nube.
- Ingeniero de redes en la nube (Cloud Network Engineer): Estos profesionales se especializan en diseñar, implementar y mantener la infraestructura de redes en la nube. Esto incluye la configuración de redes virtuales, la seguridad de la red, el equilibrio de carga y la optimización del rendimiento de las aplicaciones en la nube.
- Especialista en seguridad en la nube (Cloud Security Specialist): Los especialistas en seguridad en la nube se centran en garantizar la seguridad de los datos, las aplicaciones y la infraestructura en la nube. Se ocupan de la identificación y mitigación de riesgos, la implementación de controles de seguridad, la monitorización de la seguridad y la respuesta a incidentes.
- Ingeniero de datos en la nube (Cloud Data Engineer): Estos profesionales se centran en el diseño, la implementación y el mantenimiento de arquitecturas de datos en la nube. Trabajan en la integración de datos, el procesamiento de datos a gran escala, la gestión de bases de datos y el análisis de datos en entornos de nube.
- Consultor en la nube (Cloud Consultant): Los consultores en la nube ofrecen asesoramiento y orientación a las organizaciones sobre cómo aprovechar mejor los servicios en la nube para alcanzar sus objetivos empresariales. Ayudan a evaluar las necesidades, a desarrollar estrategias de migración y a implementar soluciones en la nube adecuadas.
Estos son solo algunos de los perfiles profesionales comunes en el campo del cloud computing. Dado que el campo sigue evolucionando, también pueden surgir nuevos roles y especializaciones a medida que las organizaciones adoptan cada vez más la tecnología en la nube.
Servicios de Azure
Vamos a ver un ejemplo ilustrativo de la cantidad de recursos que ofrecen estos proveedores cloud. Aquí tienes la suite de servicios que ofrece Azure, el cloud de Microsoft.
Lo normal es especializarse en algunos campos, como por ejemplo en despliegue de infraestructura, maquinas virtuales y contenedores, o despliegue de aplicaciones, o experto en data e IA en la nube. Aunque en muchas ocasiones tu no eliges donde te quieres especializar, sino que las necesidades de tu equipo guiarán tu camino.
¿Me voy a tener que aprender todo esto de cada proveedor cloud? Lo cierto es que cada plataforma cloud tiene su propia interfaz web y algunos recursos exclusivos, aunque el 80% de los servicios vienen a ser lo mismo pero con otro nombre. Las tecnologías que llevan por debajo son prácticamente las mismas, por lo que si conoces la teoría y te manejas con un proveedor, después te resultará sencillo migrarte a otro.
Recuerda que todo proveedor de servicios cloud habitualmente tiene sus propios certificados, que resultan de gran utilidad para la búsqueda de empleo.
Veremos más en profundidad en otros artículos cada una de las nubes, y algunos de sus recursos más relevantes.
Ejemplos de proyectos
Veamos algunos proyectos de empresas punteras que han sido implementado sus soluciones en las principales plataformas Cloud:
- Netflix en AWS: Netflix es un servicio de streaming de video muy conocido a nivel mundial. Utiliza la infraestructura de AWS para alojar y transmitir su contenido a millones de usuarios en todo el mundo. AWS proporciona una infraestructura escalable y de alta disponibilidad. Además, Netflix utiliza varias herramientas y servicios de AWS, como Amazon S3 para el almacenamiento de contenido y Amazon EC2 para la entrega de contenido en tiempo real.
- Airbus en Azure: Airbus, uno de los principales fabricantes de aviones a nivel mundial, utiliza la plataforma de Azure para varios proyectos relacionados con la aeronáutica. Por ejemplo, utilizan Azure IoT para recopilar y analizar datos en tiempo real de sensores a bordo de los aviones para mejorar la seguridad y la eficiencia. También utilizan Azure Machine Learning para desarrollar modelos predictivos y optimizar la programación de mantenimiento de las aeronaves.
- Spotify en GCP: Spotify, una de las plataformas de streaming de música más populares, utiliza la infraestructura y servicios de GCP. GCP proporciona a Spotify una infraestructura escalable y global para almacenar y entregar su amplia biblioteca de música a millones de usuarios en todo el mundo. Spotify utiliza servicios como Google Cloud Storage para el almacenamiento de archivos de música, Google Kubernetes Engine para orquestar sus contenedores y BigQuery para el análisis de datos y la generación de información valiosa sobre los hábitos de escucha de sus usuarios.
Estos ejemplos demuestran cómo grandes empresas utilizan los servicios en la nube para impulsar sus operaciones y ofrecer servicios a gran escala de manera eficiente y confiable. Cada plataforma en la nube ofrece una amplia gama de servicios y herramientas que se adaptan a diferentes necesidades y casos de uso empresarial.
Pingback: We Learn Data
Pingback: We Learn Data
Pingback: We Learn Data