How does application tiering (web, app, database) influence the decision to use Availability Zones vs Availability Sets?

When designing a highly available Azure architecture, what key factors determine whether to use Availability Zones or Availability Sets?

What happens to zone-redundant resources if one Availability Zone becomes unavailable?

Which Azure services automatically support zone-redundant deployments without manual configuration?

How are Availability Zones different from Availability Sets?