Carreras de TI

Lo que todo ingeniero debe saber en 2023

En un mundo cada vez más descentralizado y basado en la nube, el 77 % de las empresas utilizan o planean utilizar DevOps. Al mismo tiempo, el 64 % de los líderes en diversas funciones de TI tienen dificultades para encontrar profesionales capacitados en DevOps.

Entonces, mientras continúa la lucha por un grupo limitado de talentos, es hora de que los desarrolladores se pongan a trabajar; deben aprender DevOps desde el principio como parte del desarrollo de aplicaciones. Las empresas y sus usuarios finales pueden tolerar errores o implementaciones deficientes a nivel de aplicación. Si bien los desarrolladores a menudo pueden aprender en el trabajo, con DevOps, eso no funciona: la infraestructura vulnerable y subóptima que respalda un producto o servicio puede dañar seriamente el negocio.

Además, los desarrolladores que busquen dedicarse a DevOps deben ver las herramientas como una combinación en lugar de como elementos individuales. Por ejemplo, suponga que desea crear una aplicación en lenguaje Java en Linux, un sistema operativo de código abierto, e implementarla en Kubernetes para su implementación automatizada. El conjunto de herramientas utilizado aquí es muy diferente al de un desarrollador que busca crear e implementar aplicaciones en una sola caja de Linux.

Estas son solo algunas de las razones por las que DevOps tiene una gran demanda. Pero echemos un vistazo más profundo a cómo los ingenieros pueden mejorar sus habilidades para llenar los vacíos de talento. (Lea también: Los mejores lugares del mundo para trabajar en tecnología.)

8 habilidades de DevOps que todo ingeniero necesita

Los ejecutivos de TI y sus desarrolladores pueden preguntarse en qué se diferencia DevOps de sus trabajos diarios, así que esto es lo que deben tener en cuenta este año y las habilidades que deben fortalecer:

1. Habilidades de infraestructura en la nube

Las operaciones en la nube y DevOps van de la mano; la eficiencia de una depende de la otra. Un enfoque DevOps es esencial para impulsar la producción, pero la nube proporciona la plataforma para probar, implementar y publicar código.

Los desarrolladores que entienden las plataformas en la nube como AWS o Azure mejorarán la capacidad de una organización para entregar aplicaciones y servicios a alta velocidad, configurar firewalls y administrar la infraestructura.

2. Gestión del código fuente

Almacenar los resultados del trabajo y compartirlos con colegas es fundamental para una cultura DevOps. Source Code Management (SCM) es un conjunto de herramientas automatizadas que se utilizan para rastrear las revisiones realizadas en un programa para garantizar que todos los miembros del equipo estén al tanto de los cambios en el código fuente y los archivos relacionados. Los desarrolladores deben tener en sus manos Git lo antes posible, prueben GitHub y GitLab.

3. Organización y gestión de contenedores

los desarrolladores necesitan Comprender los conceptos de virtualización y contenerización para evaluar el riesgo.

La virtualización permite a los desarrolladores ejecutar múltiples sistemas en el hardware de un solo servidor. La contenedorización es más flexible, lo que permite implementar múltiples aplicaciones en cualquier lugar: en servidores locales o máquinas virtuales en la nube, entre otros entornos. Para la orquestación de contenedores de aplicaciones a gran escala, Kubernetes es una solución lista para usar popular, mientras que Docker Swarm es adecuado para aplicaciones pequeñas.

4. Codificación y secuencias de comandos

Python, Ruby y Go son los lenguajes de secuencias de comandos DevOps más populares. Los desarrolladores deben aprender al menos uno de estos para los scripts de automatización. Además, Bash se usa en Linux y Shell se usa en Windows.

En un mundo de nube cada vez más basado en Linux, Bash es esencial. Por ejemplo, los profesionales de DevOps necesitan escribir programas en diferentes idiomas y usar GitHub para administrar el código. Dominar cada idioma significa un mayor control sobre cómo DevOps puede mejorar la eficiencia. (Lea también: 5 lenguajes de programación que construyeron Internet.)

5. CI/CD y automatización

Los conjuntos de habilidades de automatización de DevOps están estrechamente relacionados con las habilidades de codificación.

Por ejemplo, Jenkins es una herramienta de software de automatización de integración continua y entrega continua (CI/CD) de código abierto escrita en Java. Se utiliza para implementar flujos de trabajo de CI/CD (llamados «canalizaciones»), empaquetar aplicaciones, ejecutar análisis de vulnerabilidades y crear imágenes acoplables. Otra razón para repasar los lenguajes de codificación.

6. Observabilidad y Monitoreo

Las aplicaciones no pueden ejecutarse indefinidamente; tendrán problemas. De hecho, son como el pan: se enmohecen muy rápidamente. Los desarrolladores son responsables de monitorear el «molde» (salud, resiliencia y confiabilidad del sistema) e iterar.

Las herramientas de monitoreo como Prometheus y Nagios se pueden configurar para alertar cuando algo sale mal. Para visualizar los datos almacenados en este tipo de herramientas, utiliza Grafana o alguna de sus alternativas. (Lea también: Cómo elegir la herramienta de monitoreo de aplicaciones adecuada.)

7. Conceptos básicos de seguridad de la red

Los desarrolladores deben saber cómo instalar firewalls, servidores proxy, balanceadores de carga y administrar puertos.

