Está en la página 1de 44

Guía de herramientas

para comenzar a trabajar


con DevOPs
Guía de herramientas
para comenzar a trabajar
con DevOPs
01 Introducción

02 ¿Qué es DevOps?

03 Beneficios de implementar
DevOps

04 Herramientas para trabajar


Control de versiones
Automatización de base de datos
Entrega continua
Pruebas
Configuración
Desarrollo
Contenedores
Lanzamiento
Nube
AIOps
Analítica
Monitoreo
Seguridad
Colaboración
01
Introducción
Devops es una tecnología de la que muchas
personas están hablando. Permite mejorar
la velocidad en el despliegue en ambiente
de producción y crea una cultura de
colaboración entre todos los
participantes de cada proyecto.

Hace unos años, las empresas de tecnología solían demorarse


meses o inclusos años en salir a producción lo que hacía que
se perdieran oportunidades en el mercado, afectaba la
medición del ROI y la toma de decisiones se tardaba más al
no tener un análisis rápido sobre el despliegue
de un producto.

Sin embargo, la implementación de las metodologías ágiles,


ha implicado que dichos lanzamientos se realicen en horas,
días o semanas y que se creen nuevas estrategias y
herramientas para que haya agilidad en la entrega de
valor para los clientes.
Uno de esos conceptos es DevOps que busca entregar productos
finales completamente funcionales y de alta calidad, de forma
más rápida y rentable. Este término fue introducido por primera
vez en la conferencia Agile 2008 en Toronto, en la charla sobre
“Infraestructura Ágil” de Yhens Wasna y Patrick Debois.

A partir de entonces DevOps se popularizó en el mundo de la


tecnología y logró unir a los desarrolladores y operadores que
antes trabajaban de manera independiente. Además, DevOps
ha logrado ser aplicado en otrasindustrias como sectores
financieros, retail, educación, telecomunicaciones
y energético.

En este eBook quisimos hacer una recopilación sobre el concepto


y una descripción de las principales herramientas que se
trabajancon DevOps.
02
¿Qué es DevOps?
DevOps es un conjunto de prácticas y conceptos
que propone un cambio cultural en las
organizaciones,promoviendo la comunicación
e integración entre equipos de desarrollo
y operaciones.

Tiene como objetivo mejorar los tiempos de entrega de nuevas


versiones de software de manera ágil asegurando el mayor
tiempo en línea y calidad del software, basándose en la
automatización de tareas, las pruebas de calidad y una
adecuada administración de la infraestructura.

Además, DevOps nos permite 3 cambios ágiles:

1. Automatización de Tareas
Durante el ciclo de vida del desarrollo de un producto hay tareas que
pueden ser ejecutadas de manera automática, por ejemplo,
el despliegue en los ambientes de QA y producción o la fase de
pruebas de los desarrollos realizados. Si estas pruebas fallan, el
despliegue se detiene, o por el contrario se procede
a desplegar. De esta manera se logran optimizar los
tiempos de automatización.
2. Entrega Continua
La entrega continua se refiere a que una iteración de entrega de una
nueva funcionalidad se cumpla de forma segura en un corto periodo de
tiempo. Para este proceso dicha entrega se apoya en el concepto
de Pipeline que permite llevar un control de cada paso o etapa que debe
ser completada para que una funcionalidad o bug sea
pasado a producción.

3. Configuración de Infraestructura
La adopción de infraestructura en la nube o a través de código, adquirir,
configurar y potencializar máquinas deja de ser un cuello de botella
para el desarrollo de un producto.
03
Beneficios de implementar
DevOps

•Incremento de la velocidad de •Mejorar la confiabilidad del


entregas y despliegues en un producto entregado.
ambiente de producción.

•Disminución de errores en el •Mejorar la comunicación de


ciclo de desarrollo a través de la las diferentes áreas que están
automatización. involucradas en la construcción y
entrega del producto.

•Mejorar el control del ciclo de •Escalabilidad de las aplicaciones


desarrollo de un producto. y recursos.
Guía de herramientas para comenzar a trabajar con DevOPs
9

•Diseño adecuado •Pragma presente •Producción de •Despliegue a


y construcción de desde su concepción. versiones que reflejan los ambientes de
manera ágil. cambios de forma producción.
incremental.

