Había una vez un WordPress

Erase una vez un bonito blog WordPress … que corría feliz y libre por las tierras de una instancia. Allí era muy amígo de MySQL que también había nacido en esa misma instancia, y que se dedicaba a guardar los datos que, casi en secreto, le daba WordPress. Entre los dos habían creado una parcela en wp-config donde plantaban y cosechaban archivos. El orgulloso dueño de la instancia agregaba cada tanto algun plugin para lograr mejores resultados o modificaba el entorno para hacerlo más bonito, con cambios desde el galpón de themes.

Fue una época de felicidad.

Pero aparecieron «Los Innovadores» que le plantearon al dueño de la instancia muchas dudas: ¿que pasa si se cae? ¿hasta cuántos clientes simultáneos puedes recibir? ¿cómo lo migras? ¿es resiliente?

Y así el dueño de la instancia no conseguía conciliar el sueño. Por las noches se levantaba y miraba temeroso la instancia, consultaba las gráficas y el monitor, hasta hablaba con otros dueños de otras instancias.

Una noche, en que el dueño de la instancia caminaba por enésima vez en su sala, abrumado por el temor de que algo le pasara a su bonito blog, se presentó un hada que brillaba en la oscuridad y, tras enterarse de las preocupaciones del dueño de la instancia, solo le pronunción un conjuro mágico:

ku-ber-ne-tes

El rostro del dueño de la instancia se iluminó con el brillo equivalente al que emitida el hada. Esa noche, luego de mucho tiempo, logró volver a dormir y se selló el destino del blog.

A la mañana siguiente WordPress fue arrancado de la instancia que lo vió nacer para ser clonado en un laboratorio de última tecnología y nunca más se tuvo noticia ni de él ni de su felicidad. Ahora WordPress era una imágen que se ponía a correr, ya no en una instancia… ahora en un cluster, que es un lugar que no se sabe bien dónde queda.

MySQL, su fiel y productivo compañero, tuvo una peor suerte: fue sacrificado.

De aquella hermosa instancia solo quedó una valija con lo que había en la parcela wp-content y un pequeño estuche que contenía aquello que con amor habían juntado WordPress y MySQL: los datos SQL.

Ahora el blog pasó al control profesional de un Team de Desarrollo. Los datos SQL fueron entregados a la custodia de un Señor RDS, quién con mucha sobriedad entregó a cambio un Contrato de Calidad de Servicio. El contendio de aquella hermosa parcela wp-content fue desplegado en un volúmen (¿EBS?) que con entiquetas y unos pases mágicos de volumen claim permite que accedas a su contenido.

Nunca más se sintió felicidad, pero ahora el Team de Desarrollo tenía respuestas para todas aquellas dudas que atormentaron en el pasado.

Hasta el día que un desarrollador junior del del Team de Desarrollo abríó un mensaje en el Slack que decía:

«Voy a hacer una modificación, pero quisiera hacerlo en una copia ¿cómo hago?»

Eso… eso es otra historia… más triste aún.

OpenShift

openshift

A partir del 8 de diciembre de 2014, este blog está alojado en OpenShift, el PaaS de RedHat y quiero compartir mi experiencia de uso y configuración de un PaaS.

Un PaaS es servico al cual se le entrega la aplicación y más o menos auto-mágicamente la aplicación queda presentada en Internet.  En el caso de este blog la aplicación es WordPress por lo que me limité a subir el código  (de mi template, idioma, etc.) y mis datos (archivos) y aquí lo estás viendo.  Por otro lado, el PaaS permite despreocuparse de la infraestructura y la plataforma, es decir, que no debo pensar en la versión del sistema operativo ni su actualización, su configuración, las políticas de seguridad, la red, los usuarios, en fin, nada que no sea estrictamente mi aplicación.

Obviamente, un servicio PaaS es más caro que un servicio de infraestructura de cloud computing (IaaS), el cual a su vez es más caro que un simple VPS fuera de una arquitectura de cloud computing, solamente por el hecho de que hay servicios que alguien está prestando y sobre los que tu no debes preocuparte.

Pero volviendo a OpenShift debo decir que mi primer impresión ha sido muy positiva y creo que hay cosas que diferencian a esta oferta de PaaS sobre otras.

