In the ancient world oracles were people through whom the Gods spoke directly to the inhabitants of earth. In the blockchain and crypto world oracles are a service that provides off-chain data to smart contracts running on a blockchain.
On-chain functions, i.e. smart contracts, cannot access real world data on their own. This is problematic when a smart contract is trying to provide the real-time price of financial assets to users, or when it needs to determine the outcome of a sporting event for a gambling protocol, or even when it has been asked to use something measurable in the real world, such as the temperature or quantity of snowfall, in its calculations. Oracles can feed any real world data onto the blockchain for use by smart contracts.
Data is collect it in a variety of ways: APIs, websites, sensors, etc, and can be manual input by humans. This data is collect by nodes and is then passed on to the oracle service that then supplies the smart contract with the data. Having one node supplying data means a central point of failure, and a high potential for manipulation of the data. As a result oracle services usually use a network of nodes to build a consensus of the correct data point and to prevent the data from being manipulated, thereby helping to ensure trust in the data they supply.