Saltar al contenido

Clustering Mysql con Vitess

  • admin 

Clustering Mysql con Vitess

Viendo algunos de los proyectos con Golang que utilizan en Google, este me ha llamado la atención, porque es lo que utilizan desde 2011 con Youtube para mantener la BBDD de Mysql en cluster:

http://vitess.io/

https://github.com/youtube/vitess/

Entre sus funcionalidades, no solo mantiene el tema de la replicación y el shardening entre los nodos (en Youtube son decenas de miles de nodos con MySQL), sino que optimiza las operaciones que pueden sobrecargar la BBDD así como el uso de la caché, la gestión de los backups, etc…

FRR y Routers con Linux

  • admin 

FRR y Routers con Linux

Desde que hace unos meses los de Cumulus Linux anunciaran el uso en sus switches Linux de montar VPNs con VxLAN + EVPN (usando BGP para advertir las MACs de los equipos a los extremos remotos), y posteriormente anunciar que iban a remplazar el quagga de sus equipos por el FRR (un fork de quagga), el tema de usar servidores con Linux para remplazar a routes y switches de alto rendimiento ya está al alcance de todos.

El tema de VxLAN (transporte de VLANs encapsuladas por IP) usando como mecanismo de señalización y control las extensiones de BGP para advertir las MACs y comunicar las VLANs entre los puntos remotos permite hacer todo tipo de virguerías en los datacenters para transportar VPNs de nivel 2 y 3 de forma eficiente a gran escala y sin necesidad de tener que montar un core MPLS por debajo. A partir de la versión 3.0 del FRR ya se soportan todas las recomendaciones que permiten montar las EVPNs con VxLAN (son los drafts draft-ietf-bess-evpn:

https://github.com/FRRouting/frr/wiki/Major-Changes

Los del FRR se han puesto mucho las pilas para competir y llegar a superar incluso a los más avanzados, como Juniper y Arista.

Después en los grupos de operadores de red se han disparado las presentaciones de casos de uso y aplicaciones utilizando el FRR como equipos de core.

Aquí un ejemplo del hardware compacto para router de alto rendimiento (esto es del grupo de operadores de red suizo):

http://www.swinog.ch/meetings/swinog32/p/Manuel_Schweizer_Free-Range-Routing-FRR.pdf

Los equipos de 1U compactos a los que hace referencia son estos:

https://www.lanner-america.com/product/nca-5510/

Y efectivamente, soportan tarjetas de hasta 100G.

Aquí en la sesión anterior del swinog, otra charla sobre el tema de las VPNs multitenant utilizando el FRR con VxLAN + EVPN:

http://www.swinog.ch/meetings/swinog31/p/06_Attilla_de_Groot_Multi-tenancy_with_EVPN-VxLAN_in_Open_Networking.pdf

Hay muchos ejemplos del mismo tipo de solución. Aquí en la misma sesión que la anterior hay una charla de Huawei explicando en más detalle el tema del por qué es una buena elección y el por qué se está quedando desbancado el MPLS para dar ese tipo de soluciones a las VPNs de nivel 2 y nivel 3:

http://www.swinog.ch/meetings/swinog31/p/04_Christian_Kuster_VXLAN_-_Thinking_outside_the_(DC)Box.pdf

Desde hace cosa de un año voy siguiendo de vez en cuando esta solución, y por lo que veo ya ha pasado el punto de ser algo puramente experimental con unas cuantas soluciones y acercamientos de los principales impulsores a ser una solución disponible y 100% open source. Ya no hace falta comprarse un switch de Cumulus con licencias para tener una solución lista para producción. Ahora es sólo cuestión de poner una pareja de servidores y tarjetas de red intel conectadas a los switches del core para dar ese tipo de funcionalidades. Esto ya está disponible, pero dentro de unos meses alcanzará un nivel de madurez bastante extenso a todo tipo de plataformas, incluidos los routers CPE.

Me han sorprendido mucho los del FRR. Hace unos meses pensaba que se iba a quedar un poco como el quagga con unas cuantas mejoras adicionales y poco más, pero se han puesto las pilas a base de bien.

Documentando APIs

  • admin 

DOCUMENTANDO APIs

Filón de herramientas que generan la documentación automáticamente en la web de las APIs generadas a partir de los ficheros OpenAPI.

Voy poniendo todas las que he encontrado, porque son unas cuantas y el resultado es cuestión de gustos.

La que veo más avanzada en cuestión de actualizaciones y contribuyentes es Redoc:

https://apis.guru/blog/redoc-release/

https://swagger.io/blog/redoc-openapi-powered-documentation/

https://github.com/Rebilly/ReDoc/

Pero no es la única existente, y hay otros proyectos que tampoco tienen mala pinta, como Spectacle:

https://github.com/sourcey/spectacle

O DapperDox (este está hecho en golang ;-)):

