26 de mayo - Software Development Engineer
Oportunidades de trabajo en la nube
Las carreras en la nube pueden ser divertidas y
gratificante y las compañías optan cada vez más por la nube para implementar
sus aplicaciones y analizar datos.
Desarrollo de software: Introducción
Es un proceso por el que se crea software
individual o independiente, usando un lenguaje de programación específico.
Implica escribir una serie de códigos de programación interrelacionados, que
proporciona la funcionalidad del software desarrollado. Existen temas
relacionados con el desarrollo, como:
- Arquitectura
- DevOps
- Lenguajes de programación
- Lenguajes de scripting
- Aplicaciones móviles
- Desarrollo web
Desarrollo de software: DevOps
Es la combinación de filosofías culturales,
prácticas y herramientas que aumenta la capacidad de una organización para
entregar aplicaciones y servicios a alta velocidad: productos en evolución y
cambio a un ritmo más rápido que las organizaciones que utilizan procesos de
gestión de infraestructura y de desarrollo de software tradicional.
AWS proporciona un conjunto de servicios
flexibles diseñados para permitir que las empresas construyan y entreguen
productos de manera más rápida y confiable utilizando prácticas de AWS y
DevOps. Estos servicios simplifican el aprovisionamiento y la gestión de la
infraestructura, implementando el código de la aplicación.
Integración continua
Es una práctica de desarrollo de software mediante
la cual los desarrolladores combinan los cambios en el código en un repositorio
central de forma periódica, tras lo cual se ejecutan versiones y pruebas
automáticas. La integración continua se refiere en su mayoría a la fase de
creación o integración del proceso de publicación de software y conlleva un
componente de automatización
¿Por qué es necesaria la integración continua?
Anteriormente, era común que los
desarrolladores de un equipo trabajasen aislados durante un largo periodo de
tiempo y solo intentasen combinar los cambios en la versión maestra una vez que
habían completado el trabajo. Como consecuencia, la combinación de los cambios
en el código resultaba difícil.
¿En qué consiste la integración continua?
Con la integración continua, los
desarrolladores envían los cambios de forma periódica a un repositorio
compartido con un sistema de control de versiones como Git. Antes de cada
envío, los desarrolladores pueden elegir ejecutar pruebas de unidad local en el
código como medida de verificación adicional antes de la integración.
Entrega continua
Es una práctica de desarrollo de software
mediante la cual se preparan automáticamente los cambios en el código y se
entregan a la fase de producción. Fundamental para el desarrollo de
aplicaciones modernas, la entrega continua amplia la integración continua al
implementar todos los cambios en el código en un entorno de pruebas o de
producción después de la fase de compilación.
Permite a los desarrolladores automatizar las
pruebas más allá de las pruebas de unidades, por lo que pueden verificar
actualizaciones en las aplicaciones en varias dimensiones antes de enviarlas a
los clientes. Las pruebas pueden incluir pruebas de la UI, de carga, de
integración, de fiabilidad de la API, etc.
Diferencia entre entrega e implementación continua.
La diferencia de aprobación manual para
actualizar la producción. Con la implementación continua, la producción tiene
lugar de manera automática, sin aprobación explícita.
- Beneficios de la entrega continua.
- Automatice el proceso de publicación de software.
- Mejor la productividad de desarrollo.
- Encuentre y arregle los errores con mayor rapidez.
- Entregue las actualizaciones con mayor rapidez.
Desarrollo de software: DevOps azul/verde
Una implementación azul/verde es una
estrategia de gestión de cambios para la liberación de código de
software. Las implementaciones azules/verde, que también se denominan
implementaciones A/B, requieren dos entornos de hardware idénticos que se
configuran exactamente de la misma manera.
Se usan para las aplicaciones ante los
consumidores y las aplicaciones con requisitos de disponibilidad crítica. Se
emite un código nuevo al entorno inactivo, donde se prueba exhaustivamente. Una
vez que se examina el código, el equipo activa el entorno inactivo, normalmente
al ajustar la configuración del router para redirigir el tráfico de programa de
aplicación.
Desarrollo de software: Infraestructura como código
Mientras la infraestructura y los quipos
crecen, es más difícil rastrear los cambios de recursos de TI, al igual que
hacer cumplir los estándares para los recursos de infraestructura. En AWS se puede
estandarizar con facilidad las configuraciones de infraestructura para los servicios
de TI usados comúnmente. Una vez que estos recursos se suministran, puede
rastrear cómo estos recursos están conectados y monitorizar los cambios de
configuración y la desviación.
Los recursos de infraestructura de AWS son:
Aprovisionamiento – AWS CloudFormation: Es un
servicio que proporciona un lenguaje común para describir y suministrar todos
los recursos de infraestructura del entorno de la nube.
Administración de operaciones – AWS Systems Manager:
Para visualizar y monitorizar rápido todos los recursos y automatizar las
tareas operativas comunes, como gestión de parches.
Monitorización y registro – Amazon CloudWatch: Es
un servicio de monitorización de los recursos de la nube de AWS y las aplicaciones
que ejecuta en AWS. Se puede usar para recopilar y monitorizar archivos de
registro, establecer alarmas y reaccionar automáticamente a los cambios en los recursos
de AWS.
Servicios Gestionados para administrar la
configuración – AWS OpsWorks: Es un servicio de gestión de configuración
totalmente administrado que aloja y escala servidores. Elimina la necesidad de
instalar y operar sus propios sistemas de gestión de la configuración.
Comentarios
Publicar un comentario