OpenShift ofrece «contenedores» que llama gears y que en la cuenta gratis se pueden tener hasta 3 de los más chicos.  Los gears poseen quota de recursos por cgroups y están orientados a alojar una aplicación cada uno.  Si bien se podría alojar más de una aplicación, solo un dominio internet puede referenciar a cada gear y creo que no vale la pena el esfuerzo intelectual e alojar muchas aplicaciones en uno solo y luego mantenerlas.

Adicionalmente, Openshift ofrece servicios que pueden ser incoprorados a un gear y que llama cartridges. De esta forma se puede levantar un gear con PHP y luego agregarle MySQL, luego CRON, luego POSTFIX, etc., según la aplicación vaya requiriendo.

Aquí dejo un esquema de la arquitectura de openshift completa:

openshiftcompletepicture

aunque sugiero ir a un sitio interactivo que explica cómo OpenShift funciona de una forma muy dinámica y comprensible.

Openshift ofrece aplicaciones pre-instaladas con las cuales iniciar un gear, como WordPress, Cacti, Redmine, Drupal, OwnCloud, Tomcat, Node.JS, etc., o simplemente lenguajes para luego montar nuestra propia aplicación; Ruby, Python, Java, PHP.

Captura de pantalla 2014-12-09 a las 3.28.29 PM

Una vez arrancado el gear con la aplicación pre-instalada se clona un repositorio git y luego se modifica la aplicación localmente, para hacer un ‘git push’ con los cambios, que quedan activados inmediatamente.

Para administrar openshift, además de la interfaz web, existe una herramienta de línea de comando muy simple de instalar con ruby. Pero lo que realmente me enamoró de OpenShift es la posibilidad de poder hacer ssh al gear y tener línea de comandos; poder subir mis datos (yo hice una migración) mediante scp o rsync, lo que acerca OpenShfital nivel que conozco (de IaaS) y en el cual me siento cómodo.

No he utilizado otros PaaS, pero a mi me ha resultado simple poner mi blog y mi wiki a correr en OpenShift; con una pequeña curva de aprendizaje para conocer su filosofía de trabajo para el mantenimiento de mi aplicación y mis datos, ya ven todo online.

 

Errores más comunes al usar WordPress

En el sitio jeffbullas.com, Ajeet Yadav ha publicado el artículo «The 15 Most Common WordPress Mistakes to Avoid», que describe algunos de los problemas más típicos que se encuentran cuando se navega entre blogs.

Desde mi punto de vista, los más representativos son:

#2. Mantener el usuario ‘admin’ para publicar artículos

Publicar con el usuario admin que ya se sabe que tiene todos los permisos (y no solo publicar) fomenta los ataques por fuerza bruta para lograr acceso. Crear otro usuario (con nombre distinto) para administrar y un usuario con permiso de publicar es una buena medida de seguridad.

#4. Mantener el subtítulo “just another blog”

Mantener el subtítulo por defecto, demuestra que no se le ha dedicado tiempo a conocer la herramienta, o uno es demasiado nuevo con ella.

#6. Categorías o etiquetas complicadas o inexistentes

A veces las categorías son extremadamente complicadas, pero a veces son inexistentes. Los blogs son fácilmente navegables y se obtienen buenos resultados de búsquedas si se han pensado las categorías y las etiquetas.

#8. No tener formulario de contacto

Es conveniente recibir feedback de los lectores y un formulario es mandatorio.

#11. Ignorar las actualizaciones

A veces se olvida que los códigos de WordPress son software libre y extán publicados, los analiza la gente buena y ‘los malos’. Los desarrolladores hacen un excelente trabajo mejorando el software, pero requiere de que los usuarios mantengan actualizado el código. Si no se hace, es muy probable que un día utilicen su espacio web para fines indeseados.

#13. Hacer difícil la navegación desde móviles

Hoy día es casi mandatorio que los temas elegidos puedan ser vistos desde móviles, o sindicados mediante RSS.

Seguramente leyendo el artículo de Ajeet Yadav se encuentren más cosas sobre las cuales prestar atención, pues hace una descripción más completa que la mía de cada problema y como actuar sobre el mismo.