•Compilación óptima •Monitorear, analizar y •Asegurar el


verificando diseño, medir el rendimiento de la funcionamiento
dependencias y aplicación y los recursos adecuado de la
versiones. permanentemente. aplicación después
del despliegue.
04
Herramientas para
trabajar con DevOps
En la actualidad se cuenta con muchas
herramientas que facilitan implementar una
o más fases del ciclo de desarrollo completo
con DevOps a continuación detallamos
cada una de ellas:

4.1 Control de 4.4 Pruebas


versiones
4.2 Automatización
de base de datos 4.5 Configuración

4.3 Entrega 4.6 Desarrollo


continua
4.7 Contenedores 4.11 Analítica

4.8 Lanzamiento 4.12 Monitoreo

4.9 Nube 4.13 Seguridad

4.10 AIOps 4.14 Colaboración


Guía de herramientas para comenzar a trabajar con DevOPs
12

4.1 Control de
versiones
Guía de herramientas para comenzar a trabajar con DevOPs
13

•GitLab: Es un administrador de repositorio •JFrog Artifactory: es el primer y único


de Git que permite hacer seguimiento de Administrador de repositorio de artefactos
problemas. GitLab es similar a GitHub, universal en el mercado. Admite registros
pero GitLab tiene una versión de código de Docker de alta disponibilidad seguros y
abierto. agrupados.

•GitHub: es un servicio de alojamiento de •Sonatype Nexus Repository: Permite


repositorio de Git que ofrece todas las organizar, almacenar y distribuir
funciones de control de revisión distribuido componentes de software.
y gestión de código fuente (SCM) de
Git. GitHub proporciona una interfaz •Bitbucket: es un servicio de alojamiento
gráfica en web y de escritorio, así como la web para proyectos que utilizan los
integración móvil. sistemas de control de revisión Mercurial
(desde su lanzamiento) o Git.
•Apache Subversion: es un sistema de
control de versiones y control de revisiones •Perforce: gestiona de forma segura
de software. Se usa para mantener todo el contenido digital, incluso archivos
versiones actuales e históricas de archivos grandes, en un único repositorio, y entrega
como código fuente, páginas web y archivos rápidamente a equipos grandes y
documentación. distribuidos.

•Apache Subversion: es un sistema de


control de versiones y control de revisiones
de software. Se usa para mantener
versiones actuales e históricas de archivos
como código fuente, páginas web y
documentación.
Guía de herramientas para comenzar a trabajar con DevOPs
14

4.2 Automatización
de base de datos
Guía de herramientas para comenzar a trabajar con DevOPs
15

•Datical: Mejora y simplifica radicalmente •Redgate: sirve para el desarrollo e


el proceso de lanzamiento de la aplicación implementación de SQL Server.
modernizando y automatizando el
proceso de lanzamiento de la base de
•Flyway: es una herramienta de migración
datos.
de base de datos de código abierto.

•DBmaestro: permite el desarrollo ágil y


la integración y entrega continua para la
base de datos.

•Delphix: sirve para simplificar la


creación, prueba y actualización de
aplicaciones basadas en bases de
datos relacionales.
Guía de herramientas para comenzar a trabajar con DevOPs
16

4.3 Entrega
continua
Guía de herramientas para comenzar a trabajar con DevOPs
17

•Jenkins: es una herramienta de •Codeship: es una solución de


integración continua de código abierto implementación continua que se enfoca
escrita en Java. Proporciona servicios en ser una solución integral para ejecutar
de integración continua para el pruebas e implementar aplicaciones.
desarrollo de software.
•Visual Studio: Permite probar e
•Bamboo: es un servidor de integración
implementar código para la producción a
continua. Admite compilaciones en
gran velocidad.
cualquier lenguaje de programación
utilizando cualquier herramienta de •TeamCity: es un servidor de integración
compilación. continua y gestión de compilación basado
en Java de JetBrains.
•Travis CI: es un servicio de integración
continúa distribuido y alojado de código
•AWS CodeBuild: es un servicio de
abierto que se utiliza para construir y
compilación totalmente administrado que
probar proyectos alojados en GitHub.
compila el código fuente, ejecuta pruebas
y produce paquetes de software.
•CircleCI: es la plataforma compartida de
integración continua y entrega continua
(CI / CD) más grande del mundo. CircleCI
tiene acceso exclusivo a datos sobre cómo
funcionan los equipos de ingeniería y
cómo se ejecuta su código.
Guía de herramientas para comenzar a trabajar con DevOPs
18

