Hey Ingo,

The Flexible Environment (from this point forward, "Flex") is a kind of 
bridge between App Engine and Compute Engine. Flex apps run within a Docker 
container on a Compute Engine instance or pool of instances, and requests 
to the app via appspot.com are load-balanced to go to any one of these 
instances (depending on your scaling settings, the pool's size and growth 
behaviour will be dependent). 

Basically, our SDK (gcloud <https://cloud.google.com/sdk/gcloud/>) allows 
you to specificy either "vm: true" (in the case of "runtime: 
go/python27/java/php55/etc.") or "runtime: custom 
<https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml#general>"
 
in your app.yaml or appengine-web.xml (for java) config file. 

In the case of "vm: true", your traditional App Engine app will be deployed 
using a special compatibility runtime to a Flex environment, and in the 
case of "runtime: custom", the Dockerfile in your app's root directory will 
be used to build the image of the resulting container which is deployed to 
the Flex Environment (you would need to specify the base image using the 
Dockerfile FROM directive, and ensure a web server process is started and 
listening on the appropriate port). 

So, your Flex app is already running on Compute Engine. Therefore, you 
could use "runtime: custom", along with the appropriate go compatibility base 
image 
<https://cloud.google.com/appengine/docs/flexible/custom-runtimes/build#base_images>,
 
and simply specify the install / configuration instructions for statsd in 
your Dockerfile. Each instance of your application would have an installed 
and running copy of statsd, in that case. Although you may also want to 
simply deploy a Compute Engine instance running statsd which is reachable 
via its internal network IP from your app runtime instances, since that 
appears to be more in line with how statsd is meant to be deployed, as a 
standalone service within your network.

Does this help answer your questions? Let me know if anything is unclear or 
remaining to be discussed. 

Cheers!

Nick
Cloud Platform Community Support  

On Tuesday, May 10, 2016 at 10:55:27 PM UTC-4, ingo wrote:
>
> I built a small Golang app <https://github.com/ingojaeckel/weather-wear> 
> and deployed it to GAE's Flexible Environment. Right now this will create a 
> single Golang Docker container remotely at deploy time. For simple projects 
> similar to this one what is the best practice to add more dependencies that 
> run alongside the app  (like statsd)? I want to continue to run my app in a 
> container on GAE. But I want to run publicly hosted Docker images alongside 
> it (e.g. this one <https://hub.docker.com/r/datadog/docker-dd-agent/>). I 
> am looking for a way to run those multi-Docker instances still within GAE 
> to take advantage of high level of abstraction. And if possible I want to 
> avoid having to integrate with a Docker Registry. 
>
>
> Is this feasible on GAE or do I have to switch over to Google Compute 
> Engine <https://cloud.google.com/compute/docs/containers/container_vms> 
> or Google Container Engine <https://cloud.google.com/container-engine/>?
>
>
> Thanks!
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/a5f33606-c245-4186-8837-6200534513d8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to