Layer 3 (mostly IP) generally relies on the underlying layer-2 network (mostly Ethernet or Wi-Fi) for delivery. Just like a layer-2 network uses layer-1 links to actually move the bits.
The difference in moving data at layer 1, 2 or 3 is the complexity of the devices. Layer-1 devices (repeaters) just copied bits - simple, yet inefficient and long obsolete. Layer-2 devices (switches) intelligently forward frames and are very efficient, but layer-2 networks are limited in size. Layer-3 devices (routers) can handle networks of (theoretically) any size but their complexity initially prohibited building them in hardware. Software routers were slow and expensive, so they were only used where absolutely necessary. Of course, a router needs to have hardware for layers 2 and 1 as well.
Even though it seems that Layer 2 access layer solutions are slowly being replaced by blazing fast Layer 3 solutions.
The author describes the basic network architecture over time. Formerly, only layer-2 networks were used within a company network connected to the outside by (slow and expensive) routers. As technology advanced, routers became hardware-based and much faster. On the other hand, switches became more advanced and learned basic routing (layer-3 switching).
At the same time, networks grew much larger than they used to be, rendering the "layer 2 throughout" design obsolete - layer-2 networks only scale in a limited way.
With performance up and cost down, it became common design to use routers and layer-3 switch in the network core. Today, the layer-3 approach has grown outside from the core into the aggregation layer, enabling even larger networks. The next step is to also use routing instead of switching towards the access layer where the clients are connected.
Spanning Tree Protocol (STP) is very useful to organize your layer-2 connections. It takes care of preventing bridge loops in case of redundant mesh links in your network - bridge loops usually cause broadcast storms and MAC table instabilities that can take down your entire network.
With a network using layer-3 connections exclusively, you wouldn't need STP - but that would mean that each link is a subnet of its own and all connections between links are routed. While this is reasonable between the core and the aggregation layer and possibly between aggregation and access, it's rather pointless on the access layer towards the clients. Depending on network size, you might use a mix of L2 and L3 within the access layer.