4.4 Pruebas
Guía de herramientas para comenzar a trabajar con DevOPs
19

•FitNesse: es un servidor web, un wiki y •JUnit: es un marco de prueba de unidad


una herramienta de prueba automatizada para el lenguaje de programación Java.
para software. Está diseñado para admitir
pruebas de aceptación en lugar de •JMeter: es un proyecto de Apache que se
pruebas unitarias. puede utilizar como una herramienta de
prueba de carga para analizar y medir el
•Selenium: es un marco de prueba de rendimiento de una variedad de servicios,
software portátil para aplicaciones web. con un enfoque en aplicaciones web.
Selenium proporciona una herramienta
de grabación / reproducción para crear
•TestNG: es un marco de prueba para
pruebas sin aprender un lenguaje de
el lenguaje de programación Java.
secuencias de comandos de prueba.
Su objetivo es cubrir una gama más
amplia de categorías de prueba: unidad,
•Gatling: está diseñado para usarse como funcional, de extremo a extremo,
una herramienta de prueba de carga integración, etc., con funcionalidades más
para analizar y medir el rendimiento de potentes y fáciles de usar.
una variedad de servicios, con un enfoque
en aplicaciones web. •Mocha: es un marco de prueba de
JavaScript que se ejecuta en node.js,
•Cucumber: ejecuta pruebas de con soporte de navegador, pruebas
aceptación automatizadas escritas en
asincrónicas, informes de cobertura de
un estilo de desarrollo basado
prueba y uso de cualquier
en el comportamiento.
biblioteca de aserciones.
Guía de herramientas para comenzar a trabajar con DevOPs
20

•Karma: Una herramienta simple que le •SOAP: proporciona las capacidades de


permite ejecutar código JavaScript en prueba funcional más completas y fáciles
múltiples navegadores reales. de aprender de la industria.

•Jasmine: es un marco de prueba •Sauce Labs: ofrece la plataforma de


pruebas automatizadas basada en
de código abierto basado en el
la nube más grande del mundopara
comportamiento para JavaScript.
aplicaciones web y móviles.
•Tricentis Tosca: es una plataforma de •Perfecto: es una plataforma basada
prueba continua que acelera las pruebas
en la nube para integrar dispositivos
para mantener el ritmo de Agile y DevOps.
móviles reales y navegadores web en
actividades de prueba a través de una
•Locust: es una herramienta de prueba de
tubería DevOps.
carga de código abierto que le permite
definir el comportamiento del usuario con •Micro Focus Unified Functional Testing:
el código Python y enjambrar su sistema automatiza las pruebas funcionales y de
con millones de usuarios simultáneos. regresión para aplicaciones y entornos.
Guía de herramientas para comenzar a trabajar con DevOPs
22

4.5 Configuración
Guía de herramientas para comenzar a trabajar con DevOPs
23

•Chef: es una herramienta de •Rudder: es una utilidad de gestión de


administración de configuración configuración y auditoría de código
utilizada para optimizar la tarea de abierto para ayudar a automatizar la
configurar y mantener los servidores configuración del sistema en grandes
de una empresa, y puede integrarse infraestructuras de TI.
con plataformas basadas en la nube.
•Packer: es un software gratuito y de
•Ansible: es una plataforma de software código abierto para crear imágenes de
de código abierto para configurar y máquinas o contenedores idénticos para
administrar computadoras. Combina la múltiples plataformas desde una única
implementación de software de múltiples configuración de origen.
nodos, la ejecución de tareas ad hoc y la
gestión de la configuración.
•CFEngine: es un sistema de gestión
de configuración de código abierto.
•Puppet: es una utilidad de gestión de
Su función principal es proporcionar
configuración de código abierto. Incluye su
configuración y mantenimiento
propio lenguaje declarativo para describir
automatizados de sistemas
la configuración del sistema.
informáticos a gran escala.

•Salt Platform o SaltStack: es una


