It works similar to composer or npm. In the root of the project you have a .bowerrc file with all dependencies, which are then pulled from remote repository and installed locally in your project.
Everything worked fine with your Bower remote repositories, but suddenly you get some strange issues like ENOTFOUND in your Bower install or update?
The reason for this is that Bower recently moved their registry from Heroku to their own server, so the URL changed.
In order to fix this issue, in the remote Bower repository configuration (inside your .bowerrc file) change the registry URL from https://bower.herokuapp.com to https://registry.bower.io.
After that change run bower install and all should work just fine.