100 likes | 256 Views
SugarCRM Database Deployment Variants. DB in separate Service Template DB external to Service Template. Objective. Consider scenarios when components or services required by a deployment may be: 1) Shared across deployments
E N D
SugarCRM Database Deployment Variants DB in separate Service Template DB external to Service Template
Objective • Consider scenarios when components or services required by a deployment may be: • 1) Shared across deployments • 2) Already existing/provided by a 3rd party not part of any existing Service Template (i.e. under the control of a separate and autonomous administrative entity)
Fully Specified Service Template SugarCrmApp [SugarCrmApplication] SugarCrmDb [SugarCrmDb] AppDependsOnPhpRuntime R6 C6 R5 MySqlDbConnectionOperations: connectTo R2 R3 C5 PhpModule [PhpModule] HostedOnType MySqlDbHostedOnMySqlOperations: hostOn R4 DBMS capable of hosting the DB C2 C3 ApacheWebServer [ApacheWebServer] MySql [MySql] C4 PluginHostedOnContainerOperations: hostOn R1 R1 HostedOn HostedOn R1: ContainerRequirement C1: ContainerCapability R2: WebAppContainerRequirement C2: WebAppContainerCapability R3: MySqlDbContainerRequirement C3: MySqlDbContainerCapability R4: PluginContainerRequirement C4: PluginContainerCapability R5: PhpRuntimeRequirement C5: PhpRuntimeCapability R6: MySqlDatabaseRequirement C6: MySqlDatabaseCapability C1 C1 VmApache [VirtualMachine] ComputeNodeMySql [ComputeNode] IaaS or PaaS cloud hosted DBMS . . . . . .
Minimally Specified Service Template DB has DA to initialize in DBMS SugarCrmApp [SugarCrmApplication] SugarCrmDb [SugarCrmDb] RC CC MySqlDbConnection RH RH • We must decide: • Which components will be hosted in the deployment versus outside the deployment • Outside the deployment cases: • 1) Part of another deployment (i.e. specified in another service template) • 2) Hosted in some existing server we don’t control but are allowed to connect to it and possibly initialize or connect to it (not provision or start/stop it)
Splitting Across Multiple Deployments Valid client operations :load/extract contents to/from artifact SugarCrmApp [SugarCrmApplication] SugarCrmDb [SugarCrmDb] AppDependsOnPhpRuntime R6 C6 R5 MySqlDbConnectionOperations: connectTo R2 R3 C5 PhpModule [PhpModule] HostedOnType MySqlDbHostedOnMySqlOperations: hostOn R4 C2 C3 ApacheWebServer [ApacheWebServer] MySql [MySql] C4 PluginHostedOnContainerOperations: hostOn R1 R1 HostedOn HostedOn C1 C1 VmApache [VirtualMachine] VmMySql [VirtualMachine] DB Service Template PHP App Service Template Deployments have decoupled lifecycles
When To Split? • DB has a different lifecycle than the PHP App • E.g. DB is really shared across multiple client apps • DB service is offered by a different Administrative Entity (AE) • DB AE controls lifecycle of the DB. PHP AP AE consumes DB on DB AE’s terms • AE for App and DB both use TOSCA gaining the benefit of awareness of each other’s models • Lifecycle awareness • Federation
Using an “External” DB • Single Service Template specifies: • PHP App fully specified as part of deployment as a complete tier • DB is partially specified • DB is hostedOn a DBMS (R3) • DBMS instance is specified (C3) • Address and port • DBMS type not necessarily relevant (leave abstract if possible) • DBMS container/tier is out of scope • TOSCA engine must resolve lifecycle states of DBMS
TOSCA Engine Resolves DB SugarCrmApp [SugarCrmApplication] SugarCrmDb [SugarCrmDb] AppDependsOnPhpRuntime R6 C6 R5 MySqlDbConnectionOperations: connectTo R2 R3 C5 PhpModule [PhpModule] HostedOnType DbHostedOnDBMS R4 C2 ? ApacheWebServer [ApacheWebServer] C4 PluginHostedOnContainerOperations: hostOn R1 HostedOn C1 VmApache [VirtualMachine] R3 allows TOSCA Engine to find DBMS which can host the DB Lifecycle operations of DBMS is out of scope
External DB Service Template provided by the environment MySqlDbConnectionOperations: connectTo SugarCrmApp [SugarCrmApplication] SugarCrmDb [SugarCrmDb] Environment Provided DB Service AppDependsOnPhpRuntime R6 C6 R5 R2 R3 C5 PhpModule [PhpModule] DbHostedOnDBMS HostedOnType C3 R4 DBMS [DBMS] C2 ApacheWebServer [ApacheWebServer] C4 PluginHostedOnContainerOperations: hostOn R1 R1 HostedOn HostedOn C1 AnyComputeNode [ComputeNode] C1 VmApache [VirtualMachine] C3 contains information (e.g. host/port) required to connect to a specific DBMS DBMS lifecycle still out of scope
External DB Service TemplateNOT provided by the environment SugarCrmApp [SugarCrmApplication] SugarCrmDb [SugarCrmDb] AppDependsOnPhpRuntime R6 C6 R5 MySqlDbConnectionOperations: connectTo R2 R3 C5 PhpModule [PhpModule] HostedOnType DbHostedOnDBMS IP Address, Port, DB, credentials etc. R4 C2 C3 ApacheWebServer [ApacheWebServer] DBMS [DBMS] ? C4 PluginHostedOnContainerOperations: hostOn R1 HostedOn DBMS Node exists to hold C3 C1 VmApache [VirtualMachine] C3 contains information (e.g. host/port) required to connect to a specific DBMS DBMS lifecycle still out of scope