aplicación de ejecución remota y gestión
de configuración de código abierto
basada en Python. Admite el enfoque de
“infraestructura como código” para la
implementación y la gestión de la nube.
Guía de herramientas para comenzar a trabajar con DevOPs
24

4.6 Desarrollo
Guía de herramientas para comenzar a trabajar con DevOPs
25

•Terraform: es una herramientapara •IBM UrbanCode Deploy: es una


construir, combinar y lanzar herramienta para automatizar el
infraestructura de manera segura y despliegue de aplicaciones a través de
eficiente. sus entornos. Está diseñado para facilitar
la retroalimentación rápida y la entrega
•XL Deploy: es una herramienta de continua.
automatización que permite a los
usuarios implementar, revertir y •GoCD: es una herramienta de código
diagnosticar problemas sin escribir o abierto que se utiliza en el desarrollo de
mantener secuencias de comandos o software para ayudar a los equipos y
flujos de trabajo. organizaciones a automatizar la entrega
continua (CD) de software.
•Octopus Deploy: es un servidor
automatizado diseñado para
simplificar la implementación de
•ElectricFlow: es una plataforma para
automatizar las implementaciones para
aplicaciones ASP. NET, servicios de
acelerar el tiempo de comercialización,
Windows y bases de datos.
reducir los costos de entrega y aumentar
la calidad, la confiabilidad y la
•AWS CodeDeploy: es un servicio que
trazabilidad.
automatiza las implementaciones de
código en cualquier instancia.
•CA Automic Release Automation: brinda
•ElasticBox: es una plataforma a las empresas la agilidad, velocidad y
que permite definir, implementar y confiabilidad necesarias para mantenerse
administrar la automatización de competitivos en la era digital.
aplicaciones independientes de
cualquier infraestructura o nube.
Guía de herramientas para comenzar a trabajar con DevOPs
26

4.7 Contenedores
Guía de herramientas para comenzar a trabajar con DevOPs
27

•Docker: es un proyecto de código abierto •Kubernetes Engine: es un entorno


que automatiza la implementación de administrado y listo para la producción
aplicaciones dentro de contenedores de para implementar aplicaciones en
software. contenedores.

•Kubernetes: es un sistema de código •Azure Kubernetes (AKS): simplifica la


abierto para administrar aplicaciones en implementación de un clúster Kubernetes
contenedores en múltiples hosts. administrado en Azure. AKS reduce la
complejidad y la sobrecarga operativa de
•Apache Mesos: es un administrador de administrar Kubernetes al descargar gran
clúster de código abierto, que permite parte de esa responsabilidad en Azure.
compartir recursos de forma precisa.
•Codefresh: es una plataforma de
entrega y colaboración continua para
•Rancher: es una plataforma completa Docker. Codefresh ayuda a los equipos
de código abierto para implementar y ágiles a mejorar la calidad y aumentar
administrar contenedores en producción. la velocidad de comercialización al
facilitar la retroalimentación rápida y los
•Docker Enterprise Edition (EE) 2.0: ciclos de prueba.
permite a las organizaciones acelerar las
iniciativas digitales y de múltiples nubes
•Helm: ayuda a administrar instalar y
al automatizar la entrega de aplicaciones
actualizar las aplicaciones de Kubernetes.
heredadas y modernas utilizando un
modelo operativo ágil con
seguridad integrada.
Guía de herramientas para comenzar a trabajar con DevOPs
28

4.8 Lanzamiento
Guía de herramientas para comenzar a trabajar con DevOPs
29

•XL Release: es una herramienta •OpenMake: simplifica el empaquetado


de administración de versiones de componentes, las actualizaciones de
específicamente para CD. Permite a la base de datos, las versiones de salto,
los equipos modelar y supervisar los el calendario y descarga el proceso de CI
lanzamientos y automatizar las tareas con exceso de trabajo.
dentro de la infraestructura de TI.
•AWS CodePipeline: crea, prueba e
•IBM UrbanCode Release: es una implementa su código cada vez que hay
herramienta de gestión de lanzamientos un cambio de código, en función de los
colaborativa que lo ayuda a manejar modelos de proceso de lanzamiento que
la creciente cantidad y complejidad de defina.
los lanzamientos. Broadcom Continuous
Delivery Director: proporciona un flujo de •Spinnaker: es una plataforma de entrega
trabajo en tiempo real para monitorear y continua de múltiples nubes y código
administrar características y arreglos a lo abierto para liberar cambios de software
largo de toda su pipeline. con alta velocidad.

