There has always been a relationship between an application and the platform and services which run it. For a long time, that relationship was very tight and encompassed a lot of areas related to the application design, from the language the application could be written in to administrative behaviors like monitoring and logging, even things like transaction management, frontend UI development, or integration methods.