I need to ask, How AEM web site is availlable to End User. How we can host the site so that it can be available to the end users with editing functionalities and what steps need to follow to achieve this.
AEM has authoring and publishing systems. The content is authored in the Authoring system and replicate/publish it to the publishing system which is for the end-users. The end-users access the publish server with Dispatcher(Webserver) and CDN on top. Refer to the below link for authoring and publishing.
1) Depending on the requirement and scalability and nfr you have the decide like how many instances are required. In a typical deployment
1 author --> 2 publisher --> 2 apache with dispatcher
author is connected to both publishers
each publishers is connected to 1 Apache/dispatcher.
End user will access the site via Apache.
2) how many caching layers are required. 2 levels or 1 level. cdn incase if site is access across the globe.
3) Editing functionality will be available only to authors. In you question your were referring to editing for end users --> i am not sure whether your are referring communities , where end users pushes the data into AEM system typically called as UGC.
If you want to provide capability to your end users to edit the site, below is one of the approach:
Create a component in AEM, which will check the permissions of the logged in user and based on the permission, if the user has the edit rights or belong to a certain group with access rights, may be you can display an edit/pencil icon on the page and once the user clicks it, you can take the user to the same page on the author server for editing.
You can use externalisers, to define the URL of your author instance dynamically.
Suppose User A has come to your site https://www.samplesite.com/home.html and belongs to content-authors group, user will see the icon on the page and can click the icon to navigate to author instance.
Make sure users exists on both author and publish instances with same permissions.
Please let us know, if this is what you were looking for?
Editing functionality for end-users available in AEM that runs in "author" runmode and when the user has sufficient permission to edit content, for example, on AEM Author a user is at least a member of an OOTB "content-authors" group.