•Plutora: es un sólido conjunto de


herramientas de software de gestión de
lanzamientos de TI.
Guía de herramientas para comenzar a trabajar con DevOPs
30

4.9 Nube
Guía de herramientas para comenzar a trabajar con DevOPs
31

•Amazon Web Services (AWS): es una •OpenShift: es una plataforma como


colección de servicios de computación producto de servicio de Red Hat. También
remota. es una Infraestructura como Servicio
(IaaS), comparable a los servicios de
•Microsoft Azure: es una plataforma e almacenamiento en línea de Google
infraestructura de computación en la Storage y Amazon S3.
nube. Proporciona servicios PaaS e IaaS
y es compatible con muchos lenguajes de •IBM® Cloud: es una plataforma en la
programación, herramientas y marcos nube de estándares abiertos para crear,
diferentes, incluidos software y sistemas ejecutar y administrar aplicaciones.
específicos de Microsoft y de terceros.
•OpenStack: es una plataforma de
•Azure functions: crea aplicaciones más software de computación en la nube
rápido con una arquitectura sin servidor. gratuita y de código abierto.

•Google Cloud Platform: es una •Cloud Foundry: es una plataforma como


plataforma de computación en la servicio (PaaS) de computación en la nube
nube de Google. de código abierto.

•AWS Lambda: le permite ejecutar código •Iron.io: permite a los desarrolladores


sin aprovisionar ni administrar servidores. empresariales escalar de manera
Con Lambda, puede ejecutar código para confiable sus cargas de trabajo basadas
prácticamente cualquier tipo de aplicación en Docker en cualquier nube, pública,
o servicio de back-end. privada y local.

•Apache OpenWhisk: es una plataforma de •Alibaba Cloud: ofrece un conjunto


nube de código abierto sin servidor que integral de servicios globales de
ejecuta funciones en respuesta a eventos a computación en la nube.
cualquier escala.
Guía de herramientas para comenzar a trabajar con DevOPs
32

4.10 AIOps
Guía de herramientas para comenzar a trabajar con DevOPs
33

•Splunk: busca, monitorea y analiza •ITRS Group: realiza análisis de


grandes datos generados por máquina, a operaciones de TI, junto con información
través de una interfaz de estilo web. en tiempo real sobre la salud, el
rendimiento y la capacidad de extremo
•Sumo Logic: es un servicio de análisis a extremo del flujo de trabajo de las
y gestión de registros basado en la transacciones comerciales.
nube que aprovecha los grandes datos
generados por la máquina para ofrecer •Moogsoft: es una plataforma AIOps
información de TI en tiempo real. (inteligencia artificial para operaciones de
TI) ayuda a ITOps & amp.
•Fluentd: unifica todas las facetas de
procesamiento de datos de registro: •Logstash: es una herramienta para
recopilar, filtrar, almacenar en búfer y gestionar eventos y registros. Puede usarlo
generar registros en múltiples fuentes y para recopilar registros, analizarlos y
destinos. almacenarlos.

•Prometheus: es un sistema de monitoreo


de código abierto con un modelo de
datos dimensionales, lenguaje de consulta
flexible y base de datos.
Guía de herramientas para comenzar a trabajar con DevOPs
34

4.11 Analítica
Guía de herramientas para comenzar a trabajar con DevOPs
35

•XL Impact: es la primera solución de •Dynatrace: automatiza y utiliza el


DevOps Intelligence basada en objetivos, monitoreo estratégicamente como
ofrece KPI integrados para mostrar el característica del pipeline de extremo a
estado de su flujo de entrega continua. extremo e impulsa la “supervisión como
código” para la validación automática
•Kibana: es un complemento de y las alertas.
visualización de datos de código abierto
para Elasticsearch. Proporciona •AppDynamics: realiza gestión del
capacidades de visualización sobre el rendimiento de aplicaciones.
contenido indexado en un clúster.
•Elasticsearch: es un servidor de búsqueda
•New Relic: entregada en un modelo de basado en Lucene. Proporciona un motor
software como servicio (SaaS), monitorea de búsqueda de texto completo distribuido
aplicaciones web y móviles en tiempo real y con capacidad para
que se ejecutan en entornos en la nube, múltiples servidores.
locales o híbridos.
Guía de herramientas para comenzar a trabajar con DevOPs
36

