These self-contained, bite size pieces of code could be thought of as functions, that when provided with the appropriate parameters, could return the answer to a question. An everyday example could be searching for directions based on postcode, these types of functions provide a service to the thing that called them. A few years ago, functions or services similar to these were mostly used to integrate internal systems, they formed part of the Application Programmers Interface (or API).
Modern APIs often form the core of an organisation intellectual property and are usually available for consumption by external clients such as businesses, partners and end customers.
The growth of these public APIs is increasingly pervasive (http://nordicapis.com/tracking-the-growth-of-the-api-economy), a company could be doing something simple like using another companies Map API to show office locations to using a third-party API to authentic users and grant them access to services.
Performance of these shared services is becoming critical as it has a direct impact on end-user experience. The popularity of mobile applications has taken this further, exposing the public APIs of these companies to a huge number of users, meaning high visibility should they fail.
For this very reason, organisations adopting component-based architectures not only need to ensure the services they provide function but that they are capable of supporting the large volumes of consumers that will be accessing them. Having non-functional test strategies in place for component and integration testing reduces the risk of unexpected performance issues later in the development life cycle. Consider the analogy of an engine, if we tune each and every component, when we assemble (or integrate) the various parts of the engine together and turn it over, it should be running at maximum efficiency.
For Web technologies, Web services were one of the first examples of these shared services, while the current trend is to rely on REST APIs. These micro services are becoming mainstream for new application development.