8. Planificación, Comunicación y Colaboración

Los desarrolladores que sobresalen deben tener habilidades «blandas», estar organizados y orientados a los negocios, y estar muy comprometidos a romper los silos entre los equipos de desarrollo y operaciones.

En general, los desarrolladores deben comenzar a comunicarse con las partes interesadas del negocio, los pares y otros en términos técnicos y comerciales, mientras ven la tecnología como una herramienta para lograr resultados comerciales.

Por qué DevOps es tan popular

Tradicionalmente, DevOps se ha definido como todo lo que hace que el proceso de desarrollo sea más eficiente. Hace cinco años, muchos directores de tecnología (CTO) pensaron que simplemente tener profesionales de desarrollo y operaciones en la misma sala era suficiente.

Ahora, DevOps ha crecido y se ha vuelto más complejo: el ícono no oficial es un símbolo de infinito, lo que demuestra que es un proceso infinito y continuo. No es como terminar una escultura o un artículo. Las integraciones requieren un mantenimiento continuo y son críticas para una evaluación consistente del ciclo de vida del desarrollo del producto.

DevOps también deja al juicio y nivel de conocimiento de un desarrollador o equipo de TI en particular para implementarlo como mejor les parezca. Proponen sus propias preferencias, políticas y prácticas de instrumentación, lo que invariablemente conduce a inconsistencias, sistemas rotos, enormes deudas técnicas, licencias de software duplicadas y abandono de desarrolladores. (Lea también: Cómo afecta el trabajo remoto a DevOps y las tendencias de desarrollo.)

Este tipo de falla a menudo ocurre cuando los desarrolladores e ingenieros piensan en DevOps solo como una canalización de CI/CD. Si bien esto permite una entrega de código rápida y confiable a través de una variedad de herramientas, olvida por qué nació DevOps.

DevOps es más que un conjunto de herramientas: es un modelo basado en resultados para entregar rápidamente código de alta calidad que impacte en el negocio. Requiere una filosofía cultural estricta, prácticas, codificación/secuencias de comandos y un ciclo de vida completo de desarrollo de software (SDLC) separado del desarrollo de funciones comerciales.

Desafíos DevOps

La loca adopción de DevOps se debe a los obstáculos y desafíos que enfrentan los desarrolladores actualmente, tales como:

mala comunicación

Los equipos de desarrollo y operaciones hablan diferentes idiomas: los desarrolladores quieren generar rápidamente código para que las nuevas funciones pasen a producción, mientras que los equipos de operaciones quieren estabilidad, mantener el proyecto funcionando sin problemas y son más reacios a realizar cambios.

DevOps es un mecanismo para garantizar que esta falta de comunicación se elimine de alguna manera, cerrando la brecha entre la producción de carreras y las aprobaciones lentas con planes de implementación integrados.

Falta de formación en ciberseguridad.

Los desarrolladores a menudo carecen de la formación necesaria para crear sistemas seguros. Los equipos de operaciones tienden a centrarse más en la seguridad y, en algunas organizaciones, hay equipos de seguridad dedicados.

Si un desarrollador pone una aplicación en producción y el equipo de operaciones la aprueba, pero la seguridad no lo hace, el costo de corregir cualquier vulnerabilidad es prohibitivo. Esto amplifica la necesidad de «cambiar a la izquierda».

No es solo el último golpe en el candado de seguridad; la seguridad debe integrarse en cada capa del ecosistema del producto. (Lea también: ¿Qué es DevSecOps?)

Falta de capacitación regulatoria y de cumplimiento

Las aplicaciones no solo deben ser seguras y eficaces, sino que también deben construirse de manera prescrita según lo exijan los reguladores. Las organizaciones que tienen que inyectar HIPAA, HITRUST o SOC2 después del hecho pueden estar dolorosamente asociadas con la necesidad de crear aplicaciones correctamente la primera vez.

Costos de desarrollo manual

Las tareas manuales hacen que el desarrollo sea costoso y propenso a la fricción. Hay mucho trabajo manual, desde el mantenimiento de los servidores hasta las pruebas de aplicaciones y las copias de seguridad.

La idea es que el código en sí esté libre de errores, pero ese no es el caso. Cuando las pruebas (funcionalidad, regresión, carga, estrés, seguridad y rendimiento) se realizan manualmente, se trata simplemente de ingeniería ineficiente.

en conclusión

DevOps no se hace con herramientas de implementación simples; el secreto está en la combinación de tecnologías. Comprender cómo interactúan es fundamental para el éxito del desarrollador y el mantenimiento a largo plazo. Los líderes de TI que necesitan habilidades rápidas de DevOps deben evaluar lo que sus desarrolladores ya saben de la lista anterior y en qué áreas deben enfocarse sus equipos.

Pero al final, DevOps no tiene un libro de jugadas estándar ni una guía de implementación paso a paso para garantizar los resultados. Este es un campo altamente especializado con una gran cantidad de subespecialidades. Por lo tanto, este no es un trabajo de una sola persona y requiere una fuerte coordinación entre diferentes especialistas. Realmente, se trata de aprendizaje y mejora continuos, al igual que CI/CD. (Lea también: Los gerentes de DevOps explican su trabajo.)

LEER
5 herramientas de análisis de datos de Excel que debe conocer en 2023

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba