¿Quieres ser un Cloud Apprentice?

Hemos preparado esta selección de conocimientos básicos en los que formarte para ser un Cloud Apprentice.

Empecemos por saber qué es un Cloud Apprentice

Un perfil técnico que ha trabajado en la nube con servicios e infraestructuras, diferenciando claramente entre un VPS y un proveedor de nube pública. Empezar por EC2 como si fuera un VPS en un proveedor de hosting… no es más que el comienzo, pero puedes seguir por aquí.

Cloud Fundamentals

Los fundamentos necesarios para comprender la nube son una mezcla de redes, infraestructura, desarrollo de software y sistemas distribuidos. La transversalidad de los mismos se refleja tanto en nuestras soluciones como en el coste de las mismas, de forma que hay que dominar estos tópicos fundamentales y ajustar el nivel del problema para dar con el enfoque apropiado.

La base fundamental para iniciarse en el mundo Cloud es conocer los distintos tipos de servicio que ofrece la nube, y comprender que no se trata sólo de un CPD donde alojar tus máquinas. IaaS, PaaS y SaaS son los modelos de servicio, cada uno con sus ventajas y características.

El rango de servicios que ofrece la nube es muy extenso, no sólo permite desplegar tus aplicaciones sino que comprende un gran rango de utilidades. Es básico conocer todas estas posibilidades a la hora de trabajar y diseñar aplicaciones Cloud.

Herramientas de automatización IaC & Configuration Tools

Trabajar en la nube nos permite aprovechar fácilmente la potencia de las soluciones de Infraestructura como Código (IaC) y Gestión de la Configuración. Con estas herramientas podemos gestionar nuestra infraestructura y las configuraciones de la misma manera que hacemos con el código de aplicación. Al trabajar como código podemos mantener todo versionado y distribuido, con lo que es fácil compartir y reutilizar estos componentes así como aplicar y automatizar cambios que afectan a varios recursos a la vez.

Con integración continua o CI nos referimos a un proceso automático de construcción y prueba de versiones de software con el objetivo de detectar errores lo antes posible y evitar que estos lleguen a afectar a usuarios finales.

Para saber más:

El control de versiones es una importante herramienta de desarrollo. Permite integrar fácilmente el trabajo de múltiples personas sobre la misma aplicación, a la vez que mantener distintas versiones del código, backups e integrarlo con herramientas de integración contínua. Saber trabajar correctamente con éstas herramientas es una habilidad básica para cualquier desarrollador.

Para saber más:

La calidad del código que desarrollamos es un factor importante. No sólo es deseable que cumpla su función adecuadamente, sino que además lo haga de forma eficiente y que sea mantenible y entendible por otros desarrolladores. Es fundamental conocer estos conceptos, junto con las metodologías y herramientas que nos ayudan a revisarlo.

Para saber más:

Relational Databases

Las bases de datos con modelo relacional son uno de los sistemas de persistencia de datos más antiguos y ampliamente utilizados en el desarrollo de software, esta importancia tiene su reflejo en el mundo cloud y por ello es relevante conocer aspectos como el modelado de datos y la administración de las mismas, así como las diferencias entre los motores más conocidos.

Automate Everything

La automatización nos ayuda a agilizar el tiempo y evitar errores humanos. Cuanto menos cosas manuales hacemos más cosas podemos lograr, las máquinas trabajan mejor con trabajos manuales y nosotros mejor con trabajos creativos.

En la filosofía DevOps, la automatización es uno de los principios más importantes, encapsula todo desde la construcción del código, implementación y monitorización.

Certificaciones recomendadas

Practitioner Level