What is the best practice on exposing apps to internet?

A couple of resources: