but without APIs, direct connection), and another app to retrieve MySQL credentials. (PHP app > conf app to connect to MySQL > MySQL)
I don't fully understand what you're saying here. I think I can still answer your questions, but if you have follow up questions you might need to explain this more.
My first question: Is it possible to say, keep 3 physical servers and start using the app on Cloud Foundry ?
Yes. The issue that you need to figure out is how will you route traffic to both apps such that your end users don't know the difference.
You already have a load balancer in front of your application, so one possibility might be to configure that load balancer to have Cloud Foundry has one of the backend servers for your app (more specifically the CF gorouters). You could then use the LB to configure what percentage of traffic goes to your apps running on stand alone servers and what percentage goes to your app running on CF.
Another issue would be sessions, assuming your app uses them. You might need to use Redis / Memecached for your session stores, if you're not already. I suppose you could use sticky sessions, but that would not be as good of a solution. The good news is that the PHP build pack on CF supports storing sessions in both Redis and Memcache, so as long as you can configure a similar setup on your stand alone server this really shouldn't be an issue.
Cloud Foundry doesn't allow us to have an X amount of servers, but rather have an instance when the app is needed/called (unlimited)
Not exactly true. With CF you deploy an application. That application by default will have one instance, but you can scale up to as many instances as your platform will support.
Application instances roughly correlate to stand alone servers or VMs, but the main difference is that many app instances can run on the same VM (they run in different containers on your Diego Cell VMs). The main thing to note about this difference is that in your stand-alone environment you application will likely have 100% of the CPU & RAM available. On CF, your app instance will get only the RAM you configure and it will have shared access to the CPU (CPU sharing is based on the amount of RAM assigned).
How can we then start using Cloud Foundry gently ?
See first question above.
Do we have to go 100% Cloud Foundry ?
No.
Or is there a way we can keep both ways at the beginning (Cloud Foundry + 3/5 physical servers) ?
See first question above.
My second question is a bit related to the previous : What to do about the MySQL database ? Should we go all 100% MySQL Service for Cloud Foundry ? Or can we keep the existing one for a moment ?
You don't have to do anything really. As long as your network permits it, you app on CF can talk to the same database and infrastructure as your app running on the stand alone servers.
Things to check to make sure: firewall access between CF & your database and security groups on CF (this control outbound network access for apps).
And finally, my third question related to the previous : Do we have to make the conf app a Cloud Foundry app too, to use if for the PHP app ? Can we keep it on physical servers and still use it as a service/service broker ?
Same answer as the database. You don't have to move the conf app so long as there is proper network access to this resource (i.e. the right ports are open).
Hope that helps!