¿Cuál se usa más para DevOps: Ruby o Python?

Me he centrado en la infraestructura durante la mayor parte de mi carrera, y las habilidades técnicas específicas requeridas han cambiado con el tiempo. En este artículo, expondré cinco de los principales lenguajes de programación para DevOps, y los recursos que me han sido más útiles a medida que he agregado esas habilidades de desarrollo a mi conjunto de herramientas de infraestructura.

Saber cómo agrupar y apilar servidores no es una habilidad muy solicitada en esta etapa. La mayoría de las empresas no están construyendo centros de datos físicos. Más bien, estamos diseñando y creando capacidades de servicio que se alojan en entornos de nube pública. La infraestructura se configura, implementa y administra a través del código. Este es el corazón del movimiento DevOps: cuando una organización puede definir su infraestructura en líneas de código, es posible automatizar la mayoría (si no todas) las tareas en el centro de datos.

Programación y desarrollo.

  • Nuevo contenido de Python
  • Nuestros últimos artículos de JavaScript
  • Publicaciones recientes de Perl
  • Blog de desarrolladores de Red Hat

Los niveles avanzados de automatización permiten prácticas de integración continua / entrega continua (CI / CD) que no eran posibles en el pasado. Los flujos de trabajo de CI / CD hacen que la entrega de la aplicación sea sin fricciones: un desarrollador puede enviar su código a un repositorio de origen, y la infraestructura se implementa automáticamente para admitir procesos de prueba que pueden llevar una aplicación hasta la producción sin intervención humana. El trabajo de un tecnólogo que se arrastra debajo de las baldosas de un piso elevado para enchufar nuevos cables de red ya no está en la ruta crítica para la implementación de aplicaciones de producción.

Los equipos de infraestructura ahora están cambiando sus capacidades de estanterías y servidores de apilamiento para admitir estas canalizaciones de CI / CD, lo que significa aprender código. Archivos de plantillas creados en YAML, scripts de implementación de infraestructura en Python y aplicaciones en JavaScript implementadas a través de canalizaciones definidas en Groovy. El código de la aplicación se está acercando a la infraestructura. Ahora los desarrolladores de aplicaciones pueden crear rutinas en sus aplicaciones para escalar y manejar failovers a través de API de infraestructura. Es por eso que he comenzado a invertir una cantidad de tiempo no trivial en aprender a codificar.

Decidí centrarme en aprender los lenguajes de desarrollo involucrados en DevOps, y me decidí por cinco que son más relevantes: Python, Ruby, JavaScript, Go y C. En este punto, de ninguna manera soy un desarrollador a tiempo completo, y yo ‘ Ni siquiera estoy seguro de poder llamarme aficionado. Pero gracias a los recursos que presento en este artículo, he ido más allá del punto de conocimiento básico.

Pitón

Python se ha convertido en un lenguaje de uso múltiple en infraestructura. Se ha utilizado para construir proyectos de infraestructura en la nube como OpenStack, e incluso admite aplicaciones web a través de marcos como Django. Python es un lenguaje accesible con una amplia gama de usos.

Codecademy: comencé a aprender Python en Codecademy. El programa Codecademy Python ofrece una gran introducción.

Entrenamiento de Safari Books Online: A partir de ahí, pasé al excelente curso de Introducción a Python de Jessica McKellar en Safari Books Online. El servicio Safari es costoso, pero a menudo hay ventas de membresías que pueden darte hasta un 50% de descuento. SafariBooks también tiene videos de la conferencia O’Reilly, que incluyen charlas y laboratorios. Las charlas brindan la oportunidad de encontrar nichos interesantes en cada idioma.

Videos de conferencias en línea: busque en línea y encontrará charlas interesantes en varias conferencias de desarrolladores sobre cómo usar los idiomas de maneras que de otra manera no hubiera considerado. Los videos de la conferencia PyCon, por ejemplo, están disponibles en YouTube.

Rubí

Ruby se utiliza en varios proyectos de infraestructura. ManageIQ, por ejemplo, es una aplicación de Ruby on Rails. En mi trabajo en Red Hat, a menudo bromeo con los clientes que con ManageIQ (y CloudForms), los usuarios están a solo 10 líneas de código Ruby para hacer cualquier cosa.

Codecademy: Al igual que con Python, aprendí mi conocimiento de Ruby principalmente de Codecademy.

Documentación: El otro recurso que me ayudó a entender a Ruby en términos más prácticos (es decir, para mi trabajo) es el libro de Peter McCowan Mastering CloudForms Automation (disponible como PDF gratuito). Trabajar con máquinas de estado de construcción de CloudForms y flujos de trabajo de automatización avanzada me ayudó a comprender mi comprensión de las construcciones dentro de Ruby.

Obtenga más videos gratis – Suscríbase ➜ https://goo.gl/5ZqDML‌

DevOps está aplicando prácticas Lean a todo el flujo de valor de TI. Aunque no lo es todo, la automatización de edificios y las soluciones de despliegue con un solo clic lo acercan a las 10 infames implementaciones por día (creo que AWS tiene más de 32000 implementaciones por día)

