TL;DR: How to deploy pgbouncer on Kubernetes to allow use more database connections


If you develop apps using frameworks such as Django o RoR, you have probably faced the following problem/error.

FATAL: sorry, too many clients already

As you know, these kind of frameworks uses a database connection pool with the objective of to reduce the database connection latency.

That’s is great always which your database is optimized to have a lot of connections.

As you can infer, it’s not the case of Postgres.

Each Postgres connection uses about 10 MB, altough most of the time they are idle.


TL;DR: How to use a Wordpress helm chart to set up a marketing frontend quickly and easily.

The marketing frontend

Nowadays it’s rare to find a marketing page or website (landing, portfolio, product specs, …) which doesn’t use Wordpress.

I’m not going to enter in its benefits in detail, just enumerate the most important:

  • Ease of creating content (anyone can do it, no programming skills required).
  • SEO-ready.
  • A lot of plug-ins and themes.
  • Great support and adoption.

But is has a big cons: plug-ins vulnerabilities.

For that reason, it’s very important to isolate any Wordpress instance of business logic. …

TL;DR: Build a static web container, push into your container registry, deploy it and ingress with free SSL certificate with just a “git push”.


There are a lot of options to publish and to consume static web content in Internet. From AWS S3 static web site to a simple site.

This method uses the Rancher pipelines feature. Rancher pipelines is the equivalent to GitHub Actions or Bitbucket Pipelines. It’s a way to do CI/CD tasks or whatever that you want to automate tasks.

After the pipeline is configured, just only need to do a “git push” to keep the…

TL;DR: The API definition and documentation must be in a separate repository.


In the desktop or CLI apps era, you probably only had one folder where you would put all your code.

When the CVS arrived, you put that folder in version control.

With the Internet explosion, the develop paradigm turns into a client/server pattern.

In this case, it’s normal to split the project into two separate repositories: one for the backend/server and another for the frontend/client. Not?

There are several reasons to do that split.

For me, the most important is that the software cycle of each component is…

TL;DR: How to start to develop and deploy microservices with Go Micro ecosystem on a Kubernetes cluster.


Go micro is a microservices ecosystem for developing microservices without the “glue” boilerplate code (registry, authentication, broker, …)

Just focus on your business logic code (aka “the handlers”).

With its latest version, v3, it’s pretty easy to develop microservices.

It’s an ecosystem because go-micro beyond a framework. It includes several core services such as authentication, broker (pub/sub), KV storage, API proxy, gRPC proxy, etc.

The default message protocol is gRPC.

gRPC uses an efficient data binary encoding based in a data schema, protocol…

TL;DR: How you can to enable the code completion for your Visual Studio Code IDE


The code completion is one of the most worth and important features of an IDE. Since the first version of Visual Basic or Visual C++, the presence of “IntelliSense” feature improved the productivity of thousands of programmers.

Normally, to create a custom code-completion bundle for your favorite programming or scripting language is a non trivial task.

But in the case of JSON formats, that task is not so hard.

The JSON Schema

As you probably knows the JavaScript Object Notation (JSON) is a structureless format.

You can define…

TL;DR: I’ve release a pure-go Apache H2 Database SQL driver for Golang. You can checkout here: h2go


Apache H2 is a light weight and high performance SQL Database written in Java.

It’s (almost) 100% ANSI SQL-99 compatible and it can store the data in files or in-memory. You can embed in your Java project or using with client/server pattern.


Some months ago, I worked in a “tech debt” project where a lot of business logic was coded as SQL sentences.

The goal was significantly improve the performance and scalability.

We chosen Go as programming language for its performance and flexibility…

TL;DR: How to patch a node module package after execute npm install

Why the hell do you need to patch a node module package?

Sometimes you are working in a npm project and a module dependency not works properly. You can submit a issue to its CVS (normally GitHub) but you can’t wait until the authors resolve it or approve your PR.

What can we do then? Well, we can patch the package after its installation.

We use a real example: Liferay Angular portlet build process.

Life Angular portlet

To build a 100% Angular Liferay portlet, we use a Liferay’s support libraries (lnbs-*).

It’s works perfectly if we build for a production environment. But, what’s…

TL;DR: How to configure your Angular project to use a backend while your are developing in local mode.

Rarely you have to develop an isolate Angular app. The normal thing is that it has access to a backend and/or consumes one or more APIs.

Then, you starts the development in your local computer and when you write your service for access to the backend or API, and access with your browser to http://localhost:4200...

Surprise! Probably you have a CORS problem… (at least)

TL;DR: Recently (June 2020) Hetzner added a cloud native load balancer with Kubernetes support. Learn how to use it.


Until a couple of months ago (June 2020) Germany Hetzner Cloud provider did not have a native cloud load balancer in its portfolio.

To achieve a “LoadBalancer” service in an Hetzner Kubernetes cluster you must to use a software solution like as MetalLB.

I wrote this previous post about how to create a Rancher Kubernetes cluster on Hetzner cloud using MetalLB.

Now we are going to see how to create a Kubernetes cluster using the new Load Balancer service already available…

JM Robles

CTO @ & Beyond-Full-stack developer #go #python #kubernetes

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store