----
Database Automation - Private DBaaS for MySQL, MariaDB and MongoDB with ClusterControl
// Planet MySQL
Installing, configuring, deploying databases and performing repetitive administrative tasks are all part of a DBA's or sysadmin's job. This can get pretty repetitive and overwhelming if you are part of a centralized IT team, running multiple databases for your organization's different departments, or a managed hosting provider responsible for setting up and operating databases for external clients. One way to get out of this 'manual, repetitive task' business is through a Database as a Service (DBaaS).
DBaaS is a way of delivering database functionality as a service to one or more consumers. A DBaaS platform would provide automated procedures for database deployment, monitoring, backups, recovery/repair, scaling, security/multi-tenancy, etc. This type of automation is especially useful where agility is needed, e.g. for systems that require elasticity by scaling out or scaling back at short notice, or for temporary deployments associated with dev/test/QA. Now that you've automated the repetitive stuff, you can start using your time and skills to optimize your schemas and configurations, help developers write better queries that scale, and work on system architecture or strategic database initiatives.
In this post, we'll have a look at how enterprise companies or managed hosters can use ClusterControl to implement a DBaaS for MySQL, MariaDB and MongoDB.
Multitenancy - Organizations, Users, Roles and Clusters
Some basics first, let's have a look at how ClusterControl handles multiple users and clusters. ClusterControl has an admin module through which an admin can create users, specify their roles and the organization each user belongs to.
By default, ClusterControl provides three types of roles:
- Super Admin - Sees all clusters/DBs that are registered with ClusterControl. The Super Admin can also create organizations and users. Only the Super Admin can transfer a cluster from one organization to another.
- Admin - Belongs to a specific organization, and sees all clusters registered in that organization.
- User - Belongs to a specific organization, and only sees the cluster(s) that she registered.
It is also possible to create custom roles with specific access control, for more fine-grained access to functionality.
As a roundup, here is how the different entities relate to each other:
More information can be found in the ClusterControl User Guide.
Example Organizational Structure
Let's assume we have an organization with separate departments, each having their own applications and databases. An IT department is responsible for running all the databases, but the Marketing and HR departments also have their own developers who need access to their respective databases.
Department | Description | Position | Access Control |
Marketing | Business analytical system with MongoDB replica set | System Analyst | Full access to assigned cluster |
IT | Staging cluster running on MariaDB Galera Cluster | System Administrator | Full access to all clusters |
Human Resource | HR system running on standalone MariaDB 10.1 | Application Developer | Limited access to assigned cluster (read-only) |
PlanetMySQL Voting: Vote UP / Vote DOWN
----
Shared via my feedly reader
Sent from my iPhone
No comments:
Post a Comment