-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blob storage for all content on web site #792
Comments
While not impossible its a pretty daunting task. Most of it could be achieved by writing new Providers - ie. mediafiles are loaded and saved using the MediaFileProvider which could be re-implented loading and saving files from a Blob Storage. Its also worth noticing that C1 already tries to abstract the underlying filesystem away by having its own C1Directory and C1File classes, and as long as developers remember to use those, it should be possible to direct regular filehandling towards a Blob Storage by introducing a custom IIOProvider. This is of course all speculations - it would require somewhat of a big investment in doing the proof of concept work which might end up in a dead end. |
Have you considered simply mounting your Blob Storage as a Network Drive and fool C1 to thinking its saving all its files on disk, while they in reality go to a Blob Storage? |
That is a big question, can I ask which problem you're trying to address. Is it for:
|
We want to have a "live editing" C1 website on Azure. That means the "content" (like pages, media and form submissions) will be created/administrated and presented on the same website (Azure App Service). I'm not an Azure expert but my understanding is that "content" can disappar on Azure. If something goes wrong Azure will create a new instance based on the source code and the old instance with the error (and the content) will disappear. Since we have one instance in one region at the moment we might not have this problem. But if the customer wants multiple instances or regions we will have problems with the "live editing content". We could add SQL Server for the "content" data types as people would normally do, if there are no other options, and Composite.Forms.FormBuilder has a BlobStorage option, but we would still have problems with media, server logs and maybe other files. |
It does not have to be a blob storage. WordPress has the wp-content folder for all content files. |
Have you considered mounting the App_Data folder of your C1 website as a Network Drive pointing to Azure Blob Storage? |
@slacto My current understanding of the App Services is the following:
When it relates to C1 CMS: C1 console doesn't support "multiple instances + shared network drive" setup. Current approach that we have, for scalable commerce sites:
The editor have an ability to publish from CM to CD via https://c1.orckestra.com/Add-ons/All/Orckestra.Azure.CloudPublisher
It has a few limitations, in particular:
Another option -> some of the data types can be moved to SQL Data Provider, and the same SQL database can be referenced by CM and CD instances. For future, currently we consider implementing API based approach, where CD instances can fetch the data from the CM instance through REST API. Answering your question. There's no straight forward way for multi-instance, the easiest being CM + CD + CloudPublisher + SQL Data Provider. As a backup strategy, you can backup the website files by reading from SFTP. |
Hi Dmitry
Thanks for the thorough explanation. It sounds like we can host the website on Azure without any problems as long as we stick to one instance
|
I see Composite.Forms.FormBuilder has an option for using blobConnectionString in \App_Data\Composite\Configuration\Composite.Forms.FormBuilder.xml
We’re thinking about implementing this in C1 to remove all content from the website to make it more like a "live editing" WebApp.
The content (i.e the files that are not in our source code) could be located here:
• \App_Data*.config
• \App_Data\certificates
• \App_Data\Composite\LogFiles
• \App_Data\Composite\Versioning
• \App_Data\DataStores (maybe just selected files)
• \App_Data\Email
• \App_Data\FormBuilderData
• \App_Data\Media
• \App_Data\Search
• \robots.txt
Is this something you have considered/tried?
Do you have recommendations/warnings/alternative solutions?
The text was updated successfully, but these errors were encountered: