¿Cuál es la diferencia entre un ingeniero DevOps y un desarrollador back-end? Si es así, ¿cuáles son sus roles y qué debería haber estudiado?

En términos generales, tratamos de comparar manzanas y naranjas. Tanto un ingeniero de DevOps como un desarrollador de back-end pueden hacer las mismas tareas, especialmente en un proyecto pequeño. Un ingeniero de DevOps puede escribir cierto código o una parte de la lógica de la aplicación, y el ingeniero de back-end puede usar alguna herramienta de CI para configurar la integración continua de su código. Sin embargo, dividir las tareas es mucho mejor en este caso.

El ingeniero DevOps está realizando principalmente tareas de administración de infraestructura como:

  • Diseñar la infraestructura futura (a menudo en asociación con desarrolladores);
  • Aprovisionar esta infraestructura y mantenerla;
  • Integración continua / configuración de entrega continua;
  • Copia de seguridad y restauración;
  • Monitoreo, registro, alertas, seguridad;
  • Migración de infraestructura a la nube o entre proveedores de servicios en la nube;
  • Construyendo infraestructura multi-nube y reemplazando sus componentes.

El desarrollador de back-end generalmente se dedica a tales tareas:

  • Escribe el código de fondo para aplicaciones, aplicaciones web o aplicaciones móviles (el código responsable de las actualizaciones de la base de datos, la lógica de procesamiento de eventos, varios desencadenantes de acción, etc.);
  • Ayuda a diseñar la infraestructura especificando los requisitos del código que debe cumplir;
  • Configura la parte CI del desarrollo de software para acelerar la entrega del producto.

Con respecto al conocimiento necesario para ambos roles, los ingenieros de DevOps deben tener un control firme de las formas en que la infraestructura de la nube está diseñada, construida y mantenida. También deben tener experiencia práctica con varias herramientas DevOps necesarias para realizar sus tareas ( Kubernetes , Docker , Jenkins , Terraform , GitHub y Travis CI, entre otras). Un título en Ciencias de la Computación puede ser útil, aunque los DevOps autodidactas también pueden encontrar un puesto y continuar su capacitación mientras realizan el trabajo.

Los desarrolladores de back-end deben tener una sólida comprensión de las bases de datos relacionales y de valor clave como MongoDB , Cassandra , NoSQL, Redis , etc. Un título de CS también puede ser bastante útil para ellos, aunque la capacitación principal generalmente viene con experiencia de campo a medida que avanzan desde juniors hasta medios y seniors. Convertirse en desarrolladores completos es también la forma natural de evolución para ellos.

El equipo profesional de ingenieros de DevOps está aquí, en IT Svit -> https://itsvit.com/our-services/…

Oh chico, hay una gran diferencia. Para eliminar las palabras de moda, los ingenieros de DevOps son básicamente desarrolladores con una gran comprensión del proceso de desarrollo y la administración de sistemas, así como tecnologías como virtualización, gestión de configuración, gestión de identidad y seguridad, medidas y prácticas de confiabilidad como Agile y CI / CD. Un ingeniero de back-end es básicamente cualquier persona que no trabaje en el front-end (JavaScript, UI / UX) y generalmente trabaja con servicios, datos y, por lo general, cualquier cosa que necesite programación pero que no esté relacionada con la infraestructura o el diseño visual. Ambos podrían estudiar CS o ingeniería de software sin mucho énfasis en nada específico.

DevOps (“operaciones de desarrollo”) es bastante ambiguo y significa muchas cosas diferentes para diferentes personas. En general, describe una forma de pensar sobre el desarrollo y la implementación de sistemas de software como un gran proceso de extremo a extremo regido por código. Dado que las arquitecturas modernas crean máquinas virtuales y redes definidas por software en la nube utilizando código, las habilidades para el desarrollo y las operaciones se están fusionando cada vez más. Los ingenieros de DevOps tienden a desempeñar un papel de “experto en todos los oficios” que cubre la gestión del proceso de compilación / control de calidad / lanzamiento hasta el diseño y la implementación de la arquitectura de tiempo de ejecución.

Los desarrolladores de back-end tienden a centrarse en escribir el código de la aplicación. “Back-end” en este caso está en contraste con “front-end”, donde el front-end de la aplicación es la interfaz de usuario (ya sea una aplicación de cliente pesado, una aplicación móvil o una aplicación que se ejecuta en un navegador web). Los desarrolladores de back-end trabajan en la lógica empresarial que realiza el trabajo real, actualiza las bases de datos, activa correos electrónicos y trabajos programados, etc.

Para cualquier función, es deseable un título en informática o un estudio independiente equivalente. La ingeniería de DevOps generalmente requerirá una comprensión más avanzada de la administración del sistema, las redes y el host de servicios de ejecución (monitoreo, copias de seguridad, servicios de inicio, etc.) que deben configurarse para admitir una aplicación en producción. Todos estos caen libremente bajo el título de “operaciones” típicamente. Los desarrolladores de back-end necesitan una base sólida en estructuras de datos y algoritmos, probablemente bases de datos relacionales y / o almacenes de valores clave (ver: nosql, mongodb, cassandra, couchdb, etc.), y arquitectura cliente-servidor o arquitectura web.

En general, los desarrolladores de backend escriben el código que se ejecuta en el servidor para manejar las interacciones de los usuarios. DevOps es responsable de los sistemas que llevan el código a los servidores y lo ejecutan.

More Interesting

¿La lista de los principales lenguajes de programación se reducirá o crecerá en el futuro?

¿Cuáles son los beneficios de usar GitHub?

¿Qué lenguaje de programación debo aprender ahora si estoy comenzando mi carrera como desarrollador de software? ¿Cuál tendrá buenas oportunidades en el futuro?

¿Cuáles son algunas excelentes herramientas de software para proveedores de alojamiento web?

¿Cuáles son las principales diferencias en los desafíos asociados con un rol de gerente de producto en una empresa B2C versus una empresa SaaS B2B, empresarial?

¿Cuáles son los roles desempeñados por un probador?

¿Qué pasos debo seguir antes de aprender React.js?

¿Qué es un buen modelo de datos para una cartera de acciones?

¿Por qué el costo de mantenimiento de un software a menudo excede su costo de desarrollo?

¿Necesitamos otra plataforma de desarrollo aparte de .Net y Java?

¿Cuáles son todas las tareas de un probador manual?

¿Cómo llamas a un proyecto de software que haces para mejorar tu conocimiento en programación?

¿Cómo puede un chico de 32 años de habla inglesa (que dejó su doctorado y no es ciudadano de la UE) encontrar un trabajo en software en la UE?

Desde la perspectiva de un desarrollador web, ¿cuáles son algunas de las mejores técnicas de desarrollo que podemos aprender de Quora?

¿Cuál es el uso principal del lenguaje de programación Go? ¿Alguna compañía lo usa para construir su software? Si es así, ¿cuáles son algunos ejemplos?