hello and welcome to this Morpheus Tech brief on database as a service I'm Martz Reed director of technical marketing with Morpheus data so before we delve into some of the the technical aspects of trying to build out a database as a service solution leveraging the morphus platform let take the step back really understand and what it is that we're talking about when we're talking about database as a service because it can take a number of different permutations dependent upon the particular design that is utilized to fulfill the given customer need so certainly for many we are aware of the concept of as a service whether that be database as a server infrastructure as infrastructure infrastructure as a service platform as a service software as a service really the goal is to simplify or Outsource the management of those particular aspects from an operational standpoint certainly it also certainly applies to technology but it does extend beyond that in which a given service may be outsourced so as an example you might have someone else that cuts your grass or a delivery driver that brings a particular good those are essentially as a service mechanisms so in the case of database as a service really want to focus on really two differentiators or two types really focused on the the self-managed database versus the managed database so as we see here on this slide number of aspects from a self-managed database standpoint this could be a number of areas that also include leveraging IAS and then building on top of that if you are leveraging a cloud environment or services from a cloud provider in which they are taking care of management the care and feeding of the underlying infrastructure components so typically that's going to bring all the way up to the virtualization layer which is what we see here on the left side of the self-manage certainly if it is a on Pim environment or a self-managed environment from an infrastructure standpoint the layers all the way down would be the responsibility of the customer uh whether that be an Enterprise that is building up their own database as a service solution for internal teams within the organization or from the service providers standpoint in which they're responsible for managing that underlying infrastructure and providing that as a service to their customers ultimately in this case the enduser or consumer of the particular resource or service would be responsible for facilitating the installation and configuration ation and ongoing management of that database and the self-managed scenario in the case of a managed database this is where the ongoing care and feeding and management of the database itself whether that be mongodb post grass SQL server for Microsoft that component has been offloaded to a provider whether it be a cloud service provider or to an inter internal team that is now responsible for managing and maintaining that aspect but delivering it as a service model to the enduser or consumer of the database as a service certainly there's a number of other variations as it relates to database as a service some that we've seen from the the major hyperscalers such as the concept of things like serverless databases in which many of the underlying aspects from a database engine standpoint have been abstracted even further in which you're not selecting things like a specific version of postgress or my SQL or variants or flavors from a configuration standpoint as it relates to even the database engine uh at that point You're simply provided with a mechanism by which to populate data into the database and then retrieve information from the database so at that point it's another high level abstraction that's added on top certainly all of them have their pros and cons typically from a self-managed databased standpoint the tradeoff is going to be you are responsible for managing the database but the pro that many organizations see is the level of control that they have over how the database is configured how the database is managed to align with common operational practices within their organization as well as specific application requirements that may require certain things to be fine-tuned specific to their application in the case of the managed database certainly one of the benefits becomes not having to worry about handling all of the various aspects from a database management standpoint such as installation configuration updating patching all the things that come along with owning and managing a system in an environment trade-off becomes to the point that I was mentioning earlier is that there's less control from an enduser or End customer standpoint in that they have to align with what the service provider has decided is are the appropriate options that are available to them as a customer additionally given that it is being delivered as a service and one of the benefits is that somebody else is handling all the Care and Feeding there typically is an additional charge or premium tied to the delivery of that service as opposed to if you were to go down the path of managing the database yourself certainly that becomes a trade-off and a consideration um in terms of the economics of whether it makes sense to manage the database yourself or pay a few extra dollars so to speak to have somebody else take care of that care and feeding of the particular database so now that we've got a good understanding of database as a service let's take a look at ways in which the Morpheus platform can be leverage to be able to build out such a solution that simplifies the capabilities for the in customer or end user whoever that might be so one of the major use cases of the morphus platform is the ability to be able to orchestrate the infrastructure provisioning process so certainly one of the first things that is going to have to be done in terms of delivering a database as a service solution is that there's the need to perform the initial installation and configuration of the database so as an example warus platform could be leveraged to provision in a boo instance or virtual machine whether that be in one of the onr hypervisors that the platform supports such as VMware openstack nanic hyperv as well as a handful of others and then Additionally the public Cloud such as AWS Azure gcp Oracle and a handful of others there so that would prob be to be able to provision the iunu instance so in that case we're getting up to the operating system itself certainly the platform provides the ability to be able to handle the additional infrastructure provisioning task that are necessary in many organizations such as reserving IP creating DNS record all those very crucial things from an operational standpoint but one once the operating system has been provisioned and ready to go that then provides us the ability to be able to start fine-tuning and installing additional components onto that system such as logging agents monitoring agents security agents uh and then finally installation and configuration of postgress itself from the platform standpoint so at which point that would provide us the ability to be able to orchestrate that into in process of provisioning an instance leveraging the Morpheus platform so let's take a look at some of those pieces and components within the morphus platform and how we can build those up leveraging various constructs so as an example one of the things I want to do is be able to integrate with the various clouds and then orchestrate that process so not going to walk through every single aspect in excruciating detail but do want to touch on many of the key components that are leveraged to build out such a capability so there would be things like note types layouts instance types that would provide us the mechanism to be able to provision an instance into a given Cloud whether that be on Prim or in the public cloud and then what we then want to Leverage is the platform's automation capabilities to tie into that process to orchestrate the installation and configuration of the database as an example one so what we'll do is we'll take a look at a catalog item and then deconstruct that and see how all the components fit together so in this case I've got a postgress SQL database in this particular example few of the things that I've exposed to the end user or End customer are things like the database engine version a plan size password for the postgress database and then maintenance window to be able to specify when it is applicable or allowed for upgrades or patching to be completed for this particular system so in this case I've specified that there are three different versions available from a postgress database standpoint the database engine itself that the user can select from postgress 15 14 and 13 certainly could be any of the various versions that are available uh that can be deployed then I have a plan so in this case two two plan sizes could be expanded to even more but in this case I've specified that I want to allow one vcpu one gig of RAM and a 10 gig solid state disc and then additionally two vcpu 4 gigs of RAM and then 40 gig of solid state disk and then specifying that a password be provided for the postgress database user and then as I said a maintenance window being associated for this particular system so in this case this allows a end user to be able to come into the platform order what it is that they need in this case it is a postgress database from the Morpheus platform and so let's start to walk through all the components that are leveraged to build out this particular catalog item that we see in the Morpheus platform so we come to library blueprints take a look at catalog items so in this case we see that we have our postgress SQL database so fill that a few pieces of information so let's take a look at the variables or the inputs that we saw from the catalog item standpoint so we saw that we had the version the service plan the password and the maintenance window from the platform's standpoint so those are going to provide us the ability to be able to inject those components or those variables into particular instance type or instance layout from the platform standpoint to be able to inject that during the provisioning of this particular system so let's take a quick look at those inputs see what they look like so as I said we have the version which ties in this case to a select list or option list within the platform that will present the various options that we saw which was postgress 15 14 and 13 in this case it is a static list that backs this particular item so as we see here post 15 14 and 13 that's going to be passed into the automation to configure uh and install the specific version of postgress that the user has selected as part of the deployment also have now few other inputs that we saw so we also saw service plan so let's take a look at that this case similar to as we saw with the version that it maps to a database as a service service plans option list so in this case once again another manual option list and then we're simply mapping it to a service plan within the morphus platform that is associated with the 1 vcpu 1 gig of RAM 10 gig solid state disc and then similarly for the other plan that is presented as part of this option list the other one is the password which is just a password input type which I can then grab and then pass into from an option uh list or option input standpoint so that provides me the ability to be able to take the user input be able to associate it with the catalog item and then subsequently pass it into my automation from that stand point so let's take a look at the the instance type for this particular system nothing extraordin complex here I really just a standard Orphus instance type mapping into a standard Orphus instance layout uh and then we also see that in this case we are associating the databas as a service workflow with this particular instance layout to facilitate the installation and configuration of mongodb or not mongodb apologize with postgress sqle so if we come to Automation and workflows we can see the database as a service workflow this case we do have an anible Playbook that is associated to install postgress SQL within the Morpheus platform and so that particular task is mapped into an anable Playbook that is then executed to be able to install and configure postgress SQL for this particular instance and so that would also be the similar mechanism that would be leveraged to install things like the the monitoring agent the logging agent the security agent configure the system appropriately in alignment with the specific requirements that have been defined for the database to stay in lock step with what customers are expecting and need from the database as a service solution so if we come back to provisioning and catalog we'll go ahead and order one of the items post and then we'll click order now so at which point it's going to go away and start iterating through the actual provisioning process for this system but since I do have an existing instance let's take a look at an existing instance that's been deployed into this environment so this case the instance has been deployed there's a couple of things that have been added to this particular system so certainly out of the box the Morpheus platform includes a number of capabilities to be able to manage a given system that has been deployed provides some visibility configuration and capability within the platform itself uh but one of the things that I do want to touch on is the Morpheus platform's plug-in architecture that does allow extensibility for specific use cases uh and as example in this particular case the custom UI tab capabil within the morphus platform allows me to be able to add additional information to a particular instance to provide specific context for that instance and so what I mean by that is something like a databases a service solution I might want to be able to expose the connection details for the database in a readily and easily to consume fashion in which the user or customer could come into the morus platform and click on their particular deployed workload and then get information on how to quickly Connect into that database so in this particular scenario we do see that there is a connection details tab on this particular system so in this case this is a custom UI tab that has been created to be able to provide information in details in regards to the database uh so certainly this is an example uh so one of the things we do see is that the the password is in plain text uh with the custom UI tabs this section of the UI is fully extensible in that it can be defined leveraging CSS JavaScript HTML and so I could have the ability to be able to leverage something like JavaScript and then be able to hide the password until a button is clicked to view the password once again a number of capabilities from an extensibility standpoint that it provides to be able to address specific use cases uh in a manner that is conducent to how a given organization wants to handle that from a functionality standpoint but in this case once the workload is provisioned I can quickly come into this section of the Morpheus UI and then be able to see the information that I need to connect to this database once again looking to provide that ease of use and functionality for customers when they come into to the platform to be able to request that database but also be able to quickly interact with the database from that standpoint so certainly this could be an area where there's additional functionality that's added from a connection details standpoint uh it's a toggle on various different ways in which to present this information or allow things like copy and paste of a connection string or username and password certainly the the options are are essentially endless in terms of how can be presented and be exposed to really drive that from a functional standpoint one of the things I do want to touch on is take a a bit of a look at how this particular instance tab was constructed to really see the power of the pluged architecture but also in many ways the ease in which something like this can be created or replicated so let's take a look in this case we're going to jump into Visual Studio code and take a look at the connection details so from a plug-in architecture standpoint the morphus platform includes the ability to be able to uh install plug custom plugins plugins include what are known as providers so providers are really the the functional mechanism that we're looking to achieve within the platform so as an example a instance tab provider or instance UI tab provider or a backup integration provider or a custom report integration provider so that's the mechanism that we want to tie into in this case we want to Leverage The instance tab provider to be able to add that additional tab to the database as a service instance that we saw so not going to dig too deep into all of the code but do want to point out a few things from a functional standpoint uh to be able to build out this s this capability so in this case we're going to grab the information about the instance so that's what we see here with the render template we're also going to expand on that configuration to grab additional details about the instance that we want to be able to leverage so as an example one of the things that we saw was on the host or the host name for this particular system as well as leveraging that host name within the connection string for this database so in this case we are leveraging the uh instance as well as the instant details in this case so the payload that was passed and then the payload that was expanded on to concatenate the host name as well as the domain name certainly there's a number of ways in which this can be constructed to be able to provide that information whether it's a DNS name or IP address or whatever the connection mechanism may be really we just want to grab some information to leverage and display that to the user when they come into the platform and so we're going to add that into our model or our map in this case and then we're going to pass that into the object that is going to get passed into the rendering so as I mentioned what we saw from the connection details tab that is HTML that is being generated and so we are going to look to pass in information during the rendering of that HTML so in that case we want to pass in in instance specific information which in this case is the host name plus the particular domain name so you got a question if we talk about databases Service uh examples about multiple database instances on same machines and not explain connection details only uh so in the case um this particular scenario walking through a onetoone mapping of a database to a server uh certainly it is possible leveraging things like xas within the morphus platform to be able to build out functionality in which you may want multiple databases on a single server uh in this case I do not have the uh an example of that in this Tech brief uh but certainly something that is possible within the Morpheus platform great question and so we're rendering the database as a service connection details for this particular workload so this is going to map into the file that is being rendered and so in this case we see that we have HTML that is being displayed and so we see this case as I said an example this could be parameterized or variabl uh in which we could do something like grab this information from Cipher uh and populate into the actual rendering of this particular HTML page but one of the things we are doing is grabbing that host and so that was the the instance name plus the domain for this particular workload and then we're populating that into this par this particular HTML page then we're also defining the the string for the connection string uh so certainly a number of ways to be able to expand on this to make it much more Dynamic um and be able to express or visualize the desired information in a number of different ways but really the goal is to be able to Showcase ways in which this information can be presented to the end user or End customer and that's leveraging the mechanism that we see here from a visualization standpoint so that provides us uh or the user with the information to be able to connect into the database within the Morpheus platform itself so at which point the database is has been installed it's configured it's ready to go and start being leveraged within the morphus platform uh let's take a look at some other ways in which we can extend from a platform standpoint so got a question uh for msps how is architecture of databases a service in multi- tenants uh deployment options from a service provider side so in the case of a MSP that be similar mechanism uh from a platform standpoint in which what we saw there from the postgress database standpoint uh that particular catalog item could be exposed down into a subtenant from the Morpheus platform similar to various other instance types within the morphus platform uh really it's focused on being able to facilitate the automated installation and configuration of that system uh and then be able to provide the ability to be able to manage that on an ongoing basis monitoring is certainly one of the the things that is key from a solution standpoint uh to be able to uh facilitate the monitoring of the particular system whether that be things like CPU memory storage uh database connections things of that nature um so as an example once again leaning into the the plug-in architecture capability of the morphus platform certainly the platform includes some basic monitoring functionality out of the box uh but often times there is a desire to leverage an external or thirdparty solution and then tie that into the morus platform uh so that's where something like a uh Prometheus or data dog or din trce or Ops ramp could be leveraged to be able to integrate and be able to provide additional information and context within the warus platform for that particular system uh so many of that might be familiar uh with things like that the data dog plugin that is available on share. morphus dat.com a similar mechanism in which there's the ability to be able to tie in that external monitoring and visibility information into the Morpheus platform so here's another example of a custom t that has been created uh to be able to visualize information from a third-party monitoring system to be able to provide visibility from a platform standpoint to tie in to that third-party system so certainly a number of ways to be able to present this visualize this from a platform standpoint to be able to showcase the functionality within the Morpheus platform so we have a couple of questions that came in uh such as OS life cycle management uh so in the case of managing the operating system that's where the platform's ability to be able to execute things like automation so those things like those anable playbooks that we leveraged from a installation and configuration standpoint whether it be that a bass script shell script uh whatever it might be from a functional standpoint can leverage those mechanisms within the morphus platform to be able to orchest rate that ongoing management process whether that be the the OS patching or even the actual database patching itself from a maintenance standpoint uh so not included out of the box with the Morpheus platform but being able to leverage the capabilities of the platform to be a you run those ad hoc or on a scheduled basis provides a mechanism by which to automate that process uh on behalf of a customer so we have a question about can metering be set for database metrics only uh So within the the platform that would be uh something that could be added to a service plan as an example so the ability to be able to Define uh something like a price for something like a software or a service within the platform in which you could specify that I want to add something like let's say enhanced monitoring or more detailed monitoring and there is an additional charge or cost for that particular service add-on uh that be the ability to be able to associate that with the given plan that the user may select uh so that way when they select the given item that they know they are taking an additional premium service uh or purchasing an additional premium service as part of it great question so we got another question can we Implement databases a service for mssql uh and Oracle easily um so certainly it's all going to vary on the the Nuance of the service that you're looking to provide uh so mssql Oracle as a mechanism from a databased standpoint isn't widely or wildly different than some of the things we've walked through from a close scratch standpoint so it's really looking at how you're going to orchestrate that installation and configuration and as well as what you're going to expose from a service standpoint uh so really it's the the many of the same mechanisms that we've taken a look at in terms of building out that service and then just replicating that for the specific database that needs to be uh built out great question let's take a look back at our database instance um so as I said we have the additional information being pulled in uh to be able to visualize from a performance and Metric standpoint uh and in addition to what we see here from the the native Morpheus functionality that's being displayed uh so certainly a number of options in which to be able to bring in that information and that data uh in the the data dog plugin as I mentioned there's also the the additional aspects of that in which you can add in a button to be able to facilitate the integration with even the native portal of a an existing solution such as a data dog or grafana whatever it might be provide some pair down specific contextual information and then also be able to present to an additional UI or platform the visibility in a more granular detailed way this question can din trce be added as a plugin uh so certainly the plugin architecture does support the functionality to be able to tie into many of those various solutions that I mentioned um and one of the examples that I mentioned was that data dog plugin that is available on share. morphus dat.com uh certainly that could be utilized as a model or ways in which to add a dino Trace plugin uh but in many ways it's going to be specific to the the use case but yes that can be added all right so we've taken a look look at number of the various aspects from a platform standpoint as it relates to orchestrating the installation and configuration of the database um as well as ways in which to be able to extend the functionality from a a number of different areas within the warus platform uh whether that be adding in the ability to simplify the users experience for connecting the database with the connection details also being able to provide additional visibility into performance and utilization of the database leveraging the platform's ability to be able to tie into third-party Monitoring Solutions via the plugin architecture to be able to pull that into the morus platform itself uh and then also talked about some various ways in which the ongoing management of the system could be automated leveraging the platform's automation hooks into various different automation tooling and then the ability to be able to schedule that on a recurring basis um so certainly want to to thank everyone for the time and appreciate the questions [Music]