jQuery para potenciar tu WordPress

Estaba buscando como mostrar las fotos publicadas en artículos de WordPress en forma más elegante y me encontré con varias extensiones que utilizan las funcionalidades de jQuery para mostrar las fotos, así que me puse a investigar un poco el tema.

jQuery es una biblioteca de javascript que permite modificar el contenido de una página web, sin necesidad de recargarla. Para las fotos (que era lo que yo buscaba) está bárbaro pues permite ver la foto sobre la misma página que esta la foto de-enlace pequeña y tener que usar el botón e Volver del navegador.

Pero la comunidad de desarrolladores de WordPress ha sido muy fructífera utilizando jQuery para distintas funciones, desde menues desplegables hasta listado de enlaces. En partícular en Jungus encontré un artículo «EL poder de WordPress y jQuery» que lista 25 extensiones muy novedosas.

Al final he optado por wp-slimbox2 plugin para mostrar las fotos. Comparado con jQuery Lightbox plugin me pareció más configurable (desde el panel de control) para las opciones de fotos independientes que necesitaba para el sitio, aunque hay que reconocer la semejanza de ambos.

Fix WordPress login 2.8.3 YA!!

Me avisa Sebastián Criado de la vulnerabilidad de la rama 2.8 de WordPress (la última) que permite saltearse el proceso de verificación de la clave de administrador, haciéndose eco de la noticia publicada en AltoSec Blog.

El fix es muy simple, está claramente explicado y se trata de cambiar una línea del wp-login.php.

Hay que reconocer la excelente herramienta que es WordPress y lo avanzado de su código y prestaciones, pero esta carrera de cerrar agujeros que tiene acostumbrados a todos sus usuarios cansa un poco. A veces me pregunto si no debería usar SSI en base a páginas html estáticas…. aunque por supuesto que es un razonamiento propio de una incomodidad momentánea; pues de última estoy muy agradecido que WordPress tenga un sistema de verificación y arreglo continuo de problemas (en contraposición del software comprometido con el marketing, que guarda en secreto los agujeros hasta el próximo parc

Esta es la versión de WordPress 2.6

WordPress logo Gracias a Carrero que ha traducido el novísimo WordPress 2.6 al Español, este blog ya corre esa versión y la página de bienvenida cuando ingreso dice «Esta es la versión de WordPress 2.6»

Y si, confieso que esta vez he corrido detrás de la zanahoria, que estoy dispuesto a parchar cualquier posible problema de seguridad que aparezca. Y si, también confieso que para la versión 2.5 fui bastante más pesimista y esa versión solo movió este blog, una vez que pasó un tiempo prudencial.

El equipo de desarrollo e WordPress se merece un aplauso de pie, ya que han trabajado intensamente para esta nueva versión que arregla más de 193 problemas y agrega varias funcionalidades muy interesantes.

WordPress 2.3

WordPress 2.3 Hace ya unos días que los desarrolladores de WordPress (el software con el que corre este blog) lanzaron la nueva versión y decidí encarar el tema de actualizar. Si bien los procesos de actualización recomendados (aNieto2k) son simples, yo prefiero intstalar todo desde cero, teniendo en un momento ambos blogs funcionando y migrando las cosas de a una; principalmente cuando no todos los plugins son compatibles. Y ya que estamos… actualicé a la última versión del tema que disponibiliza su autor.

Entonces puse manos a la obra… comencé por descargar la versión en castellano que disponibiliza Carrero (leer instrucciones), el tema que uso e instalar todo desde cero.

El primer problema fue la incompatibilidad de plugins, pero fue muy útil el sistema de notificación de versiones de plugins que tiene el WP 2.3 (aunque algunos opinan lo contrario). Así que tuve que ir actualizando los plugins de a uno.

También el tema me dio bastante trabajo para dejarlo en español, ya que no es 100% internacionalizado (este es un trabajo que aún no he completado). Pero gracias a diff me fue simple comparar e introducir las modificaciones que había puesto en el tema, aunque el total del trabajo me insumio unas cuantas horas.

Por último, las famosas etiquetas… que aún tengo que aprender a usarlas… pero ya somos 2.3!