diff --git a/docs/dci-deploysasviya.md b/docs/dci-deploysasviya.md new file mode 100644 index 0000000..96b8374 --- /dev/null +++ b/docs/dci-deploysasviya.md @@ -0,0 +1,79 @@ +--- +layout: article +title: DC SAS 9 Deployment +description: How to deploy Data Controller in a production SAS 9 environment +og_image: https://docs.datacontroller.io/img/dci_deploymentdiagram.png +--- + +# SAS 9 Deployment + +## Overview +Data Controller for SAS 9 consists of a frontend, a set of Stored Processes, a staging area, and a database library. The library can be a SAS Base engine if desired, however this can cause contention (eg table locks) if end users are able to connect to the datasets directly, eg via Enterprise Guide or Base SAS. +A database that supports concurrent access is recommended. + +## Backend + +1 - Import `/sas/import.spk` using SAS Management Console. Make a note of the root location in which this was deployed - as this will be added to the `appLoc` value in the `index.html` file in the [frontend](#frontend) deployment. + +2 - Create a physical staging directory. This folder will contain the logs and CSV files generated by Users. The SAS Spawned Server account (eg `sassrv`) will need write access to this location. + +3 - Update the library to point to a schema in your preferred database + +4 - Deploy the physical tables and register them in metadata. For this, simply compile and run the `mpe_build()` macro using an account with appropriate privileges. + +!!! note + Make sure the SAS Spawned Server account (eg `sassrv`) can access these tables! + +## Frontend +The Data Controller front end comes pre-built, and ready to deploy to the root of the SAS Web Server (mid-tier), typically `!SASCONFIG/LevX/Web/WebServer/htdocs` in SAS 9. + +Deploy as follows: + +1 - Unzip dcfrontend.zip and upload the entire `datacontroller` directory to the static content server. + +2 - Open the `index.html` file and update the `appLoc` value to the location where the Stored Processes were deployed earlier. + +It should now be possible to use the application - simply navigate to `YOURSASWEBLOC:port/yourRoot/datacontroller` and sign in! + +The next step is to [configure](dcc-tables.md) the tables. + +## Deployment Diagram + +The below areas of the SAS platform are modified when deploying Data Controller: + + + +### Client Device + +Nothing needs to be deployed or modified on the client device. We support a wide range of browsers (the same as SAS). Browsers make requests to the SAS Web Server, and will cache assets such as JS, CSS and images. Some items (such as dropdowns) are kept in local storage to improve responsiveness. + +### SAS Mid Tier + +The front end is deployed to the SAS Web Server as described [above](/dci-deploysas9/#frontend). This requires making a dedicated public folder in the htdocs directory. + +### SAS Application Server + +Given the enhanced permissions needed of the system account, a dedicated / secured STP instance is recommended as described [here](/dci-stpinstance). + +All deployments of Data Controller also make use of a staging directory. This is used to store CSV and Excel files as uploaded by end users. This directory should NOT be accessible by end users - only the SAS system account (eg sassrv) requires access to this directory. + +A typical small deployment will grow by a 10-20 mb each month. A very large enterprise customer, with 100 or more editors, might generate up to 1 GB or so per month, depending on the size and frequency of the Excel EUCs and CSVs being uploaded. Web modifications are restricted only to modified rows, so are typically just a few kb in size. + +### SAS Metadata Server + +The items deployed to metadata include: + + * Folder tree + * Stored Processes + * Library Object & tables + + After the installation process (which updates `settings` and removes the `makedata` STP), there are no write actions performed against metadata. + +### Databases + +We strongly recommend that the Data Controller configuration tables are stored in a database for concurrency reasons, however it is also possible to use a BASE engine library. + +We provide the DDL for creating the tables, we have customers in production using Oracle, Postgres, Netezza, SQL Server to name a few. + +Data Controller does NOT modify schemas! It will not create or drop tables, or add/modify columns or attributes. Only rows can be modified using the tool. + diff --git a/docs/img/dci_deploymentdiagramviya.png b/docs/img/dci_deploymentdiagramviya.png new file mode 100644 index 0000000..3c6ac81 Binary files /dev/null and b/docs/img/dci_deploymentdiagramviya.png differ diff --git a/docs/img/dci_deploymentdiagramviya.svg b/docs/img/dci_deploymentdiagramviya.svg new file mode 100644 index 0000000..b65ee0b --- /dev/null +++ b/docs/img/dci_deploymentdiagramviya.svg @@ -0,0 +1 @@ + \ No newline at end of file