Recently worked on migrating a number of services (largely CPU bound) to Graviton 2. It was a bit of hit and mess. For some services, it worked great. Very negligible hit to performance, and since equivalent Graviton2 instances cost 20% less, it was a no brainer. Others needed a little bit of rewrite. There were also a couple that just didn't see good performance on ARM (very branchy code)