<p>I'm surveying the google cloud tools that could be used to: deploy and update a micro-service shaped application. So far I focused my attention on two solutions:
(a) Container clusters; (b) Managed Instance groups plus autoscaler. Could you please help me to decide which way I should go. You'll find below some details and requirements:</p>

<ul>
<li>The application PULLs tasks from a pubsub topics and write results to a another pubsub topic;</li>
<li>Tasks are independent from each other; </li>
<li>The number of worker should autoscale wrt. the CPU usage level;</li>
<li>Each worker uses up to 10GiB of RAM. </li>
<li>At startup time a worker needs several minutes (&lt;=5mn) to be ready to process tasks;</li>
<li>Out of the box rolling update is a plus; </li>
<li>Workers share a memcache sever, except that, there is strictly none communication of whatsoever kind between workers;</li>
<li>I suspect there is no need for load balancing, since a worker will process a new task as soon as it can;</li>
<li>Logs are pushed to a collection API (google cloud logging or third party).</li>
</ul>

<p>I did a MWE for solution (a) and solution (b). So far I have the sentiment that I won't use the kubernetes features. Hence I'm more inclined towards solution (b).</p>

<p>What do you think ? </p>

<p>Bests,
François.</p>

<p>I would say that the main difference between hosted Kubernetes and Managed Instance Groups [MIGs] is that Kubernetes operates on the abstraction level of Containers and MIGs operate on VM instances. So it is easier for you to package your software into containers, then go for Kubernetes, if it is easier to package you software into an image then use MIGs. </p>
