Mostrando entradas con la etiqueta Docker. Mostrar todas las entradas
Mostrando entradas con la etiqueta Docker. Mostrar todas las entradas

jueves, 30 de abril de 2020

[EN] DevOps roadmap

Hello!

Today I come with a roadmap that someone sent me a few days ago. It is a roadmap of what (according to how it is understood by who has drew it) a DevOps should know.



You can more or less agree with what is in it, but it has helped me to get to know some new technologies that could be very interesting to me.

What about you? What do you think? One thing amazing is that you can suggest your changes, but I am not sure they would take them into account. Anyway, I have at least two suggestions, that are
  • HOW COME Debian is not in purple???
  • I know there is no Load Balancing section but they should include it somehow


Source: roadmap.sh
You have a few more interesting roadmaps in that page

martes, 26 de marzo de 2019

[EN] High CPU -> Ubuntu + Docker + Jenkins

Sometimes, suddenly a Jenkins environment can turn upside down and take all the CPU resources even when no job is being processed. Any job launched gets eternal and the CPU load gets so high that almost reaches the moon while you try to fix it with no luck at all.

In that moment, a good idea may be clean old jobs and update your Jenkins.




For cleaning old builds
  • find out which is your jenkins home (you can get it from "Manage Jenkins" -> "Configure System" -> "Home Directory")
  • navigate to that directory, and then move inside the 'jobs' folder. Those are your jobs, and inside each of them there is a "builds" folder that keeps the builds. Delete as much as you want, let's say leaving just one month.
  • after that, reload your configuration; you can restart your container

  •   > docker container restart jenkins

    or just reload the configuration from "Manage Jenkins" -> "Reload Configuration from Disk" 

For updating your Jenkins (using Docker)
  • First of all, copy the war URL to download it; you can copy it from your Jenkins. To get it, go to "Manage Jenkins" and scroll to the top of the page; there is a warning if there are new available versions, and you can copy the link from there
  • Once you have your link, you have to download the war inside the container and move it instead the current; so lets get inside it using
  • > docker container exec -u 0 -it jenkins bash ##important you use "-u 0" option to force the user; otherwise bash may crash or have other issues
    >> cd /usr/share/jenkins
    >> mv jenkins.war jenkins-OLD.war
    >> wget http://updates.jenkins-ci.org/download/war/x.yyy.z/jenkins.war ## in your case, the URL you got on the previous step   
    >> chown jenkins:jenkins jenkins.war
    >> exit

  • now let's restart the container using

    > docker container restart jenkins

    log on on your Jenkins again, and check your installed plugins; some of them may be outdated and you'll have to make some adjustments.


lunes, 24 de diciembre de 2018

Pinceladas de Docker (IV) - Comandos

Hacía tiempo que quería subir una pequeña receta con los comandos de docker que más utilizo y que pueden ser útiles a alguien, y ya tenía el post escrito cuando he encontrado una sheet que me parece muy útil y totalmente recomendable, muy completa y muy organizada. Así que en lugar de subir mi artículo, os dejo esta sheet que os va a ser mucho más útil.

Si hacéis click sobre la imagen se hace más grande; o podéis descargarlas en formato PDF para tenerlas siempre a mano aquí.



Fuente: Linoxide.Com

jueves, 22 de junio de 2017

DevOps, A New Hope...

Hace unos meses que llevo con una serie de entradas dedicadas a Docker en especial, aunque el último (penúltimo) post introduje lo que (para mí, porque hay mucha literatura sobre el tema) son los principios de la filosofía DevOps. Según la wikipedia, este nuevo movimiento lo que busca es la automatización y monitorización de todos los estadios de la construcción del software, además de abogar por ciclos de desarrollo más cortos y más frecuencia de implementación  dando como resultado la construcción de software más confiable.

Para llegar a ese estado ideal, se marcan tres fases importantes, aunque después de la primera viene todo más o menos rodado, que serían

- Integración Continua (Continuous integration -CI- en inglés): Seguro que has escuchado este término alguna vez, pero si no lo has hecho que sepas que es el proceso por el cual el nuevo código se integra a menudo, por ejemplo cada pocas horas, siendo así posible la detección de errores lo más rápido posible, y para ello también se añaden una serie de tests y controles para localizar problemas o bugs fácilmente.

- Entrega Continua (Continuous Delivery -CD- en inglés): En esta fase la automatización es muy importante, ya que se definen más test y controles para que las subidas se puedan automatizar y sean más fiables. Estas nuevas pruebas van orientadas a mantener la calidad del software y a confirmar la integridad del código. Una vez el código ha superado todas las pruebas y mantiene la calidad deseada, se puede automatizar la subida al entorno de producción, aunque esto ya entraría en el terreno de un "continuous deployment"


Hay otras fases como la monitorización continua que yo personalmente no las considero fases propiamente dichas sino más bien parte de la carrera de fondo de un departamento de sistemas

Cada una de estas dos fases tienen software que nos ayuda en la implementa-ción de todas esta manera de trabajar, pero eso lo iremos viendo. Sólo una pincelada ya que hemos hablado de docker: al trabajar con contenedores se minimizan los fallos derivados del entorno, por lo que cualquier cambio o implementación que tengamos que hacer es mucho más fluida.



Saludos y gracias!

domingo, 26 de marzo de 2017

DevOps y Docker


No lo parece, pero la aplicación de Docker en un entorno de producción requiere de un cambio importante de mentalidad.

Dicho así, suena raro, pero las ventajas de docker tienen mucho que ver con una manera de trabajar más colaborativa, que se identifica con una filosofía DevOps más que con una visión más clásica de la infraesctructura. Al menos es mi visión, y me voy a explicar.