4.12 Monitoreo
Guía de herramientas para comenzar a trabajar con DevOPs
37

•Nagios: es una aplicación de software de •Zenoss: desarrolla software que construye


código abierto, monitorea sistemas, redes modelos integrales en tiempo real de
e infraestructura. entornos de TI híbridos, proporcionando
información holística y de rendimiento
•Zabbix: es una solución empresarial de holística sin paralelo.
monitoreo de código abierto para
redes y aplicaciones.
Guía de herramientas para comenzar a trabajar con DevOPs
38

4.13 Seguridad
Guía de herramientas para comenzar a trabajar con DevOPs
39

•Checkmarx SAST (CxSAST): es una •CyberArk Conjur: es una solución


solución de análisis estático de grado de gestión de secretos diseñada
empresarial, flexible y precisa que específicamente para los requisitos de
se utiliza para identificar cientos de infraestructura únicos de la nube
vulnerabilidades de seguridad en nativa y los entornos DevOps.
código personalizado.
•SonarQube: es una plataforma abierta
•Snort: es un sistema de prevención de para gestionar la calidad del código.
intrusiones de red (NIPS) gratuito y de
código abierto y un sistema de detección •HashiCorp Vault: asegura, almacena y
de intrusiones de red. controla el acceso a tokens, contraseñas,
certificados, claves API y otros recursos
•Signal Sciences: asegura las aplicaciones confidenciales en los centros de datos
web, API y microservicios. modernos.

•Fortify Static Code Analyzer: Identifica


•Open Source Tripwire: es una herramienta
la causa raíz de la vulnerabilidad,
gratuita de seguridad de software e
correlaciona y prioriza los resultados,
integridad de datos útil para monitorear
y proporciona las mejores prácticas
y alertar sobre cambios específicos de
para que los desarrolladores puedan
archivos en una variedad de sistemas.
desarrollar código de manera más

•Black Duck: es la base de datos más


completa de componentes de código
abierto, vulnerabilidad e información de
licencia, le permite investigar proyectos
de código abierto, mitigar los riesgos de
seguridad y cumplimiento de licencias.
Guía de herramientas para comenzar a trabajar con DevOPs
40

4.14 Colaboración
Guía de herramientas para comenzar a trabajar con DevOPs
41

•ServiceNow: es un proveedor de •VersionOne: ayuda a identificar posibles


software de gestión de servicios (SM) de problemas comerciales y de productos, y
plataforma como servicio (PaaS). mejorar la calidad del software.

•JIRA: Proporciona funciones de •Remedy: es una plataforma de gestión


seguimiento de errores, seguimiento de de servicios creada de forma nativa para
problemas y gestión de proyectos. dispositivos móviles.

•Trello: es una aplicación gratuita de •CA Agile Central: es una plataforma


gestión de proyectos basada en la web. de clase empresarial diseñada
específicamente para escalar prácticas de
desarrollo ágiles.
•Slack: reúne todas las comunicaciones de
un equipo en un solo lugar, así como los
mensajes, herramientas y archivos.
•OpsGenie: es una plataforma de
orquestación de respuesta a incidentes
diseñada para hacer que el rendimiento
•Stride: es un servicio web para
operativo sea más efectivo.
chat interno / privado y mensajería
instantánea. Además del chat
•PagerDuty: es el sistema nervioso
individual y grupal / temático, también
central para las operaciones digitales
cuenta con almacenamiento de
de una empresa. Identifica problemas y
archivos basado en la nube.
oportunidades en tiempo real.
Guía de herramientas para comenzar a trabajar con DevOPs
42

Automatizar procesos es
un reto crucial para reducir
costos y cargas operativas,
así como minimizar
errores y tiempos en los
procedimientos.
Conoce todos los beneficios que trae
la automatización en los negocios.

Conoce más
Guía de herramientas
para comenzar a trabajar
con DevOPs

También podría gustarte