If you are operating on a totally greenfield project, everything that we have discussed so far will work perfectly. The full variety of SaaS, PaaS, and IaaS integrations means that your serverless code will happily operate with any set of requirements. Where things tend to get tricky is legacy systems. Whether they are written in a programming language that is no longer supported inside your firm, are monolithic and difficult to extend, or are completely black box, these applications do tend to perform vital business functions and therefore cannot be left out in the cold. If there is an API then integration is straightforward, but sadly there often isn't one. Either a gargantuan development effort needs to be made to replace them or they need to be integrated into the new architecture.
Serverless can come to the rescue for most cases, although...