Yo vengo del mundo de sistemas y siempre he trabajado con una filosofía según la cual no podía tocar ni una línea de código; en general la idea es provisionar entornos y entregarlos al equipo de desarrollo correspondiente para que haga su magia, y a partir de ahí ponerte la gorra de policía. Con la llegada y la implantación de la filosofía DevOps, la infraestructura ha pasado a ser parte del código, y se actualiza y modifica de la misma manera. Y estos modelos requieren de herramientas que permitan que estos cambios se hagan de la manera más fluida posible, y que los equipos se fusionan, integrando miembros multidisciplinares y que sepan jugar en equipo.Están empezando a llegar nuevos aires, y esto va a cambiar mucho los modelos que hemos tenido hasta ahora.

Alguien puede decirme que esta manera de trabajar es algo puntual (aunque lo he vivido en diferentes empresas) o el resultado de una mala (o buena) gestión; yo no voy a entrar en eso, sólo quiero explicar mi experiencia y cómo lo he visto yo.


Un saludo!

martes, 7 de febrero de 2017

Pinceladas de Docker (III) - Ventajas que te puede aportar Docker

Quería haber escrito y publicado esta entrada mucho antes, pero un accidente me ha dejado fuera de circulación durante unos meses, así que perdonad si llega un poco tarde pero tenía muchas ganas de seguir con esta serie.

Según lo veo yo, estas son las ventajas que (en este mismo momento) creo que son más... eso, ventajosas de utilizar docker en diferentes entornos

  • Docker se puede ver como un pequeño "ordenador" dentro de tu equipo: un pequeño entorno virtual con lo justo para que puedas ejecutar tu código o lanzar tus scritps. Las imágenes de docker se pueden tratar como pequeñas instancias virtuales, que podrás compartir con el resto del equipo de manera que todos tengáis el mismo entorno de trabajo independientemente de la plataforma que utilizéis.
  • Esto es gracias a que Docker tiene  una "cross platform architecture", una arquitectura de plataforma cruzada que permite que la misma imagen se pueda ejecutar igualmente sobre Windows o Linux. En equipos multidisciplinares, es ideal ya que todos podrán trabajar con el mismo entorno.
  • Al ser imágenes, las subidas a producción también son más sencillas y rápida, sin tener que entrar en configuraciones y dependencias de otros módulos del sistema, lo que permite implementar más fácilmente modelos de integración contínua que tanto se buscan en este momento.
  • Las diferentes imágenes son directamente las versiones de tu producto totalmente paquetizada y con la seguridad de que va a funcionar en cualquier entorno.
  • Gracias a herramientas como DockerFile, podemos automatizar y  desplegar entornos utilizando recetas y, de la misma manera que se hace con el código, mantener un control de versiones de nuestra infrastructura.


 Seguro que me salen más ventajas, os las iré comentando


Saludos!

jueves, 21 de julio de 2016

Pinceladas de Docker (II) - Docker HUB

La comunidad Docker es enorme, y crece cada día que pasa.
Sólo pásate por
https://hub.docker.com

para comprobar la cantidad de imágenes que hay, ya no sólo oficiales sino de gente que las sube para compartirlas.

Una de las ventajas principales que tiene docker sobre los entornos virtuales y que no comenté en el primer artículo que con Docker se acaba eso de "es que en mi local funciona!" que tantas veces hemos escuchado; todo el mundo podrá trabajar sobre el mismo entorno ya que docker permite la distribución de contenedores idénticos que los programadores podrán utilizar en local. Ahorran así tiempo en configuración y mantenimiento, además de unificar criterios.

En el próximo artículo intentaré recopilar todas las ventajas que yo veo que aporta Docker y que te pueden aportar mucho en tu día a día


Un saludo!

miércoles, 29 de junio de 2016

Pinceladas de Docker (I)

A estas alturas de la película, quien más y quien menos ha escuchado hablar de Docker, esa tecnología que ya lleva tiempo entre nosotros y que cada vez está más presente. De la misma manera, esta entrada no busca ser un tutorial o una guía muy exhaustiva, pero sí dar cuatro pinceladas a este producto que tanto está revolucionando.

Si habéis buscado en internet, habréis visto que la idea de fondo de los contenedores es similar a la de las máquinas virtuales; la gran diferencia es que las máquinas virtuales emplean recursos asignados en correr un segundo sistema operativo sobre el host que corren, mientras que los contenedores se aprovechan del sistema operativo subyacente y comparten algunas librerías y recursos con él, de manera que nos ahorramos recursos que podemos dedicar a levantar más contenedores.

En esta imagen se ve bastante claro lo que os decía

(fuente)
En el caso de las máquinas virtuales, sobre el SO tenemos el hipervisor que nos permite virtualizar el hardware e instalar diferentes instancias, cada una con sus sistema operativo propio, binarios, librerías y las aplicaciones que deseamos correr sobre ellas. De esta manera se hace un uso intensivo de los recursos del hardware que tenemos.
El caso de los contenedores es similar, pero nos permite aprovechar mejor los recursos; sobre el sistema operativo instalamos el motor de Docker, y encima desplegamos los contenedores y nuestras aplicaciones. Estos contenedores son imágenes relativamente pequeñas comparadas con un sistema operativo (llegando a unos pocos MB), y a nivel de recursos no tienen el mismo gasto que si fuera un sistema operativo completo.

Otra de las ventajas de docker sobre máquinas virtuales es que no requiere del gasto que implica la compra o alquiler de hardware para poder virtualizar instancias, sino que se puede desplegar tanto en entornos físicos como virtuales.


Un saludo!