Para lograr esto, es posible que deba usar una herramienta de administración de configuración:

  • ansible (construido en python, yaml usado para escribir configuraciones)
  • chef o títere (builton ruby ​​y usa un DSL ruby ​​para configuraciones)
  • docker (construido sobre la marcha, mucho más que la administración de la configuración, también su plataforma de virtualización)
  • Para cosas difíciles, es posible que aún tenga que codificar bibliotecas en el lenguaje del CM y conocer el lenguaje de scripting de su sistema operativo como bash / powershell

Es probable que también tenga que manejar la orquestación, si está usando AWS, probablemente sea una buena idea conocer la CLI de AWS que usa boto escrito en python. Para tareas más complejas, uso python / boto directamente.

Es difícil responder el porcentaje estadísticamente correcto. Incluso vi a muchos desarrolladores de Python usar herramientas de implementación de Ruby para sus proyectos de Python.

Hace unos años, creo que las herramientas y marcos de automatización de implementación / devops de Ruby eran más populares, pero con la disponibilidad de herramientas basadas en Python como Fabric, Ansible y Salt y una comunidad Python mucho más grande, Ruby generalmente prefiere las herramientas Python gradualmente, ya que no tienen lidiar con otro lenguaje de scripting como ruby ​​cuando podrían hacer las mismas tareas en python o con herramientas basadas en python.

Mi experiencia personal es ansible y la sal es más fácil que el cheff y el títere.

fabric and cappuccino hará el mismo trabajo por usted, pero cappuccino tiene mejores características y un uso más amplio.

En realidad, si elige las herramientas python / ruby, ambas pueden hacer el mismo trabajo por usted con algún cambio de sintaxis y flujo de trabajo o implementación de diseño.

Puedes usar herramientas de Python con Ruby Devops y viceversa.

Esta es una pregunta interesante! En la industria del software: todo está mezclado. Ninguna herramienta sale de una programación o tecnología.

Todo está mezclado: la separación puede ocurrir a un nivel muy alto. es decir, puede estar desarrollando .Net Tech o Java tech o Scripting. Esos son una especie de silos en el nivel superior.

Aquí: Python, Ruby, Perl, Shell Scripting, estos tipos pertenecen al mismo silo en el extremo superior.

Puede estar desarrollando algo en Python para DevOps, pero en algún momento puede estar integrando, agregando un componente de script de shell. Al menos puede verse obligado a llamar al comando del sistema 😉

Entonces, nada está aislado, por lo que es difícil decir que Python se usa más que Ruby. O Ruby se usa más que Python.

Ok: los problemas en DevOps (o en cualquier área) se resuelven utilizando un lenguaje de programación o herramientas basadas en Context. De acuerdo con el requisito!

Disfruta, estoy seguro de que te he confundido más. Así que aprende ambos y usa lo que creas que es bueno para ti, solo adelante y úsalo

Lo primero que quieres entender es que devops no es una tecnología o una designación. Es una filosofia. Por lo tanto, no existe un lenguaje de programación particular que se ajuste a los devops. Es una práctica utilizar las herramientas adecuadas y los lenguajes de secuencias de comandos para automatizar todo, desde el desarrollo hasta la producción. Que incluye herramientas en los siguientes dominios.
1. gestión de la configuración (chef, marioneta, etc.)
2. Monitoreo (Nueva reliquia, Nagios, sensu, etc.)
3. Integración continua, implementación y entrega (Jenkins, Go, Nolio, etc.)

Comprender sobre devops de este artículo. ¿Qué es Devops? que significa realmente?

DevOps realmente no tiene nada que ver con el lenguaje. Es un marco para toda la cadena de entrega. ¿Te refieres especialmente a los procesos? Como la orquestación, entrega continua. Estos son procesos comúnmente utilizados como sinónimos de “DevOps” pero no son DevOps.

Completamente anecdóticamente, los chicos de DevOps que conozco tienden a usar Python más que ruby ​​para cosas que no tienen que vincularse con una base de código Ruby existente. Pero cualquier buena persona DevOps debería poder usar cualquier idioma que necesite para la tarea específica.

Sí. Quiero decir, ambos probablemente se usan por igual. Y es posible que desee tomar la 1 tarde de trabajo requerida para aprender Go también.

El idioma que elija un equipo de DevOps depende más de los tipos de software y aplicaciones que necesitan admitir. Pero en realidad, Ruby y Python son bastante similares y Go es simplemente fácil de aprender. Elija uno para aprender primero arbitrariamente y luego aprender el otro vendrá rápidamente.

Mi amigo es ingeniero de DevOps y es un gran fanático del lenguaje de programación Python, así que supongo que Python es el más utilizado.
Finalmente, ruby ​​se usa principalmente con Rails en el desarrollo de aplicaciones web, otra razón, muchas de las herramientas prácticas de Linux están codificadas en Python

Python se usa ampliamente, pero Ruby todavía está en el mercado, ambos tienen características únicas.

Rubí. Más herramientas, más bibliotecas y la superpotencia de todos los idiomas: bloques. Es más fácil para los administradores de sistemas entender y más fácil para los desarrolladores trabajar.

Ruby: es fácil y también tengo muchas bibliotecas … En verdad, hice algunos prototipos con Ruby y creo que se usa más en DevOps

Pero por supuesto todo depende