http://dapperdox.io/

https://github.com/DapperDox/dapperdox

Por cierto, el propio Swagger tiene su sistema de generación de documentación, pero por lo que se ve en los blogs todo el mundo coincide que el Swagger es más indicado para editar y validar los ficheros OpenAPI (es decir, es una herramienta más orientada para trabajar en la parte de definición de los APIs), que para generar la documentación, al menos no de la forma tan extensa en que lo hacen las herramientas anteriores:

http://idratherbewriting.com/learnapidoc/pubapis_swagger.html

https://github.com/swagger-api/swagger-ui

Por ultimo, os dejo un enlace de un blog donde hace un repaso a bastantes herramientas de documentación de APIs, no solo de OpenAPI. Lo he encontrado después de haber encontrado los proyectos anteriores, pero lo veo bastante completo por si queréis explorar otras herramientas:

https://pronovix.com/blog/free-and-open-source-api-documentation-tools

Por cierto, los de APIs.guru son expertos en la publicación y análisis de APIs (son los creadores de Redoc) en un sistema llamado GraphQL (aparte del OpenAPI) y tienen varios proyectos sorprendentes para sacarle el máximo partido a esta forma de trabajar con modelos de datos:

https://apis.guru/

http://graphql.org/

El GraphQL lo usan para sus aplicaciones móviles la gente de Facebook, por ejemplo. Uno de los proyectos sobre GraphQL que han desarrollado los de APIs.guru es un navegador de GraphQL:

https://github.com/APIs-guru/graphql-voyager

La demo que tienen sobre varios APIs (incluido el de GitHub) es impresionante. Merece la pena echarle un vistazo para darse cuenta del potencial que tiene (p.e. elegid el esquema de GitHub y uno de los nodos raíces):

https://apis.guru/graphql-voyager/

Una visión motivadora sobre la crisis como una oportunidad

  • admin 

Una visión motivadora sobre la crisis como una oportunidad

«No pretendamos que las cosas cambien, si siempre hacemos lo mismo. La crisis es la mejor bendición que puede sucederle a personas y países, porque la crisis trae progresos. La creatividad nace de la angustia como el día nace de la noche oscura. Es en la crisis que nace la inventiva, los descubrimientos y las grandes estrategias. Quien supera la crisis se supera a sí mismo sin quedar ‘superado’.
Quien atribuye a la crisis sus fracasos y penurias, violenta su propio talento y respeta más a los problemas que a las soluciones. La verdadera crisis, es la crisis de la incompetencia. El inconveniente de las personas y los países es la pereza para encontrar las salidas y soluciones. Sin crisis no hay desafíos, sin desafíos la vida es una rutina, una lenta agonía. Sin crisis no hay méritos. Es en la crisis donde aflora lo mejor de cada uno, porque sin crisis todo viento es caricia. Hablar de crisis es promoverla, y callar en la crisis es exaltar el conformismo. En vez de esto, trabajemos duro. Acabemos de una vez con la única crisis amenazadora, que es la tragedia de no querer luchar por superarla.»

Albert Einstein