I'm confused about High Availability/Always On is High Availability something to describe Log Shipping and Always On ( replica )?

is Always on something to describe Log Shipping and High Availability?

I'm studying to get my certification 40-762 but I need to study a lot about these topics ( since i'm bad in this part on online tests ).

But even looking at Microsoft's website I'm confused about these topics. I know something about log shipping and replica, But I would like a point to study, and looking for "always on" and "high availability" not knowing what they are is a bit hard.

So, how can I describe them?


  The AlwaysOn Availability Groups feature is a high-availability and
  disaster-recovery solution that provides an enterprise-level
  alternative to database mirroring. Introduced in SQL Server 2012,
  AlwaysOn Availability Groups maximizes the availability of a set of
  user databases for an enterprise. An availability group supports a
  failover environment for a discrete set of user databases, known as
  availability databases, that fail over together. An availability group
  supports a set of read-write primary databases and one to eight sets
  of corresponding secondary databases. Optionally, secondary databases
  can be made available for read-only access and/or some backup
  operations.


And does "availability groups" is when i have log shipping and replicas in the same server?
AGs are a lot more like a mix of mirroring and clustering than log shipping. 

Clustering would let you have multiple instances that fail over from one node to another node, but the nodes and disks are all absolutely distinct and only one instance runs at a time (though you can then load up other instances on the same set of nodes and make it more complicated if you wanted to).

Mirroring copies over the logs in real time (not quite log shipping but that's where the similarity comes from; it's "shipping" logs) and lets you automatically fail over if you have a witness. However, you have to specify the primary and secondary names in the connection string in order for it to work, and you can't go past those initial two nodes.

AGs have the best of all worlds. It's mirroring under the covers so it's live, but it lets you read from the secondaries (and the tech behind that is far superior than any home-grown stuff). 

AGs also skip the shortcomings of mirroring because you can have multiple nodes, and you don't specify any of them in the connection string! You get a listener name and use THAT in the connection string, clustering fails over that listener name between nodes as required (while sending off those read only connections to the secondaries). Later on you can add/remove/replace nodes without modifying your connection strings at all.