<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>docker | Webmago Dev</title>
	<atom:link href="https://webmago.dev/tag/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://webmago.dev</link>
	<description>Creando codigo desde 1990</description>
	<lastBuildDate>Thu, 15 May 2025 19:26:06 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>¡Descongela tu Desarrollo con Winter CMS! ❄️ Tu Entorno Docker Listo para la Acción</title>
		<link>https://webmago.dev/descongela-tu-desarrollo-con-winter-cms-%e2%9d%84%ef%b8%8f-tu-entorno-docker-listo-para-la-accion/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Fri, 09 May 2025 15:21:43 +0000</pubDate>
				<category><![CDATA[development]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[wintercms]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=5901</guid>
					<description><![CDATA[<p>¿Cansado de lidiar con configuraciones complejas y entornos de desarrollo inconsistentes? ¡Dile adiós al frío de la incertidumbre y da la bienvenida a Winter CMS, mi imagen Docker preconfigurada lista para potenciar tus proyectos! Hace apenas dos semanas, compartí contigo una herramienta que he estado afinando para simplificar tu flujo de trabajo. Winter CMS encapsula [&#8230;]</p>
The post <a href="https://webmago.dev/descongela-tu-desarrollo-con-winter-cms-%e2%9d%84%ef%b8%8f-tu-entorno-docker-listo-para-la-accion/">¡Descongela tu Desarrollo con Winter CMS! ❄️ Tu Entorno Docker Listo para la Acción</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p data-sourcepos="5:1-5:231">¿Cansado de lidiar con configuraciones complejas y entornos de desarrollo inconsistentes? ¡Dile adiós al frío de la incertidumbre y da la bienvenida a <strong>Winter CMS</strong>, mi imagen Docker preconfigurada lista para potenciar tus proyectos!</p>
<p data-sourcepos="7:1-7:288">Hace apenas dos semanas, compartí contigo una herramienta que he estado afinando para simplificar tu flujo de trabajo. <strong>Winter CMS</strong> encapsula un entorno de desarrollo robusto y eficiente, ahorrándote horas de configuración y garantizando la consistencia en cada paso de tu proceso creativo.</p>
<p data-sourcepos="9:1-9:26"><strong>¿Qué te ofrece Winter CMS?</strong></p>
<ul data-sourcepos="11:3-15:0">
<li data-sourcepos="11:3-11:158"><strong>Un entorno consistente:</strong> Olvídate de los &#8220;funciona en mi máquina&#8221;. Winter CMS asegura que todos los miembros de tu equipo trabajen en un ambiente idéntico.</li>
<li data-sourcepos="12:3-12:127"><strong>Ahorro de tiempo invaluable:</strong> Dedica tu energía a lo que realmente importa: ¡codificar! Winter CMS viene listo para usarse.</li>
<li data-sourcepos="13:3-13:151"><strong>Flexibilidad total:</strong> Adapta Winter CMS a tus necesidades específicas. Su diseño modular te permite integrar las herramientas que realmente utilizas.</li>
<li data-sourcepos="14:3-15:0"><strong>La base de mis servicios:</strong> Winter CMS no es solo una imagen Docker, es la demostración de mi compromiso con la eficiencia y la calidad en el desarrollo. Utilizo esta misma base para ofrecerte soluciones robustas y escalables.</li>
</ul>
<p><strong>¿Qué Versiones de Winter CMS se han liberado?</strong></p>
<ul>
<li>1.2.7 php 8.2 fpm</li>
<li>1.2.7 php 8.2 apache</li>
<li>1.2.7 php 8.1 fpm</li>
<li>1.2.7 php 8.1 apache</li>
<li>1.2.7 php 8.0 fpm</li>
<li>1.2.7 php 8.0 apache</li>
</ul>
<p><strong>¿Listo para experimentar la calidez de un desarrollo sin complicaciones?</strong></p>
<p><a href="https://webmago.dev/#contact">¡Quiero saber cómo Winter CMS puede impulsar mi próximo proyecto!</a></p>
<p data-sourcepos="20:1-20:228">Al hacer clic en el botón de arriba, podrás contactarme directamente para discutir tus necesidades y descubrir cómo mis servicios, basados en la eficiencia de herramientas como Winter CMS, pueden llevar tus ideas al siguiente nivel.</p>
<p data-sourcepos="22:1-22:202">Ya sea que necesites ayuda para optimizar tu flujo de trabajo, construir aplicaciones robustas o implementar soluciones escalables, estoy aquí para ofrecerte mi experiencia y las herramientas adecuadas.</p>
<p data-sourcepos="24:1-24:164"><strong>¡No esperes más para descongelar tu potencial! Explora Winter CMS en Docker Hub:</strong> <a class="ng-star-inserted" href="https://hub.docker.com/r/webmago/winter" target="_blank" rel="noopener">https://hub.docker.com/r/webmago/winter</a></p>The post <a href="https://webmago.dev/descongela-tu-desarrollo-con-winter-cms-%e2%9d%84%ef%b8%8f-tu-entorno-docker-listo-para-la-accion/">¡Descongela tu Desarrollo con Winter CMS! ❄️ Tu Entorno Docker Listo para la Acción</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WinterCMS, Testing Docker Image</title>
		<link>https://webmago.dev/wintercms-testing-docker-image/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Tue, 04 May 2021 04:25:15 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[wintercms]]></category>
		<category><![CDATA[docker-compose]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=1206</guid>
					<description><![CDATA[<p>Some days ago, I created the WinterCMS Docker image for use with PHP 7.2 &#8211; 7.4 on Apache2 or FPM variants; those images/versions are publicly available, is my donation to the OpenSource and WinterCMS communities. Today I put my hands to write a basic docker-compose.yml to test the Docker Image using Docker Compose, SQLite as [&#8230;]</p>
The post <a href="https://webmago.dev/wintercms-testing-docker-image/">WinterCMS, Testing Docker Image</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Some days ago, I created the <a title="WinterCMS, descarga la imagen Docker." href="https://webmago.dev/wintercms-descarga-la-imagen-docker/" target="_blank" rel="noopener">WinterCMS Docker image</a> for use with PHP 7.2 &#8211; 7.4 on Apache2 or FPM variants; those images/versions are publicly available, is my donation to the OpenSource and <a title="WinterCMS, descarga la imagen Docker." href="https://wintercms.com" target="_blank" rel="noopener">WinterCMS</a> communities.</p>
<p>Today I put my hands to write a basic <code>docker-compose.yml</code> to test the Docker Image using Docker Compose, SQLite as a database.</p>
<p>I decided to bind to my SSD local directories with <code>storage, themes, plugins, and database</code> container directories to keep this data safe if the container crashes or is removed.</p>
<div id="attachment_1211" style="width: 770px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-1211" class="size-full wp-image-1211" src="https://webmago.dev/buvytsan/2021/05/WinterCMS-bind-dirs.png" alt="WinterCMS binding directories" width="760" height="352" srcset="https://webmago.dev/buvytsan/2021/05/WinterCMS-bind-dirs.png 760w, https://webmago.dev/buvytsan/2021/05/WinterCMS-bind-dirs-300x139.png 300w" sizes="(max-width: 760px) 100vw, 760px" /><p id="caption-attachment-1211" class="wp-caption-text">WinterCMS binding directories</p></div>
<p>I created an <code>.env</code> file to inject environment variables and some values into the <code>docker-compose.yml</code> services file.</p>
<pre><code class="language-bash">###
#
# Winter CMS Test Image
# Version 1.0
# @author: WebMago
#
###
#### ---- * WinterCMS Configuration * ---- ####
# Name
CONTAINER_CMS_NAME=wintercms
# Image
CONTAINER_CMS_IMAGE=webmago/winter:stable-v1.1.3-php7.4-apache
# Env values
APP_DEBUG=false
APP_KEY=base64:PUT-YOUR-KEY-HERE
TZ=America/Mexico_City
APP_LOCALE=en
DB_PATH_SQLITE=storage/database.sqlite
DB_TYPE=sqlite
SESSION_DRIVER=file
CMS_ACTIVE_THEME=jacoweb-freelance
#### ---- * WinterCMS Domains * ---- ####
# A fake domain to test locally
WINTER_DOMAINS=winter.webmago.io</code></pre>
<p>&nbsp;</p>
<p>On the <code>docker-compose.yml</code> the <code>.env</code> values are injected as you can view on the code below and the directories are bound locally on my SSD.</p>
<pre><code class="language-yaml">version: &#039;3&#039;
services:
  web-wintercms:
    image: ${CONTAINER_CMS_IMAGE}
    container_name: ${CONTAINER_CMS_NAME}
    restart: unless-stopped
    ports:
      - &quot;80:80&quot;
    environment:
        VIRTUAL_HOST: ${WINTER_DOMAINS}
        APP_DEBUG: ${APP_DEBUG}
        APP_KEY: ${APP_KEY}
        TZ: ${TZ}
        APP_LOCALE: ${APP_LOCALE}
        DB_PATH_SQLITE: ${DB_PATH_SQLITE}
        DB_TYPE: ${DB_TYPE}
        SESSION_DRIVER: ${SESSION_DRIVER}
        CMS_ACTIVE_THEME: ${CMS_ACTIVE_THEME}
    volumes:
     - ./config/test:/var/www/html/config/docker
     - ./wintercms/storage/database.sqlite:/var/www/html/storage/database.sqlite
     - ./wintercms/storage/logs:/var/www/html/storage/logs
     - ./wintercms/storage/app:/var/www/html/storage/app
     - ./wintercms/storage/cms:/var/www/html/storage/cms
     - ./wintercms/themes:/var/www/html/themes
     - ./wintercms/plugins:/var/www/html/plugins
</code></pre>
<p>&nbsp;</p>
<p>To launch WinterCMS execute:</p>
<pre><code class="language-bash">docker-compose up -d</code></pre>
<p>This runs the process in the background, to stop the execution run:</p>
<pre><code class="language-bash">docker-compose down</code></pre>
<p>&nbsp;</p>
<p>The first run creates the <code>database.sqlite</code> and assign a random password to the <code>admin</code> user, this is not visible if you run the <code>docker-compose</code> command using the flag <code>-d</code>.</p>
<p>This can be solved using three scenarios.</p>
<p>&nbsp;</p>
<p><strong>First Scenario</strong></p>
<p>Execute the docker-compose without the flag -d</p>
<p><code class="language-bash">docker-compose up</code></p>
<p>&nbsp;</p>
<p><strong>Second Scenario</strong></p>
<p>If you have been executed the docker-compose with the flag -d and used the YAML of this example, the database is not deleted and the change will keep on the next execution.</p>
<pre><code class="language-bash"># Access the container
docker-compose exec -it wintercms bash
# change the admin password
php artisan winter:passwd
# Enter the username to reset, on this case is admin
 Username to reset:
 &gt; admin
 Enter new password (leave blank for generated password) []:
 &gt; 
Password successfully changed.
# exit the container.
exit</code></pre>
<p>If you require to use <code>redis</code> my advice is to use my images as a base to generate a new image with this PHP extension.</p>
<p>&nbsp;</p>
<p><strong>Third Scenario</strong></p>
<p>Add the environment variable <code>INIT_WINTER</code> with the <code>false</code> value into the <code>environment</code> section of the YAML file, only if you have not executed the <code>docker-compose</code> command as the first run.</p>
<pre><code class="language-bash"># Access the container
docker-compose exec -it wintercms bash
# Winter up
php artisan winter:up
.
. # this show the DB migration process
.
.
. # finally the process displays the random password assigned, this is an example only
- The following password has been automatically generated for the &quot;admin&quot; account: xZ4DF20k8txIrcBRqEhkjw
 </code></pre>
<p><strong>Accessing the Backend</strong> After all the previous process, now you can access the Backend  CMS, on my case I define the host <code>wintercms.webmago.io</code> as a fake URL added to my hosts, on my web browser typed: <code>http://wintercms.webmago.io/backend/</code> the user is <code>admin</code> and my password the defined or adjusted based on the previous three scenarios described. <code>/etc/hosts file</code></p>
<pre><code class="language-bash">127.0.0.1 wintercms.webmago.io</code></pre>
<p>&nbsp;</p>
<div id="attachment_1216" style="width: 1034px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-1216" class="size-large wp-image-1216" src="https://webmago.dev/buvytsan/2021/05/WinterCMS-sqlite-one-them-1024x378.png" alt="WinterCMS SQLite, Freelance Theme" width="1024" height="378" srcset="https://webmago.dev/buvytsan/2021/05/WinterCMS-sqlite-one-them-1024x378.png 1024w, https://webmago.dev/buvytsan/2021/05/WinterCMS-sqlite-one-them-300x111.png 300w, https://webmago.dev/buvytsan/2021/05/WinterCMS-sqlite-one-them-768x283.png 768w, https://webmago.dev/buvytsan/2021/05/WinterCMS-sqlite-one-them-1536x566.png 1536w, https://webmago.dev/buvytsan/2021/05/WinterCMS-sqlite-one-them-2048x755.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-1216" class="wp-caption-text">WinterCMS SQLite, Freelance Theme</p></div>
<p><strong>Glitches</strong></p>
<p>The <code>demo</code> theme currently is not available, this can origin errors on the Frontend, you need to install and activate one of the suggested on the <code>Front-end theme</code> section, find or add your old theme with the required adjustments for WinterCMS.</p>
<p>&nbsp;</p>
<p>On the Plugins section, the oldest OctoberCMS Plugins are available to be installed, this can be an additional article for the WinterCMS series.</p>
<div id="attachment_1217" style="width: 1034px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-1217" class="size-large wp-image-1217" src="https://webmago.dev/buvytsan/2021/05/WinterCMS-Plugins-1024x562.png" alt="WinterCMS Plugins" width="1024" height="562" srcset="https://webmago.dev/buvytsan/2021/05/WinterCMS-Plugins-1024x562.png 1024w, https://webmago.dev/buvytsan/2021/05/WinterCMS-Plugins-300x165.png 300w, https://webmago.dev/buvytsan/2021/05/WinterCMS-Plugins-768x421.png 768w, https://webmago.dev/buvytsan/2021/05/WinterCMS-Plugins-1536x842.png 1536w, https://webmago.dev/buvytsan/2021/05/WinterCMS-Plugins-2048x1123.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-1217" class="wp-caption-text">WinterCMS Plugins</p></div>
<p>&nbsp;</p>
<p>If you require my help, please let me know, <a href="https://webmago.dev/#contact" target="_blank" rel="noopener">contact me</a>.</p>The post <a href="https://webmago.dev/wintercms-testing-docker-image/">WinterCMS, Testing Docker Image</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WinterCMS, descarga la imagen Docker.</title>
		<link>https://webmago.dev/wintercms-descarga-la-imagen-docker/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Fri, 30 Apr 2021 15:15:58 +0000</pubDate>
				<category><![CDATA[codefresh]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[wintercms]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=1166</guid>
					<description><![CDATA[<p>Si has leído nuestros artículos previos, te habrás enterado que OctoberCMS ha generado un nuevo esquema de pagos y esto origino una ruptura interna entre los colaboradores del proyecto quienes quienes lanzaron WinterCMS una derivación del actual OctoberCMS. &#160; Varios desarrolladores que hemos usado este CMS también han optado por mirar y  migrar sus proyectos [&#8230;]</p>
The post <a href="https://webmago.dev/wintercms-descarga-la-imagen-docker/">WinterCMS, descarga la imagen Docker.</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Si has leído nuestros artículos previos, te habrás enterado que OctoberCMS ha generado un <a title="Adios OctoberCMS, Hola WinterCMS" href="https://webmago.dev/adios-octobercms-hola-wintercms/" target="_blank" rel="noopener">nuevo esquema de pagos</a> y esto origino una ruptura interna entre los colaboradores del proyecto quienes quienes lanzaron <a title="WinterCMS finalmente disponible" href="https://webmago.dev/wintercms-finalmente-disponible/" target="_blank" rel="noopener">WinterCMS</a> una derivación del actual OctoberCMS.</p>
<p>&nbsp;</p>
<p>Varios desarrolladores que hemos usado este CMS también han optado por mirar y  migrar sus proyectos a este nuevo Administrador de Contenido, y por ello me he unido para proveer de las primeras imágenes <a href="https://hub.docker.com/r/webmago/winter" target="_blank" rel="noopener">Docker de WinterCMS</a> de forma gratuita.</p>
<p>&nbsp;</p>
<p>Para generar dichas imágenes me base en el código  proporcionado por <a href="https://github.com/aspendigital/docker-octobercms" target="_blank" rel="noopener">@aspendigital</a>, haciendo una derivación para generar el CI  con <a href="https://codefresh.io/" target="_blank" rel="noopener">Codefresh</a> un SaaS al que le he confiado varios de mis pipelines desde hace mas de 2 años.</p>
<p>&nbsp;</p>
<p>Al momento de escribir este artículo he generado 3 versiones de WinterCMS, <em>v1.1.0, v1.1.2</em> y <em>v1.1.3</em> con <em>PHP 7.2 a 7.4</em> con dos variantes, para <em>apache</em> y <em>fpm</em>; el por que no esta la version 1.1.1 se debe a que generó un error de sqlite al momento de su construcción, por lo que opté por no generar sus respectivas imágenes, así también  las imágenes con <strong>PHP 5.6</strong> fueron descartadas , esto debido a que WinterCMS recomienda usar la version <strong>PHP 7.2</strong> en adelante.</p>
<p>&nbsp;</p>
<h2>¿Cómo usar la imagen?</h2>
<h3>La forma rápida</h3>
<p><code>$ docker run -p 80:80 --name winter webmago/winter:latest</code></p>
<p>Detener la imagen con CTRL-C</p>
<p><code>$ docker rm winter # Destruye el contenedor</code></p>
<p>&nbsp;</p>
<blockquote>
<div>Si hay un conflicto con el puerto, recibirás un mensaje de error del daemon Docker. Intenta mapear a un puerto local <strong>(-p 8080:80)</strong> o apaga el contenedor o servidor que esté usando el puerto deseado.</div>
</blockquote>
<div>
<ul>
<li>Visita http://localhost usando tu navegador.</li>
<li>Ingresa al backend http://localhost/backend con el usuario <code>admin</code> y  password <code>admin</code>.</li>
<li>Presiona<code>CTRL-C</code> para detener el contenedor. Ejecutar el contenedor en primer plano enviara los mensajes de log a la terminal.</li>
</ul>
</div>
<div></div>
<div></div>
<div>
<h3>Ejecutar el contenedor en segundo plano con la opcion <code>-d</code>:</h3>
<div>
<pre><code class="language-bash">$ docker run -p 80:80 --name winter -d webmago/winter:latest
$ docker stop winter  # Detener el contenedor. Para reiniciar docker start winter
$ docker rm winter  # Destruir el contenedor</code></pre>
</div>
</div>
<div></div>
<h2>Trabajar con archivos locales</h2>
<p>&nbsp;</p>
<div>
<div>Usando <em>volumes Docker,</em> es posible montar archivos localmente dentro de un contenedor.</div>
</div>
<div>
<div></div>
<div>El contenedor usa el directorio de trabajo <code>/var/www/html</code> para el <code>document root</code> del servidor web. Es aquí donde el codigo base de Winter CMS reside dentro del contenedor. Puedes reemplazar archivos y carpetas, o itnroducir nuevos con volumenes montados vinculados:</div>
<div>
<pre><code class="language-bash"># Developing a plugin
$ git clone git@github.com:aspendigital/oc-resizer-plugin.git
$ cd oc-resizer-plugin
$ docker run -p 80:80 --rm \
-v $(pwd):/var/www/html/plugins/aspendigital/resizer \
webmago/winter:latest</code></pre>
</div>
</div>
<div></div>
<div>
<div>
<div>Ahórrate algunos pulsaciones de teclado, utiliza <a href="https://docs.docker.com/compose/overview/" target="_blank" rel="noopener"><code>docker-compose</code></a> introduciendo un archivo <code>docker-compose.yml</code> a tu proyecto:</div>
</div>
</div>
<div></div>
<div>
<pre><code class="language-yaml"># docker-compose.yml
version: &#039;2.2&#039;
services:
  web:
    image: webmago/winter
    ports:
      - 80:80
    volumes:
      - $PWD:/var/www/html/plugins/aspendigital/resizer</code></pre>
</div>
<p>&nbsp;</p>
<div>
<div>Con el código arriba mencionado, guardalo en tu directorio de trabajo y ejecutalo:</div>
</div>
<div></div>
<div>
<pre><code class="language-bash">$ docker-compose up -d # inicia los servicios definidos en `docker-compose.yml` en el fondo
$ docker-compose down # detiene y destruye</code></pre>
</div>
<p>&nbsp;</p>
<p>Estas son algunas formas principales de como usar esta imagen, si requieres una personalización o implementarla en algun cluster Kubernetes <a href="https://webmago.dev/#contact" target="_blank" rel="noopener">contactame</a>.</p>The post <a href="https://webmago.dev/wintercms-descarga-la-imagen-docker/">WinterCMS, descarga la imagen Docker.</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Editores de Código en linea</title>
		<link>https://webmago.dev/editores-de-codigo-en-linea/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Wed, 24 Feb 2021 00:00:23 +0000</pubDate>
				<category><![CDATA[development]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[moviles]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[visual studio code]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=767</guid>
					<description><![CDATA[<p>Desde hace mas de cinco años que hago home office, y con el auge de la pandemia de COVID-19 es necesario tener herramientas de acceso remoto en mi caso editores de código. &#160; He desarrollado código en diversos lenguajes y he tenido la necesidad que algún proyecto requiere de un ajuste o corrección y no [&#8230;]</p>
The post <a href="https://webmago.dev/editores-de-codigo-en-linea/">Editores de Código en linea</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Desde hace mas de cinco años que hago home office, y con el auge de la pandemia de COVID-19 es necesario tener herramientas de acceso remoto en mi caso editores de código.</p>
<p>&nbsp;</p>
<p>He desarrollado código en diversos lenguajes y he tenido la necesidad que algún proyecto requiere de un ajuste o corrección y no cargo con una Laptop, quienes hacen senderismo me darán la razón que con el tiempo la carga puede ser agobiante y entre mas ligero transites mejor, por lo tanto, una tableta, datos móviles y la corrección puede ser realizada en cualquier lugar.</p>
<p>&nbsp;</p>
<p>Existen en el mercado varios proveedores para editar código en línea, algunos te ofrecen cuentas básicas gratuitas con un espacio de trabajo y pueden servirte para tu projecto personal, aquí te enlisto algunos de ellos.</p>
<p>&nbsp;</p>
<p>Estos te permiten crear espacios de trabajo</p>
<ul>
<li><a href="https://aws.amazon.com/cloud9/" target="_blank" rel="noopener noreferrer">AWS Cloud9</a> &#8211; $ 2.05 al mes en adelante.</li>
<li><a href="https://codeanywhere.com/" target="_blank" rel="noopener noreferrer">Codeanyhere</a> &#8211; $ 2.5 al mes en adelante.</li>
<li><a href="https://repl.it/" target="_blank" rel="noopener noreferrer">Repl.it</a> &#8211; Free, $7.00 (usuario), $ 35 (Team) al mes</li>
<li><a href="https://codesandbox.io/" target="_blank" rel="noopener noreferrer">Code Sandbox</a> &#8211; Free, $7.00 mes</li>
</ul>
<p>&nbsp;</p>
<p>Si solo quieres probar y aprender código:</p>
<ul>
<li><a href="https://www.online-ide.com/" target="_blank" rel="noopener noreferrer">Online IDE</a></li>
<li><a href="https://www.ideone.com/" target="_blank" rel="noopener noreferrer">IdeOne</a></li>
<li><a href="https://www.codechef.com/ide" target="_blank" rel="noopener noreferrer">Code Chef</a></li>
<li><a href="https://paiza.io/" target="_blank" rel="noopener noreferrer">Paiza</a></li>
<li><a href="https://ide.codingblocks.com/" target="_blank" rel="noopener noreferrer">Coding Blocks IDE</a></li>
</ul>
<p>&nbsp;</p>
<p>Si quieres trabajar con tu cluster Kubernetes</p>
<ul>
<li><a href="https://www.gitpod.io/" target="_blank" rel="noopener noreferrer">Gitpod</a></li>
</ul>
<p>&nbsp;</p>
<p>Si cuentas con un VPS de al menos 2 Cores CPU, 1 GB RAM puedes montarte tu <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">Visual Studio Code</a> en tu propio servidor y tener tu IDE web en algun dominio como https://idecode.webmago.dev, puedes hacerlo siguiendo el procedimiento de <a href="https://github.com/cdr/code-server/blob/master/docs/install.md" target="_blank" rel="noopener noreferrer">instalacion</a> o usar una <a href="https://hub.docker.com/search?q=codercom%2Fcode-server&amp;type=image" target="_blank" rel="noopener noreferrer">imagen</a> Docker .</p>
<p>&nbsp;</p>
<p>La implementacion de <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">Visual Studio Code</a> en un VPS me tomo menos de una hora; el pasado fin de semana estando fuera de oficina tuve que corregir un estilo en un sitio web y el contar ya con un editor en linea me ayudo para hacer la correccion y enviarla al repositorio y lanzar el procedimiento de CI/CD y ver el cambio solicitado por el cliente.</p>
<p>&nbsp;</p>
<p>En esta captura podras ver <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">Visual Studio Code</a> solicitandome la contraseña para acceder y empezar a trabajar.</p>
<div id="attachment_772" style="width: 1034px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-772" class="size-large wp-image-772" src="https://webmago.dev/buvytsan/2021/02/vscode-access-1024x494.png" alt="Visual Studio Code" width="1024" height="494" srcset="https://webmago.dev/buvytsan/2021/02/vscode-access-1024x494.png 1024w, https://webmago.dev/buvytsan/2021/02/vscode-access-300x145.png 300w, https://webmago.dev/buvytsan/2021/02/vscode-access-768x370.png 768w, https://webmago.dev/buvytsan/2021/02/vscode-access-1536x740.png 1536w, https://webmago.dev/buvytsan/2021/02/vscode-access-2048x987.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-772" class="wp-caption-text">Acceder usando contraseña</p></div>
<p>&nbsp;</p>
<p>En esta otra captura podras ver la pantalla clasica de bienvenidad de <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">Visual Studio Code</a>.</p>
<div id="attachment_773" style="width: 1034px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-773" class="size-large wp-image-773" src="https://webmago.dev/buvytsan/2021/02/vscode-welcome-1024x594.png" alt="Visual Studio Code" width="1024" height="594" srcset="https://webmago.dev/buvytsan/2021/02/vscode-welcome-1024x594.png 1024w, https://webmago.dev/buvytsan/2021/02/vscode-welcome-300x174.png 300w, https://webmago.dev/buvytsan/2021/02/vscode-welcome-768x446.png 768w, https://webmago.dev/buvytsan/2021/02/vscode-welcome-1536x891.png 1536w, https://webmago.dev/buvytsan/2021/02/vscode-welcome-2048x1188.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-773" class="wp-caption-text">Pantalla de Bienvenida</p></div>
<p>&nbsp;</p>
<p>Si requieres de mi ayuda para montar tu propio IDE online en tu VPS <a href="https://webmago.dev/#contact">contactame</a>.</p>The post <a href="https://webmago.dev/editores-de-codigo-en-linea/">Editores de Código en linea</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Weavescope metricas, administracion, visualizacion en tiempo real</title>
		<link>https://webmago.dev/weavescope-metricas-administracion-visualizacion-en-tiempo-real/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Tue, 16 Feb 2021 21:13:01 +0000</pubDate>
				<category><![CDATA[devops]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[loggin]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[operations]]></category>
		<category><![CDATA[weavescope]]></category>
		<category><![CDATA[weaveworks]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=758</guid>
					<description><![CDATA[<p>Actualmente administro Clusters Kubernetes y algunos VPS con Docker con sitios web, parte de trabajar como DevOps es  observar cómo los micro-servicios consumen recursos tales como CPU o Memoria; y me ha tocado que fuera de horario de oficina tengo que acceder y monitorear recursos cuando se espera un consumo basado en noticias de impacto; [&#8230;]</p>
The post <a href="https://webmago.dev/weavescope-metricas-administracion-visualizacion-en-tiempo-real/">Weavescope metricas, administracion, visualizacion en tiempo real</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Actualmente administro Clusters Kubernetes y algunos VPS con Docker con sitios web, parte de trabajar como DevOps es  observar cómo los micro-servicios consumen recursos tales como CPU o Memoria; y me ha tocado que fuera de horario de oficina tengo que acceder y monitorear recursos cuando se espera un consumo basado en noticias de impacto; por lo que debo cargar en todo momento un dispositivo movil.</p>
<p>&nbsp;</p>
<p>Para los clusters Kubernetes me auxilio de &#8220;Monitoring&#8221; (antes Stackdriver) en GCP o CloudWatch en AWS, o incluso Prometheus con Grafana.</p>
<p>&nbsp;</p>
<p>Lo que hace de <a href="https://www.weave.works/oss/scope/" target="_blank" rel="noopener noreferrer">Weavescope</a> un software Open Source tan peculiar no solo es ver métricas, sino pausar, detener, reiniciar un contenedor o acceder a la terminal del mismo para hacer algunas operaciones tal como si fuera una terminal remota.</p>
<p>&nbsp;</p>
<p>Esta versatilidad de <a href="https://www.weave.works/oss/scope/" target="_blank" rel="noopener noreferrer">Weavescope</a> me permite visualizar y hacer operaciones cuando solo cuento con un dispositivo móvil como una tableta o un iPad.</p>
<p>&nbsp;</p>
<p><a href="https://www.weave.works/oss/scope/" target="_blank" rel="noopener noreferrer">Weavescope</a> ofrece varias alternativas de ser <a href="https://www.weave.works/docs/scope/latest/installing/" target="_blank" rel="noopener noreferrer">instalado</a>, en mi caso donde uso VPS con docker-compose opte por esta version con algunos ajustes que no se mencionan en la version oficial, tal es el caso de la autenticacion, ya que de no contar con esto cualquiera que conozca la dirección de mi instalacion podria hacer un mal uso como detener o crear contenedores y vulnerar mi sistema.</p>
<p>&nbsp;</p>
<p><a href="https://www.weave.works/" target="_blank" rel="noopener noreferrer">Weaveworks</a> la compañia creadora de <a href="https://www.weave.works/oss/scope/" target="_blank" rel="noopener noreferrer">Weavescope</a> ofrece diferentes soluciones de automatizacion CI-CD, monitoreo y registros, una de las herramientas mas novedosas GitOps basado en Kubernetes.</p>
<p>&nbsp;</p>
<p>No olvides <a href="https://webmago.dev/#contact">contactarme</a> si requieres asistencia en tus proyectos.</p>
<p>&nbsp;</p>
<p>A continuacion dejo una serie de capturas de una de mis instalaciones de <a href="https://www.weave.works/oss/scope/" target="_blank" rel="noopener noreferrer">Weavescope</a>.</p>
<div id="attachment_760" style="width: 1034px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-760" class="size-large wp-image-760" src="https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.11.22-1024x570.png" alt="Filtrando por Contenedor" width="1024" height="570" srcset="https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.11.22-1024x570.png 1024w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.11.22-300x167.png 300w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.11.22-768x427.png 768w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.11.22-1536x854.png 1536w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.11.22-2048x1139.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-760" class="wp-caption-text">Filtrando los recursos por contenedor</p></div>
<p>&nbsp;</p>
<div id="attachment_761" style="width: 1034px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-761" class="wp-image-761 size-large" src="https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.21.25-1024x571.png" alt="Accediendo al contenedor" width="1024" height="571" srcset="https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.21.25-1024x571.png 1024w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.21.25-300x167.png 300w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.21.25-768x428.png 768w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.21.25.png 1431w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-761" class="wp-caption-text">En la ficha del contenedor se observan varios botones para efectuar operaciones tales como adjuntar, acceder a la terminal, refrescar, pausar, detener el contenedor.</p></div>
<p>&nbsp;</p>
<div id="attachment_762" style="width: 1034px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-762" class="size-large wp-image-762" src="https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.29.47-1024x567.png" alt="Accediendo a la terminal." width="1024" height="567" srcset="https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.29.47-1024x567.png 1024w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.29.47-300x166.png 300w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.29.47-768x425.png 768w, https://webmago.dev/buvytsan/2021/02/Captura-de-Pantalla-2021-02-16-a-las-14.29.47.png 1432w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-762" class="wp-caption-text">Esta version grafica es un atajo a la instruccion &#8220;docker exec -it dbadmin bash&#8221;</p></div>The post <a href="https://webmago.dev/weavescope-metricas-administracion-visualizacion-en-tiempo-real/">Weavescope metricas, administracion, visualizacion en tiempo real</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kubernetes 1.20, no tengas pánico Docker seguirá disponible</title>
		<link>https://webmago.dev/kubernetes-1-20-no-tengas-panico-docker-seguira-disponible/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Fri, 04 Dec 2020 17:25:21 +0000</pubDate>
				<category><![CDATA[development]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[dockershim]]></category>
		<category><![CDATA[upgrades]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=655</guid>
					<description><![CDATA[<p>Hace unos días leí en Twitter un hilo sobre los cambios que se vienen en Kubernetes 1.20 y la depreciación de Docker como runtime de los contenedores entrando en su lugar Containerd, varios colegas mostraron su preocupación al respecto. So, Kubernetes is deprecating Docker support and you&#8217;re either nervous or confused. That&#8217;s okay! I would [&#8230;]</p>
The post <a href="https://webmago.dev/kubernetes-1-20-no-tengas-panico-docker-seguira-disponible/">Kubernetes 1.20, no tengas pánico Docker seguirá disponible</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Hace unos días leí en Twitter un hilo sobre los cambios que se vienen en Kubernetes 1.20 y la depreciación de Docker como runtime de los contenedores entrando en su lugar <a href="https://containerd.io/" target="_blank" rel="noopener noreferrer">Containerd,</a> varios colegas mostraron su preocupación al respecto.</p>
<blockquote class="twitter-tweet">
<p dir="ltr" lang="en">So, Kubernetes is deprecating Docker support and you&#8217;re either nervous or confused. That&#8217;s okay! I would like to help you understand what&#8217;s happening. A thread! 1/10</p>
<p>— Kat Cosgrove, but ✨festive✨ (@Dixie3Flatline) <a href="https://twitter.com/Dixie3Flatline/status/1334188913724850177?ref_src=twsrc%5Etfw">December 2, 2020</a></p></blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>Quienes trabajamos con Kubernetes o en Desarrollo de Software hemos usado Docker para desarrollar y generar las imágenes que finalmente usaremos en nuestro clúster, por supuesto que existen mas proveedores compatibles con <a href="https://opencontainers.org/" target="_blank" rel="noopener noreferrer">OCI</a> (Open Container Initiative) y esto quiere decir que las imágenes que generamos en Docker cumplen con esta normativa.</p>
<p>Ayer 3 de Noviembre 2020, Docker publico un articulo (en inglés) detallando quá sucederá con este cambio dándonos una tranquilidad a toda la comunidad que usa la tecnología de contenedores.</p>
<blockquote><p><strong><a href="https://www.docker.com/blog/what-developers-need-to-know-about-docker-docker-engine-and-kubernetes-v1-20/" target="_blank" rel="noopener noreferrer">What developers need to know about Docker, Docker Engine, and Kubernetes v1.20</a></strong></p></blockquote>
<p>En si, lo que se eliminará probablemente en un año será <a href="https://kubernetes.io/blog/2020/12/02/dockershim-faq/" target="_blank" rel="noopener noreferrer">dockershim</a>, por lo tanto, las imágenes que generes con Docker seguirán funcionando en tu clúster Kubernetes, el cambio es mas para los operadores y administradores de Kubernetes donde el acceso a la inspección de los contenedores usando comandos de Docker no podrán ser usados.</p>
<p>Así que mantén la calma y sigue usando Docker.</p>The post <a href="https://webmago.dev/kubernetes-1-20-no-tengas-panico-docker-seguira-disponible/">Kubernetes 1.20, no tengas pánico Docker seguirá disponible</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Recientes anuncios en Docker &#8211; &#8220;Pull Rate Limit Enforcement&#8221;</title>
		<link>https://webmago.dev/recientes-anuncios-en-docker-pull-rate-limit-enforcement/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Tue, 01 Dec 2020 02:35:03 +0000</pubDate>
				<category><![CDATA[codefresh]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[anuncios]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=643</guid>
					<description><![CDATA[<p>Hace mas de medio año, Codefresh anuncio que el almacenamiento gratuito que ofrecía para almacenar las imágenes Docker en tu cuenta serían deshabilitadas, pregunte cuál era la causa de este cambio, y la respuesta fue que se debía a que no era tan demandado el servicio; personalmente quedé con cierta inquietud, al menos en nuestro [&#8230;]</p>
The post <a href="https://webmago.dev/recientes-anuncios-en-docker-pull-rate-limit-enforcement/">Recientes anuncios en Docker – “Pull Rate Limit Enforcement”</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Hace mas de medio año, <a href="https://codefresh.io" target="_blank" rel="noopener noreferrer">Codefresh</a> anuncio que el almacenamiento gratuito que ofrecía para almacenar las imágenes Docker en tu cuenta serían deshabilitadas, pregunte cuál era la causa de este cambio, y la respuesta fue <em>que se debía a que no era tan demandado el servicio</em>; personalmente quedé con cierta inquietud, al menos en nuestro caso si lo usábamos y con bastante frecuencia. Así que  debería de  pensar en migrarlas a un tercero como <a href="https://cloud.google.com/container-registry/" target="_blank" rel="noopener noreferrer">Google Cloud Registry</a>, <a href="https://quay.io/" target="_blank" rel="noopener noreferrer">Quay</a>, el mismo <a href="https://docker.com" target="_blank" rel="noopener noreferrer">Docker</a> u otro proveedor.</p>
<p>Lo anterior hizo que trabajara en la creación del espacio en GCR, generar los permisos IAM, ajustar todos los pipelines en <a href="https://codefresh.io" target="_blank" rel="noopener noreferrer">Codefresh</a>  para enviar las imágenes resultantes, exportar las imágenes mas recientes y descargadas y por ultimo hacer los cambios en el cluster Kubernetes para que los deployments pudieran descargar las imágenes durante el proceso de CI/CD o regeneración.</p>
<p>Quienes hemos trabajado con Kubernetes existe un parámetro <code>ImagePullPolicy</code> cuyos valores pueden ser <code>Always</code> o <code>IfNotPresent</code>y dependerá del comportamiento esperado tomando en cuenta estas <a href="https://kubernetes.io/docs/concepts/containers/images/" target="_blank" rel="noopener noreferrer">recomendaciones</a>.</p>
<p>Recientemente <a href="https://docker.com" target="_blank" rel="noopener noreferrer">Docker</a> anuncio a través de un correo electrónico  que haría cambios para las descargas y retención de imágenes en su servicio.</p>
<p>Los descargas anónimas de imágenes solo podrán hacerse 100 veces en 6 horas, las descargas de tus imágenes en tu cuenta gratuita se extiende hasta 200 cada 6 horas; las cuentas Pro y Team y Large no tienen esta limitante ver comparativo en su pagina de <a href="https://www.docker.com/pricing" target="_blank" rel="noopener noreferrer">Precios</a>, dicha política entro en vigor en Noviembre 2, 2020.</p>
<p>Por otro lado, las retenciones de las imágenes solo estarán disponibles por seis meses, por lo que si tu imagen no es actualizada o descargada en ese tiempo será eliminada, este ultimo ha sido pausado ya que entraría en vigor en noviembre 1, 2020; y será retomado a mediados del año 2021.</p>
<p>Como recordaran, tenia duda si realmente <a href="https://codefresh.io" target="_blank" rel="noopener noreferrer">Codefresh</a> daría de baja el servicio por falta de uso, o por que le estaba generando un costo enorme mantener varias imágenes de todos los que formamos su plantilla de clientes, algo que también <a href="https://docker.com" target="_blank" rel="noopener noreferrer">Docker</a> acaba de hacer con su servicio.</p>
<p>Creo que el costo de <strong>$5.00 US siendo Pro</strong> en <a href="https://docker.com" target="_blank" rel="noopener noreferrer">Docker</a> vale la pena para tener nuestro Hub de nuestras imágenes de forma privada.</p>The post <a href="https://webmago.dev/recientes-anuncios-en-docker-pull-rate-limit-enforcement/">Recientes anuncios en Docker – “Pull Rate Limit Enforcement”</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>OctoberCMS &#8211; Migrando mas de una decada de contenidos</title>
		<link>https://webmago.dev/octobercms-migrando-mas-de-una-decada-de-contenidos/</link>
					<comments>https://webmago.dev/octobercms-migrando-mas-de-una-decada-de-contenidos/#respond</comments>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Fri, 27 Nov 2020 17:55:15 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[octobercms]]></category>
		<category><![CDATA[desarrollo octobercms]]></category>
		<category><![CDATA[prensa]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=619</guid>
					<description><![CDATA[<p>Con mas de catorce años de contenidos entre textos, imagenes y ediciones impresas en PDF funcionando bajo un sistema propietario llego el momento de mejorarlo, esto requeria al menos mantener el actual aspecto e integrar las mejoras de forma amigable y no comprometer el rendimiento y experiencia del usuario. Probamos varios &#8220;CMS&#8221; y ninguno me [&#8230;]</p>
The post <a href="https://webmago.dev/octobercms-migrando-mas-de-una-decada-de-contenidos/">OctoberCMS – Migrando mas de una decada de contenidos</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Con mas de catorce años de contenidos entre textos, imagenes y ediciones impresas en PDF funcionando bajo un sistema propietario llego el momento de mejorarlo, esto requeria al menos mantener el actual aspecto e integrar las mejoras de forma amigable y no comprometer el rendimiento y experiencia del usuario.</p>
<p>Probamos varios &#8220;CMS&#8221; y ninguno me daba la impresion de ser amigable y extendible, es decir, implementar mejoras en el menor tiempo.</p>
<p>El ganador, <a href="http://octobercms.com" target="_blank" rel="noopener noreferrer">October CMS</a>, los desafios fueron:</p>
<ul>
<li>Migrar todas los articulos y sus imagenes relacionados.</li>
<li>Mantener el vinculo de los articulos con su categoria.</li>
<li>Mantener el Look &amp; Feel actual.</li>
<li>Migrar todas las Ediciones Impresas (PDFs) manteniendo su fecha de publicacion.</li>
<li>Tanto para los articulos como para la edicion impresa se deberia mejorar las vistas para las redes sociales.</li>
<li>Integrar el canal de Youtube al sitio y su sistema de captura en el dashboard.</li>
<li>Generar un dashboard para cargar los PDFs de la Edicion Impresa del dia.</li>
<li>Integrar notificaciones push con <a href="https://onesignal.com/" target="_blank" rel="noopener noreferrer">OneSignal</a>.</li>
<li>Formulario de contacto, correos enviados via <a href="https://sendgrid.com" target="_blank" rel="noopener noreferrer">Sendgrid</a>.</li>
<li>Capacitacion a los usuarios en el uso.</li>
</ul>
<p>El mayor reto fue la migracion de la informacion de de los articulos y sus imagenes y convertirlo en el formato del <a href="https://octobercms.com/plugin/rainlab-blog" target="_blank" rel="noopener noreferrer">Rainlab Blog</a>, indudablemente se le hicieron algunas mejoras y ajustes, el blog al manejar una gran cantidad de informacion hacia el sistema muy lento y no proveia una buena experiencia por lo que tuvimos que optimizar algunas consultas e indexados en la base de datos.</p>
<p>Posteriormente el reto fue migrar las Ediciones Impresas a partir del 2012 sin perder la fecha de su publicación debido a que el anterior sistema generaba un calendario para su visualizacion, mismo que fue integrado usando la facilidad de <a href="https://laravel.com/" target="_blank" rel="noopener noreferrer">Laravel</a>/<a href="https://octobercms.com" target="_blank" rel="noopener noreferrer">October CMS</a>, al tiempo que se generaron los scripts de migracion, se generaron los Dashboards para la carga de las ediciones impresas y su acceso via <a href="https://octobercms.com/plugin/octobro-api" target="_blank" rel="noopener noreferrer">API con Octobro</a>.</p>
<p>El Look &amp; Feel no represento un mayor desafio, parte del codigo previo se hizo portable ya que el mismo estaba dividido en plantillas, haciendo mejoras para redes sociales e integracion de <a href="https://onesignal.com/" target="_blank" rel="noopener noreferrer">OneSignal</a>.</p>
<p>El formulario de contacto fue resuelto con el plugin <a href="https://octobercms.com/plugin/grofgraf-contactme" target="_blank" rel="noopener noreferrer">Contact Me</a> y la personalizacion del Look &amp; Feel del sitio.</p>
<p>Para mostrar los videos de Youtube se genero un dashboard/plugin para integrar las URLs y descripcion y mostrar los ultimos 2 videos en la seccion de TV.</p>
<h3>Conclusiones:</h3>
<p>Mantener la confianza y preservar los datos del sitio fue uno de los temas mas preocupantes por lo que se hicieron varios ensayos previamente en un sistema aislado antes de lanzar a produccion, el entrenamiento de tan solo 2 dias tanto en el manejo,  alimentacion de noticias y envio de notificaciones fue suficiente para que nuestro cliente solo nos brindara 8 horas fuera de linea para su migracion final y seguir operando.</p>
<h4>Tecnologia y lenguajes usados.</h4>
<ul>
<li>VPS</li>
<li>MySQL</li>
<li>PHP 7</li>
<li>nginx</li>
<li>Bitbucket (git)</li>
<li>October CMS</li>
<li>Javascript</li>
<li>CSS3</li>
<li>HTML5</li>
<li>Youtube</li>
<li>Sendgrid</li>
<li>Cloudflare</li>
<li>Docker</li>
</ul>
<p>Sitio Cliente: <a href="https://diario21.com" target="_blank" rel="noopener noreferrer">Diario 21</a></p>The post <a href="https://webmago.dev/octobercms-migrando-mas-de-una-decada-de-contenidos/">OctoberCMS – Migrando mas de una decada de contenidos</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
					<wfw:commentRss>https://webmago.dev/octobercms-migrando-mas-de-una-decada-de-contenidos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Codefresh Desplegando en Kubernetes</title>
		<link>https://webmago.dev/codefresh-desplegando-en-kubernetes/</link>
					<comments>https://webmago.dev/codefresh-desplegando-en-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Tue, 17 Sep 2019 12:00:55 +0000</pubDate>
				<category><![CDATA[codefresh]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[ci/cd]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[github]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=1</guid>
					<description><![CDATA[<p>Hace unos meses tuve el reto de migrar a un cliente con sus aplicaciones monoliticas a Kubernetes. Mi lectura incluyo cursos sobre lo que Kubernetes era, como funcionaba, beneficios y los retos a resolver, despliegues blue/green, entre otros. Previo a ello manejaba alrededor de 25 servidores en donde en conjunto se alojaban los Fronteds, APIs, [&#8230;]</p>
The post <a href="https://webmago.dev/codefresh-desplegando-en-kubernetes/">Codefresh Desplegando en Kubernetes</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Hace unos meses tuve el reto de migrar a un cliente con sus aplicaciones monoliticas a Kubernetes.</p>
<p>Mi lectura incluyo cursos sobre lo que Kubernetes era, como funcionaba, beneficios y los retos a resolver, despliegues blue/green, entre otros.</p>
<p>Previo a ello manejaba alrededor de 25 servidores en donde en conjunto se alojaban los Fronteds, APIs, Admin, cache, Base de Datos y servicios adicionales.</p>
<p>Hacer un despliegue en momentos operativos nos ocasiono en mas de una vez caidas donde tuvimos que hacer un rollback de emergencia.</p>
<p>Durante mi entrenamiento en Kubernetes tuve la experiencia de probar varios entornos CI/CD, entre ellos: Bitbucket pipelines, Circle CI, entorno local Jenkins.</p>
<p>Varios de los problemas que tuve, Codefresh ya los habia analizado y comparado, incluso mi entorno local infructuso de Jenkins -requiere de varios equipos y horas para tunning-, por lo que me di a la tarea de adentrarme en su interface y lenguaje <em>yaml</em> para codificar los pipelines y condicionales de despliegue.</p>
<p>Cabe mencionar que su equipo siempre estara listo para ayudarte, algo que tuve desde el primer momento que conoci a Maya -no es un bot- quien te dara una respuesta o canalizara con un especialista.</p>
<p>Codefresh te ofrece una version gratuita con una cantidad razonable de builds para que lo conozcas, las cuales agoté en el curso del PoC, ellos gentilmente me obsequiaron mas para concluir con mi Prueba de Concepto.</p>
<p>Codefresh esta basada en una tecnologia Docker in Docker, es decir, construyes tus imagenes Docker y testeas en un contenedor.</p>
<p>Codefresh no solo hace despliegues a entornos Kubernetes, tambien hace despliegues a entornos &#8220;Legacy&#8221;, esas apps que aun se resisten a migrar a este entorno.</p>
<p>Te preguntaras, mi cluster Kubernetes esta detras de mi firewall, puedo hacer el despliegue?, la respuesta es si, personalmente yo experimente este entorno con exito.</p>
<p>Codefresh se integra con <strong>cualquier</strong> proveedores de Kubernetes, incluidos los personalizados.&#8221; (ya que por medio de la opción &#8220;custom&#8221;, lo unico que se require es la IP/hostname, el certificado, etc.. y listo, ya nos podemos integrar.. sin importar donde este hosteado</p>
<p>Volviendo al tema de los despliegues, con Codefresh implemente su imagen de despliegue Blue/Green, imagina hacer un deploy de 16 contenedores de un microservicio sin tener una caida; con ellos fue posible hacerlo, incluso aplicar el escalado horizontal una vez que la nueva version ha sido publicada y recibir una notificacion en Slack en caso de exito o falla.</p>
<p>Estaras pensando en gitOps, por que no, recientemente vi un webinar donde usaron Terraform para hacer despliegues usando Github y Codefresh.</p>
<p>Por que no te das una vuelta por su sitio y pruebas las bondades que <a href="https://codefresh.io/" target="_blank" rel="nofollow noopener noreferrer">Codefresh</a> tiene para ti, <a href="https://codefresh.io/" target="_blank" rel="nofollow noopener noreferrer">https://codefresh.io/</a></p>The post <a href="https://webmago.dev/codefresh-desplegando-en-kubernetes/">Codefresh Desplegando en Kubernetes</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
					<wfw:commentRss>https://webmago.dev/codefresh-desplegando-en-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
