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

Entradas populares de este blog

29 de Julio - Red continuación