What We’re Looking For:
Strong Linux system administration experience (preferably in cloud or large-scale
environments)
Solid scripting skills in Python and Bash/Shell
Understanding of networking fundamentals
Hands-on experience with monitoring and automation tools
Experience supporting mission-critical, highly available environments.
Strong troubleshooting skills
Strong API and networking knowledge
Lo que harás: Administrar, monitorear y optimizar los sistemas de producción que
respaldan las operaciones comerciales globales. Solucione y resuelva problemas técnicos
complejos, a menudo actuando como punto de escalamiento para incidentes de alto
impacto. Lidere y coordine equipos, proveedores y recursos multifuncionales para impulsar
la resolución de problemas críticos de infraestructura. Infraestructura de soporte para
sistemas y dispositivos de bases de datos de Oracle, centrándose en el rendimiento,
¿Qué es una API?
Las API son mecanismos que permiten a dos componentes de software comunicarse entre sí
mediante un conjunto de definiciones y protocolos. Por ejemplo, el sistema de software del
instituto de meteorología contiene datos meteorológicos diarios. La aplicación meteorológica
de su teléfono “habla” con este sistema a través de las API y le muestra las actualizaciones
meteorológicas diarias en su teléfono.
¿Qué significa API?
API significa “interfaz de programación de aplicaciones”. En el contexto de las API, la palabra
aplicación se refiere a cualquier software con una función distinta. La interfaz puede
considerarse como un contrato de servicio entre dos aplicaciones. Este contrato define cómo
se comunican entre sí mediante solicitudes y respuestas. La documentación de su API
contiene información sobre cómo los desarrolladores deben estructurar esas solicitudes y
respuestas.
¿Cómo funcionan las API?
La arquitectura de las API suele explicarse en términos de cliente y servidor. La aplicación que
envía la solicitud se llama cliente, y la que envía la respuesta se llama servidor. En el ejemplo
del tiempo, la base de datos meteorológicos del instituto es el servidor y la aplicación móvil es
el cliente.
Las API pueden funcionar de cuatro maneras diferentes, según el momento y el motivo de su
creación.
API de SOAP
Estas API utilizan el protocolo simple de acceso a objetos. El cliente y el servidor intercambian
mensajes mediante XML. Se trata de una API menos flexible que era más popular en el
pasado.
API de RPC
Estas API se denominan llamadas a procedimientos remotos. El cliente completa una función
(o procedimiento) en el servidor, y el servidor devuelve el resultado al cliente.
API de WebSocket
La API de WebSocket es otro desarrollo moderno de la API web que utiliza objetos JSON para
transmitir datos. La API de WebSocket admite la comunicación bidireccional entre las
aplicaciones cliente y el servidor. El servidor puede enviar mensajes de devolución de llamada
a los clientes conectados, por lo que es más eficiente que la API de REST.
API de REST
Estas son las API más populares y flexibles que se encuentran en la web actualmente. El
cliente envía las solicitudes al servidor como datos. El servidor utiliza esta entrada del cliente
para iniciar funciones internas y devuelve los datos de salida al cliente. Veamos las API de
REST con más detalle a continuación.
¿Qué son las API de REST?
REST significa “transferencia de estado representacional”. REST define un conjunto de
funciones como GET, PUT, DELETE, etc. que los clientes pueden utilizar para acceder a los
datos del servidor. Los clientes y los servidores intercambian datos mediante HTTP.
La principal característica de la API de REST es que no tiene estado. La ausencia de estado
significa que los servidores no guardan los datos del cliente entre las solicitudes. Las
solicitudes de los clientes al servidor son similares a las URL que se escriben en el navegador
para visitar un sitio web. La respuesta del servidor son datos simples, sin la típica
representación gráfica de una página web.
Más información sobre la API de REST
¿Qué es una API web?
Una API web o API de servicios web es una interfaz de procesamiento de aplicaciones entre
un servidor web y un navegador web. Todos los servicios web son API, pero no todas las API
son servicios web. La API de REST es un tipo especial de API web que utiliza el estilo
arquitectónico estándar explicado anteriormente.
Los diferentes términos relacionados con las API, como API de Java o API de servicios,
existen porque históricamente las API se crearon antes que la World Wide Web. Las API web
modernas son API de REST y los términos pueden utilizarse indistintamente.
¿Qué son las integraciones de las API?
Las integraciones de las API son componentes de software que actualizan automáticamente
los datos entre los clientes y los servidores. Algunos ejemplos de integraciones de las API son
la sincronización automática de datos en la nube desde la galería de imágenes de su teléfono
o la sincronización automática de la hora y la fecha en su laptop cuando viaja a otra zona
horaria. Las empresas también pueden utilizarlas para automatizar de manera eficiente
muchas funciones del sistema.
¿Qué beneficios ofrecen las API de REST?
Las API de REST ofrecen cuatro beneficios principales:
1. Integración
Las API se utilizan para integrar nuevas aplicaciones con los sistemas de software existentes.
Esto aumenta la velocidad de desarrollo, ya que no hay que escribir cada funcionalidad desde
cero. Puede utilizar las API para aprovechar el código existente.
2. Innovación
Sectores enteros pueden cambiar con la llegada de una nueva aplicación. Las empresas
deben responder con rapidez y respaldar la rápida implementación de servicios innovadores.
Para ello, pueden hacer cambios en la API sin tener que reescribir todo el código.
3. Ampliación
Las API presentan una oportunidad única para que las empresas satisfagan las necesidades
de sus clientes en diferentes plataformas. Por ejemplo, la API de mapas permite la integración
de información de los mapas en sitios web, Android, iOS, etc. Cualquier empresa puede dar
un acceso similar a sus bases de datos internas mediante el uso de API gratuitas o de pago.
4. Facilidad de mantenimiento
La API actúa como una puerta de enlace entre dos sistemas. Cada sistema está obligado a
hacer cambios internos para que la API no se vea afectada. De este modo, cualquier cambio
futuro que haga una de las partes en el código no afectará a la otra.
¿Cuáles son los diferentes tipos de API?
Las API se clasifican tanto en función de su arquitectura como de su ámbito de uso. Ya
exploramos los principales tipos de arquitecturas de API, ahora veamos el ámbito de uso.
API privadas
Estas son internas de una empresa y solo se utilizan para conectar sistemas y datos dentro de
la empresa.
API públicas
Están abiertas al público y pueden cualquier persona puede utilizarlas. Puede haber o no
alguna autorización y coste asociado a este tipo de API.
API de socios
Solo pueden acceder a ellas los desarrolladores externos autorizados para ayudar a las
asociaciones entre empresas.
API compuestas
Estas combinan dos o más API diferentes para abordar requisitos o comportamientos
complejos del sistema.
¿Qué es un punto de conexión de la API y por qué es
importante?
Los puntos de conexión de las API son los últimos puntos de contacto del sistema de
comunicación de las API. Se trata de las URL de servidores, servicios y otras ubicaciones
digitales específicas desde las que se envía y recibe información entre sistemas. Los puntos
de conexión de las API son fundamentales para las empresas por dos motivos principales:
1. Seguridad
Los puntos de conexión de las API hacen que el sistema sea vulnerable a los ataques. La
supervisión de las API es crucial para evitar su uso indebido.
2. Rendimiento
Los puntos de conexión de las API, especialmente los de alto tráfico, pueden provocar cuellos
de botella y afectar al rendimiento del sistema.
¿Cómo proteger una API de REST?
Todas las API deben protegerse mediante una autenticación y una supervisión adecuadas.
Las dos maneras principales de proteger las API de REST son las siguientes:
1. Tokens de autenticación
Se utilizan para autorizar a los usuarios a hacer la llamada a la API. Los tokens de
autenticación comprueban que los usuarios son quienes dicen ser y que tienen los derechos
de acceso para esa llamada concreta a la API. Por ejemplo, cuando inicia sesión en el
servidor de correo electrónico, el cliente de correo electrónico utiliza tokens de autenticación
para un acceso seguro.
2. Claves de API
Las claves de API verifican el programa o la aplicación que hace la llamada a la API.
Identifican la aplicación y se aseguran de que tiene los derechos de acceso necesarios para
hacer la llamada a la API en cuestión. Las claves de API no son tan seguras como los tokens,
pero permiten supervisar la API para recopilar datos sobre su uso. Es posible que haya notado
una larga cadena de caracteres y números en la URL de su navegador cuando visita
diferentes sitios web. Esta cadena es una clave de la API que el sitio web utiliza para hacer
llamadas internas a la API.
¿Cómo crear una API?
Se requiere diligencia debida y esfuerzo para crear una API con la que otros desarrolladores
quieran trabajar y en la que confíen. Los siguientes son los cinco pasos necesarios para un
diseño de API de alta calidad:
1. Planificación de la API
Las especificaciones de la API, como OpenAPI, proporcionan el esquema para el diseño de su
API. Es mejor pensar en los diferentes casos de uso por adelantado y asegurarse de que la
API cumple con los estándares de desarrollo actuales.
2. Creación de la API
Los diseñadores de API crean prototipos de API mediante código reutilizable. Una vez
probado el prototipo, los desarrolladores pueden personalizarlo a las especificaciones
internas.
3. Prueba de la API
Las pruebas de la API son las mismas que las del software y deben hacerse para evitar
errores y defectos. Las herramientas de pruebas de la API pueden utilizarse para reforzar la
prueba de la API contra los ciberataques.
4. Documentación de la API
Aunque las API son explicativas, la documentación de las mismas sirve de guía para mejorar
su uso. Las API bien documentadas que ofrecen una gama de funciones y casos de uso
tienden a ser más populares en una arquitectura orientada a servicios.
5. Comercialización de la API
Así como Amazon es un mercado en línea para la venta minorista, los mercados de API
existen para que los desarrolladores compren y vendan otras API. Publicar su API puede
permitirle monetizarla.
¿Qué son las pruebas de API?
Las estrategias de pruebas de API son similares a otras metodologías de pruebas de software.
El objetivo principal es validar las respuestas del servidor. Las pruebas de API incluyen lo
siguiente:
Hacer varias solicitudes a los puntos de conexión de la API para probar el rendimiento.
Escribir pruebas de unidades para comprobar la lógica empresarial y la corrección funcional.
Probar la seguridad mediante la simulación de ataques al sistema.
¿Cómo redactar la documentación de la API?
Redactar una documentación completa de la API forma parte del proceso de administración de
la API. La documentación de la API puede generarse automáticamente mediante herramientas
o escribirse manualmente. Entre algunas de las prácticas recomendadas se encuentran las
siguientes:
Escribir las explicaciones en un inglés sencillo y fácil de leer. Los documentos generados por
las herramientas pueden resultar farragosos y requerir su edición.
Utilizar ejemplos de código para explicar la funcionalidad.
Mantener la documentación para que sea precisa y esté actualizada.
Orientar el estilo de escritura a los principiantes
Cubrir todos los problemas que la API puede resolver por los usuarios.
¿Cómo utilizar una API?
Entre los pasos para implementar una nueva API se encuentran:
1. Obtener una clave de API. Esto se hace mediante la creación de una cuenta verificada con el
proveedor de la API.
2. Configurar un cliente de API HTTP. Esta herramienta permite estructurar fácilmente las
solicitudes de la API mediante las claves de la API recibidas.
3. Si no tiene un cliente de API, puede intentar estructurar la solicitud por su cuenta en su
navegador. Para ello, consulte la documentación de la API.
4. Una vez que se acostumbre a la nueva sintaxis de la API, puede comenzar a utilizarla en su
código.
********************************************************************************************************
Una canalización de Integración Continua/Entrega Continua (CI/CD)
Un pipeline de CI/CD es un conjunto de procesos automatizados que
permiten a los equipos de desarrollo integrar cambios de código (integración
continua) y entregarlos a producción de forma rápida y segura
(entrega/implementación continua).
En esta publicación, profundizaremos en los fundamentos de las pipelines
de CI/CD y describiremos sus beneficios. A continuación, analizaremos
cada etapa de la pipeline y qué constituye una buena pipeline, junto con
algunos ejemplos relacionados con Terraform.
¿Qué es un pipeline de CI/CD?
Una canalización de CI/CD es un flujo de trabajo automatizado que ayuda a
los equipos de software a crear, probar y publicar código de forma
consistente y eficiente. La CI (Integración Continua) automatiza la fusión de
código de múltiples colaboradores y la ejecución de pruebas para detectar
problemas de forma temprana. La CD (Entrega o Implementación Continua)
automatiza el envío de código a entornos de ensayo o producción.
En conjunto, una canalización de CI/CD garantiza que el software pueda
publicarse de forma fiable en cualquier momento. Por ejemplo, una
canalización típica podría incluir pasos como la confirmación de código, las
pruebas automatizadas, la creación de compilaciones, el almacenamiento
de artefactos y la implementación en pruebas o producción.
Si bien estos pasos pueden realizarse manualmente, la automatización
reduce los errores y garantiza la repetibilidad. Los pipelines suelen
gestionarse como código, integrándose estrechamente con las prácticas de
DevOps para optimizar la entrega de software desde el desarrollo hasta la
implementación.
Los equipos de entrega de aplicaciones y de operaciones ( DevOps ) suelen
utilizar pipelines de CI/CD . Son la base de la adopción de una metodología
DevOps. Más información: Creación de pipelines de DevOps .
Normalmente, se utiliza un servidor de compilación (o agente de
compilación) para habilitar las ejecuciones de CI/CD. Estos se presentan en
forma de máquinas virtuales autoalojadas en la nube que pueden
configurarse completamente, pero también requieren mantenimiento, o
máquinas virtuales proporcionadas como parte de la plataforma que se
utiliza, que suelen ser menos flexibles a la hora de añadirles software y
complementos.
Los contenedores también permiten entornos de compilación consistentes,
eliminando aún más la necesidad de mantener un servidor de compilación.
Cada paso de la canalización de CI/CD puede ejecutarse en su propio
contenedor, lo que permite que cada paso se ejecute dentro de un
contenedor totalmente personalizado. Esto también permite que las
canalizaciones aprovechen al máximo todas las ventajas que ofrece la
orquestación de contenedores, como la resiliencia y el escalado cuando sea
necesario.
Integración Continua (IC)
La integración continua (CI) abarca las etapas de compilación y prueba del
pipeline. Cada cambio en el código debería desencadenar una compilación
y prueba automatizadas, lo que permite al desarrollador obtener
retroalimentación rápida.
Entrega continua/implementación (CD)
La parte CD de una canalización de CI/CD se refiere a la Entrega e
Implementación (¿alguien conoce CI/CDD?). La CD se lleva a cabo
después de que el código supere con éxito la etapa de prueba de la
canalización. La Entrega Continua se refiere a la publicación automática a
un repositorio después de la etapa de CI. El Despliegue Continuo se refiere
a la implementación automática del artefacto entregado.
Etapas de una canalización de CI/CD
Desde la escritura del código fuente hasta la producción, estas fases
conforman el flujo de trabajo de desarrollo y el ciclo de vida de las
canalizaciones de CI/CD. Las ejecuciones de las canalizaciones suelen
activarse automáticamente al realizar un cambio en el código, pero también
pueden ejecutarse según una programación, manualmente por un usuario o
tras la ejecución de otra canalización.
Las cuatro partes del pipeline de CI/CD son:
Etapa de construcción
Etapa de prueba
Etapa de entrega
Etapa de implementación
1) Construir
La etapa de compilación implica la escritura del código. Esto suele ser
realizado por varias personas de un equipo, y en proyectos más grandes,
por varios equipos. El código se almacena en un sistema de control de
versiones (VCS), y se suele utilizar un flujo de trabajo basado en Git para
controlar la adición de código al repositorio (también conocido como
GitOps). Cuando se utilizan en una canalización, las herramientas para
regular y estandarizar los entornos de desarrollo son especialmente útiles
para eliminar cualquier diferencia entre el código de diferentes autores. Esto
suele adoptar la forma de un contenedor Docker cuando se utiliza software
nativo de la nube.
2) Prueba
A medida que se requiere mayor resiliencia y se introduce una
infraestructura más diversa, probar el código genera mayor confianza en
que funcionará según lo previsto. Las pruebas de código se pueden
automatizar. Por lo general, este proceso manual suele ser repetitivo,
complejo y, a veces, tedioso. Un error que cometen muchos equipos es
omitir la etapa de prueba o infrautilizarla, ya que las ventajas de probar el
código correctamente antes de la entrega y la implementación pueden ser
enormes, contribuyendo a un producto de alta calidad.
Las pruebas se pueden dividir en varios tipos; la combinación de estos con
diferentes herramientas proporcionará la máxima cobertura de código y un
producto de mayor calidad. Cuando se utilizan muchas pruebas diferentes,
estas se pueden paralelizar para reducir el tiempo de ejecución del pipeline.
Pruebas de humo : realice comprobaciones rápidas de cordura en el
código.
Pruebas de integración : Las pruebas de integración tienen como objetivo
probar todo el código o el sistema en su conjunto. Validan que el código
recién introducido no altere el código existente.
Pruebas unitarias : Las pruebas unitarias están diseñadas para probar
una función específica, varias funciones juntas o parte del código. Se
pueden aislar partes más pequeñas de la infraestructura y ejecutar las
pruebas en paralelo para acortar el ciclo de retroalimentación.
Pruebas de cumplimiento : las pruebas de cumplimiento se utilizan para
garantizar que la configuración siga las políticas definidas para el proyecto.
Pruebas de extremo a extremo (E2E) : Las pruebas E2E validan el
funcionamiento conjunto de todo el sistema antes de la implementación en
producción. Constituyen la prueba completa de todo el proceso.
3) Entregar
Una vez probado el código, este se empaqueta como un artefacto y se
envía a un repositorio.
4) Implementar
La etapa de implementación permite orquestar la liberación del artefacto.
Normalmente, los equipos implementan en múltiples entornos, incluyendo
entornos de uso interno, como desarrollo y pruebas, y producción para el
usuario final. Con este modelo, los equipos pueden implementar
automáticamente en un entorno de pruebas cuando se activa una
canalización. Una vez revisado y aprobado el entorno de pruebas, el código
se puede fusionar en la rama principal y luego implementarse
automáticamente en producción.