Q. How can we know for any particular task(cloudlet) how many instructions we need?
Ans: As per my knowledge, Cloudlet length describes the number of instructions to be executed by/in that cloudlet (task), file size defines the memory (in bytes) taken by a cloudlet to store in VM memory(RAM), and output size (in bytes) is related to the output stream generated by a cloudlet (task), so it's linked with data transfer over the network by a cloudlet.
OR
I think as per the documentation , Cloudlet length specifies how many instructions need to be executed to get the task done. The input file size indicates the size of source code of cloudlet + input data(if any) in bytes. I hope from this it is clear enough to understand that we can't submit a zero length cloudlet.
Q. Why do we still need VM migration whereas we have Containers and Container Migration?
Ans: In a cloud scenarios, containers are running inside the VMs as it is not secure to run containers of different customers in a common OS. VM migrations usually is done for some maintenance or load balancing reasons without costumers service being interrupted. So I can say, VM migration and Container migration have two different reasons.