Update:
Tier is usually referenced by the physical layer , while layer is usually referenced by the logical layer. This is an older concept, today basically, most servers run in the cloud, where this "physical separation" does not make much sense.
I will treat Tier and Layer as the same meaning of the word (layer / level)
Tier / Layer is layer that represents a logical sequence, period. You can create an application of 1..N layers, in the way that you think is the correct one. This does not necessarily mean that it is something physical or in separate environments. it is only the abstract separation of its application itself.
For example nowadays it is well known applications in 3 layers ... ( not to confuse with MVC ).
Just to illustrate:
Layer 1: Layer of presentation, where everything is related to view, can be Java Swing screens, .Net forms, or web pages.
Layer 2: Logical layer. All the rules specific to your application, is the central part of your app. Where in fact you are designing your ideas.
Layer 3: Access to the bank. Good here, you ... access the bank =). And there may also be some logic related to the transaction, etc.
Nothing prevents you from creating an app with 1,2,3,4 or 5+ layers, for example the 3 cited cents, plus another Rest integration, another specific validation and so on. It all depends on the project requirement. In general 3 is enough or even too much.
Why to use layers?
In practice it is to separate the concepts. Usually communication is done through interfaces , which makes it much easier to add or replace one of them. Another situation is when working as a team. Where you have the faces of the frontend developing the graphical interface, others in the "core", etc. Where each team does not change the code of the other team, all working on the same project. And at the same time they know what to pass and what to receive from the top / bottom layer because they use the interfaces contracts. All this in the world of OOP, other paradoxes I'm not sure for sure how it should work.
Emphasizing that "layer" is the abstract separation of the logic of your project. But when it comes to large architectures, we can also have N layers, at the application level, where each layer can correspond to an application running on one server, which communicates with another running on another server, a good example of this are commercial applications, where things start to get pretty big.
In general more layers do not mean to be better, the more layers, the more decoupling you have, which is good but often unnecessary, but generates more complexity and maintenance work.
Note that the layer has the stack scheme, where to get the last one you must go through all the intermediates, eg
Layer 1 < - > layer 2 < - > layer 3