Is there an alternative to having Umbraco connect
directly to our database?
Instead of Umbraco --> Database, have something like Umbraco --> Web Services --> Database
We have a publicly facing website and it will be hosted on a server in an isolated network (DMZ). Our Sql Server is on our internal network and ideally we do not want to 'poke' a hole through the firewall to connect to Sql Server.
The short answer is no. There are a series of Web Services available, but the Admin functionality cannot be configured to solely use web services.
Use could use Vista DB. This essentially is just a file running on your web server. I don't know the performance/speed issues with this approach.
I'vealways thought it'd be nice to have a 'no DB' mode for Umbraco. Basically the ability to publish your site to a live domain (via Courier) but not require any database access. Apart from some inital app startup config database calls (access permissions, etc) there's really no need to touch the database. Maybe you could look at implmenting that... although I suppose you'd still need a DB for your staging environment.
You teoretically can create your own datalayer, which use web services, but I think it's too much work.
@Chris:
I'm try create "no db mode" for frontend with little success, but it's only prototype. Umbraco touching db for users, and for templates. I create my own xml datalayer, wich read templates and users from xml and prototype my works.
In theory you could split up Umbraco and presentation. Don't really know how to do that. I think it's a matter of having to environments and make sure that you copy the /data/umbraco.config from your umbraco environment over to the website environment. Also you need to make sure that your site doesn't use macro's that call sql server.Again it's what I heard that's possible, never used it.
still some api calls go directly to database (eg, GetMedia() still goes to db directly), so it would be great to be able to isolate those (don't really know of other calls, or at least not by heart) and build some webservices for those.
The driving factors for not using sql express on the web server is three-fold. 1) Data Protection/Security 2) we have clustered web servers so Sql Server would most likely have to run on another box inside of DMZ. 3) We would have to deal with replication of data between Production, DR, and Staging which would require poking holes in the various firewalls. Also, we do not want to have the admin/back-office interface exposed publicly.
The deployment approach that we are going to use is to host Umbraco on three servers/clusters; one in Prod DMZ, one in DR DMZ, and one internal (staging). All will point to internal Sql Server. We will remove the Admin/Back-Office files off of the servers in Prod and DR DMZs. Our content editors/approvers/publishers will do all of their work on staging.
We will still have to deal with copying media files from staging to Prod and DR.
I have no experience with loadballanced enviroment :-(
If you really want this scenario, best way is to create new datalayer, which try get data by webservice instead of using sql server. I try create something similar: create datalayer which get data from xml instead of sql, but I try it only for fun and on small project ...
Umbraco Data Access
Hello,
Is there an alternative to having Umbraco connect directly to our database?
Instead of Umbraco --> Database, have something like Umbraco --> Web Services --> Database
We have a publicly facing website and it will be hosted on a server in an isolated network (DMZ). Our Sql Server is on our internal network and ideally we do not want to 'poke' a hole through the firewall to connect to Sql Server.
Thanks,
Marshall
Hi,
The short answer is no. There are a series of Web Services available, but the Admin functionality cannot be configured to solely use web services.
Use could use Vista DB. This essentially is just a file running on your web server. I don't know the performance/speed issues with this approach.
I'vealways thought it'd be nice to have a 'no DB' mode for Umbraco. Basically the ability to publish your site to a live domain (via Courier) but not require any database access. Apart from some inital app startup config database calls (access permissions, etc) there's really no need to touch the database. Maybe you could look at implmenting that... although I suppose you'd still need a DB for your staging environment.
Cheers,
Chris
Hi,
You teoretically can create your own datalayer, which use web services, but I think it's too much work.
@Chris:
I'm try create "no db mode" for frontend with little success, but it's only prototype. Umbraco touching db for users, and for templates. I create my own xml datalayer, wich read templates and users from xml and prototype my works.
Hi Marshall,
In theory you could split up Umbraco and presentation. Don't really know how to do that. I think it's a matter of having to environments and make sure that you copy the /data/umbraco.config from your umbraco environment over to the website environment. Also you need to make sure that your site doesn't use macro's that call sql server.Again it's what I heard that's possible, never used it.
Cheers,
Richard
still some api calls go directly to database (eg, GetMedia() still goes to db directly), so it would be great to be able to isolate those (don't really know of other calls, or at least not by heart) and build some webservices for those.
cheers,
/Dirk
Hi Marshall,
is there any reason why you want use internal db, instead of for example free ms sql express on webserver?
Hi Marshall
We have the same server setup, with our live server a DMZ and sql server inside the firewall.
We are using sql express on the live server and replicating the db and files to that server using batch files and SyncBack as scheduled tasks.
Cheers
Evan
Hi Petr,
The driving factors for not using sql express on the web server is three-fold. 1) Data Protection/Security 2) we have clustered web servers so Sql Server would most likely have to run on another box inside of DMZ. 3) We would have to deal with replication of data between Production, DR, and Staging which would require poking holes in the various firewalls. Also, we do not want to have the admin/back-office interface exposed publicly.
The deployment approach that we are going to use is to host Umbraco on three servers/clusters; one in Prod DMZ, one in DR DMZ, and one internal (staging). All will point to internal Sql Server. We will remove the Admin/Back-Office files off of the servers in Prod and DR DMZs. Our content editors/approvers/publishers will do all of their work on staging.
We will still have to deal with copying media files from staging to Prod and DR.
Hope that helps,
Marshall
Hi Marshall,
I have no experience with loadballanced enviroment :-(
If you really want this scenario, best way is to create new datalayer, which try get data by webservice instead of using sql server. I try create something similar: create datalayer which get data from xml instead of sql, but I try it only for fun and on small project ...
is working on a reply...