To answer your first question...yes it would not be impossible to do that, but it would be tricky because your data source(s) would need to be accessible by each on of your customer's environments. Assuming your data sources are on-premises, making it accessible to multiple external clients would be a security risk.
Other than that you have a few options, each with its own advantages and nuances:
- You could place an SSAS server in the DMZ, making it accessible via the public internet. An Azure VM could also work as a server in the DMZ.
- You could use Azure Analysis Services to host cubes and make that accessible to your customers.
- Seeing that Power BI uses Analysis Services as back-end, you could build a Power BI data model and deploy it to a PBI workspace.
- It would also not be impossible (with the correct setup and configuration) to deploy a Power BI data model to each of your customer's PBI environments.
If you're going to use one of the first two options, keep in mind that SSAS works with Windows authentication only. This means that your customers would need a windows account in your domain (or the "local" domain if the server is hosted in the DMZ) to access the service.
The Power BI option is interesting, and how you use it depends on who is going to pay for the licensing. If you host the PBI data models in your own environment, then your customers would either need an O365 account in your domain (with a PBI license), or be added as a guest (or B2B) account in which case they need to bring their own PBI license.
If you were to host the PBI data models in your customer's Power BI environment, you would need to set up a gateway for each customer in order to refresh the data...unless your data source(s) is hosted in the cloud and accessible that way. With all the necessary "plumbing" in place, you could automate data model deployment via DevOps or by using PowerShell.
As you can see, lots of things to consider. I'd start with the question of who is going to pay for the licensing and/or cost to host the service(s). Also consider whether you could use row-level security as a means to ensure that every customer can only see their own data, as opposed to a separate cube/data model for each.
Hope this helps.