Saltar al contenido

Blog técnico | El blog como código

Habrán notado que nuestro blog se ha sometido recientemente a un lavado de cara. Si bien el rediseño de los sitios de portada es bastante común, en nuestro caso, esto representó un cambio mayor. Nos dimos cuenta de que no tratábamos nuestro blog con los mismos principios que aplicamos al resto de nuestro trabajo.

De donde venimos

Cuando lanzamos nuestro blog tecnológico en 2016, queríamos crear una forma de que los ingenieros compartieran con el mundo las cosas que estábamos aprendiendo. Teníamos dos objetivos al hacerlo: en primer lugar, devolver a las comunidades que nos habían ayudado a llegar a donde estamos y, en segundo lugar, mostrar el gran lugar de trabajo que es (¿He mencionado que estamos contratando? Para ello, era importante que tuviéramos una forma de distinguir entre el contenido de los ingenieros y el de los autores de los cursos. Nuestro departamento de marketing fue muy complaciente, ayudándonos a construir un sitio visualmente distintivo en /tech-blog en su CMS.

Blog técnico | El blog como código
Blog técnico | El blog como código

Desde el principio, elegimos usar un repositorio git para almacenar y proteger nuestro contenido.ya que lo estábamos usando para todos los demás textos importantes con los que trabajábamos, tenía sentido.el formato es importante, pero no es algo en lo que queramos centrarnos en las entradas de nuestro blog (especialmente mientras las revisábamos), así que elegimos escribir en markdown.nuestra creencia en la colaboración se extiende a la escritura (aunque nos emparejamos menos a menudo en inglés), así que usamos las peticiones pull para dar a todo el mundo la oportunidad de revisar lo que planeábamos publicar y ayudar a mejorarlo.

Sin embargo, cuando llegó el momento de publicar una entrada de blog, no fuimos tan buenos en el uso de las herramientas que construyen el resto de… Cada dos viernes, uno de los (pocos) desarrolladores con acceso completo a nuestro CMS fusionaba la siguiente entrada, y luego pasaba el tiempo convirtiendo manualmente la reducción a HTML. Los fragmentos de código eran especialmente frustrantes, porque implicaban un esfuerzo manual adicional para obtener el resaltado de la sintaxis.

Una mejor manera

Había varias cosas que sentíamos que necesitábamos para asegurarnos de que lo lográbamos con nuestro blog. En primer lugar, queríamos tener un proceso de publicación automatizado que cualquiera pudiera ejecutar. En segundo lugar, queríamos mantener las cosas lo suficientemente simples como para no gastar mucho tiempo en mantenimiento. En tercer lugar, queríamos asegurarnos de que se mantenía la continuidad: no queríamos romper los vínculos de nadie ni perder ninguna entrada del blog. Por último, necesitábamos ser capaces de mantener suficientes análisis para poder medir el impacto que tienen nuestros cambios.

Consideramos varias opciones de alojamiento, pero la mayoría de ellas no nos daban el nivel de control que necesitábamos para no romper ningún vínculo. Alojarlo nosotros mismos nos permitía un gran control, pero nos preocupaba que pudiera distraernos de trabajos más importantes.

Hugo utiliza rebajas y plantillas para crear páginas HTML estáticas que se pueden alojar en casi cualquier lugar. Como está escrito en Go, el motor de generación está disponible para una amplia variedad de plataformas, por lo que cualquiera de nuestros desarrolladores puede construir el sitio localmente para probar cómo se verá su entrada en el blog. La sencilla plantilla de metal desnudo nos permite construir todo el blog técnico en menos de un segundo, facilitando el tipo de bucles de retroalimentación rápida que intentamos construir cuando estamos desarrollando el resto del sitio.lo mejor de todo es que, como Hugo se basa en la reducción de precio, convertir todas nuestras entradas existentes era trivial (vale, construí un programa para hacerlo, pero probablemente podría haberlo hecho a mano casi tan rápido).

Aunque consideramos algunas opciones diferentes para alojar nuestro HTML estático, decidimos que la más sencilla (puesto que ya estamos en AWS) era simplemente alojarlo como un cubo de S3.Dejar el alojamiento a Amazon tiene dos grandes beneficios. En primer lugar, podemos reutilizar nuestra infraestructura CDN existente, lo que nos permite servir nuestro contenido rápidamente sin importar en qué lugar del mundo se encuentre. Segundo, como AWS está haciendo el trabajo pesado de construir y mantener la infraestructura de hospedaje, no tenemos que construir nuestro propio sistema de monitoreo y alerta. Si los clientes dependieran del tiempo de funcionamiento del sitio, eso podría ser algo que quisiéramos aumentar, pero para nuestro blog técnico, el SLA del tiempo de funcionamiento de S3 es más que suficiente.

Y así, a partir del 13 de mayo, cambiamos todo nuestro tráfico al nuevo sitio. Nuestro blog ahora tiene un conducto automatizado, completo con pruebas (no muchas, pero algunas), que se construye cada vez que un cambio se compromete a dominar. Cuando estamos listos para publicar un cambio, ya sea un nuevo artículo del blog o alguna mejora en el CSS, cualquier desarrollador puede hacer clic en un solo botón y desplegarlo en producción. Nuestro blog ahora sigue los principios de ingeniería que defiende.

¿Qué sigue?

Una cosa que sabemos es que hacer cambios fáciles y seguros no ralentiza las cosas. Seguiremos publicando entradas en el blog cada dos viernes, explicando cómo y por qué trabajamos de la manera en que lo hacemos. Además, estamos buscando algunas mejoras adicionales que deberían facilitar el reconocimiento de nuestros autores, a la vez que mejorar su capacidad para encontrar entradas relevantes. Esperamos que continúe uniéndose a nosotros mientras seguimos descubriendo mejores formas de desarrollar software.

Categorías: practicesTags: tech blog, devops