I want to know why or what is the differences between ArcGIS Server and ArcGIS Datastore. As I am publish and manage the data on the ArcGIS Server, I know the data must be registered on the data store before publishing on the server but why?
Think of the Data Store as a "system managed" database. The ArcGIS Server (Hosting Role) exposes that data to the web as web services.
Before Enterprise we would typically use an Enterprise Geodatabase as our 'data-store'. The first few versions of the Enterprise Portal allowed us to upload shapefiles etc and 'publish' them to become a service. That pushed the data into the Enterprise Geodatabase. But some portal processes require the data store to be a temporary store of data for analytics and such like (think Insights). That data needs to go somewhere.
If I were a DBA then I'd hate to see datasets arriving and disappearing. This is a database that I would manage, after all.
As ArcGIS Enterprise matured, the Data Store was introduced. DBA's do not need to touch it as it's system-managed. So now you can use Enterprise Geodatabases (or file geodatabases) for managing 'authoritative' data that can be exposed as Map Image Layers. Or you can use the Hosted Feature Layer option where the system requirements allow.
The Data Store offers simplicity in so many ways, because everything is managed via the Portal or ArcGIS Server. For some organisations that do not have a DBA it's a way of simplifying and derisking. It also performs well, and is really easy to setup for syncing and offline/editing workflows. Yes, you can do all of that from an Enterprise Geodatabase, but it does become a little more advanced.
So in summary, the Data Store is a simple way of having a database in the environment, that allows a large range of functions and minimises the dependency upon a DBA or keeps the DBA happy as they can now just focus on looking after authoritative data, with more structured and predictable workflows.
@Scott_Tansley summed it up pretty well, I myself found the following white paper: Data in ArcGIS User Managed and ArcGIS Managed (esriaustralia.com.au) pretty useful or understanding the differences as well, and when to choose one over the other,
Keiran Bray
Thanks for that link!
"ArcGIS managed" could still mean the data could live in your own database, but managing the entire database internally for you does mean they can tune it for their specific needs instead of handing you a doc of "best practices" and suggesting you do the tuning.
ArcGIS Server does not store geodatabase data itself, it references data stored elsewhere via that registration process you mention.
ArcGIS Datastore contains only the "Hosted data" (called "Relational") and 3D "Scenes" (called "Tile Cache"). Everything else is stored in the other places you manage in the Server Site->Data Stores page. You probably have a SQL database as an "Enterprise Geodatabase"; locally we use a database in a SQL Server. In the Server it's just called "Database". Sometimes when testing I register another SQL database in there. (I haven't messed around with other options in there in years so I don't remember what they are all for. For instance I think you can register file geodatabases there if you want.)
We haven't done anything with Scenes so that part is useless for us currently. We use Hosted data for some things. Like most Esri Enterprise customers, we're small so forcing us to run multiple separate database servers is just extra work.
Now for the Personal Opinion----> I've wondered exactly "why ArcGIS DataStore" for years. I've suspected the goal was to make the need for a separate "Enterprise Geodatabase" optional but that DataStore just never made it to that stage. They used to support only the Big Official Databases (Oracle, DB2, SQL Server, etc) and nothing free. ("Free" is hard for many people to accept?) So they hid away PostgreSQL inside the DataStore. Now they openly support PostgreSQL and I wish the separate DataStore component would just go away or at least be optional. I'd rather manage an instance of PostgreSQL, and not have this kind of hidden thing where I have no direct control over its operation. That said, I have hardly had any problems with it. PostgreSQL is very reliable and Esri did a good job with their wrapper. They even support replication which is pretty neat.
All this is my understanding. If I have screwed up in my description, I hope someone will tell me. For a long time I assumed the "Tile Cache" was... a raster tile cache!! If you publish tiles, then they are stored in... well... in a folder in Server. SOME data gets stored in ArcGIS Server but not databases. Well. There's a PostgreSQL database server hidden in there too, but it saves only configuration data.
I always have to pry off the lid and see what's inside and try to figure out how things work.
Cheers