[HN Gopher] An open-source MySQL alternative for running databas...
___________________________________________________________________
An open-source MySQL alternative for running database on Kubernetes
Author : TalktoCrystal
Score : 53 points
Date : 2023-08-28 12:45 UTC (10 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| peppermint_gum wrote:
| >An open-source MySQL alternative for running database on
| Kubernetes
|
| Very confusing title. It made me think it's some kind of open-
| source database compatible with MySQL (and kind of implies that
| MySQL isn't open-source).
|
| It seems it's a tool for managing databases in Kubernetes.
| free6om wrote:
| Yep, a DoK(Data on K8s) solution.
| Roark66 wrote:
| This "why you need KubeBlocks" reads like a bunch of pointless
| marketing speak (quoted below).
|
| " >Why you need KubeBlocks When adopting a multi-cloud or hybrid
| cloud strategy, it is essential to prioritize application
| portability and use software or services that offer consistent
| functionality across different infrastructures."
|
| I'd rather read some concrete examples or use cases.
| uncleyo wrote:
| If this is supposed to be used in production as open source, then
| I am a little surprised that it's under AGPL 3.0, especially
| given there's no mention of commercial version.
| mdaniel wrote:
| Depending on one's needs and interests, they changed it from
| Apache 2 a few months ago:
| https://github.com/apecloud/kubeblocks/blob/5ba9b39716940cd7...
| I didn't dig into the changes to see if there's anything super
| interesting that happened between then and now
|
| It really, really jams me up that the GitHub license thing is
| so stupid that when _looking at a file containing the Apache 2
| license_ it continues to say AGPL right across the top of that
| file. It 's so misleading. Their license sniffer always shows
| $default_branch/LICENSE regardless of what branch (or file) one
| is looking at
| blipvert wrote:
| Unless you were using a modified version without making your
| changes available, why would this be a problem?
| paulryanrogers wrote:
| AGPL is viral, requiring you open source of all source
| involved in serving network clients, not only this AGPL
| software itself.
|
| It's meant to close the serve-over-the-network loophole of
| the GPL.
| dijit wrote:
| thats only true if you use the code in a serving
| application.
|
| If the SDK to connect is GPL and the backend service itself
| (never exposed to a user) is AGPL then you're fine.
| heng4fun wrote:
| I like the AGPL. The intent of AGPL is to encourage
| openness and collaboration, not to restrict or burden
| software developers. Many great projects choose this AGPL.
| heng4fun wrote:
| I had been keeping an eye on this project before, and upon
| checking it out recently, I've noticed many minor improvements.
| It's not just that one operator now supports multiple engines,
| but the feature experiences of several engines have also
| gradually become more well-rounded.
| supersudo wrote:
| And their command line `kbcli` did impressed me, very easy to
| use. kbcli helps me create various clusters in several minutes.
| I have been working on mysql developing for more than five
| years, and I guess the ApeCloud team are very experienced in
| operating at least mysql.
| ahlfors wrote:
| As we know, although Kubernetes (K8s) can be used to build and
| deploy various applications, including databases, there are still
| some challenges and limitations related to databases that cannot
| be fully addressed. Here are some of these issues:
|
| 1. Data Consistency: Kubernetes does not directly provide
| guarantees for data consistency in databases, while databases
| typically require integrity and consistency of data. This may
| rely on mechanisms such as database replication, sharding, and
| transactions to ensure data consistency, rather than solely
| relying on Kubernetes.
|
| 2. Data Persistence and Performance: While Kubernetes provides
| solutions for persistent storage, such as Persistent Volumes
| (PVs), it may still not fully meet the requirements of high-
| performance databases, such as large-scale data processing or
| high-concurrency workloads in relational databases.
|
| 3. Distributed Deployment and Maintenance of Databases:
| Distributed databases often require data synchronization and load
| balancing among different nodes. Kubernetes can provide partial
| support, such as StatefulSets for managing stateful applications,
| but the distributed nature and complexity of databases may
| require additional configuration and management to ensure data
| consistency and high availability.
|
| 4. Database Scaling and Fault Recovery: In large-scale
| applications, databases may need horizontal scaling and fault
| recovery capabilities. While Kubernetes can dynamically scale and
| manage containers, scaling and fault recovery at the database
| level may require more complex configuration and strategies,
| depending on the specific database engine and architecture.
|
| 5. Database Backup and Recovery: Backup and recovery are critical
| tasks in database management. Although Kubernetes provides
| snapshot and backup functionality, the backup and recovery
| process for databases may require additional considerations, such
| as handling transaction logs and ensuring data consistency.
|
| While Kubernetes provides some convenience and abstraction layers
| for building databases, the above issues indicate that
| specialized database architectures and solutions are still
| required for specific database requirements and scenarios to meet
| the needs of data consistency, persistence, performance, and
| scalability.
|
| I have been downloaded kubeblocks and running it on local k8s,
| AWS EKS, GCP GKE, it can create many kind of databases very
| quickly. Also, kubeblocks includes day2 operations keep me free
| from tons of DBA jobs.
|
| I will keep trying kubeblocks. When the day it meet the needs of
| data consistency, persistence, performance, and scalability, go
| production and take a good sleep.
| sgarland wrote:
| Please don't parrot ChatGPT outputs without at least citing it.
| realzyy wrote:
| It looks like a fully managed database service alternative.
| MySQL, PostgreSQL, Redis, MongoDB... all the popular db engines.
| hosh wrote:
| There are docs for Postgresql and Kafka, but they do not look as
| fleshed out. Are those production-ready?
| john-wang wrote:
| [dead]
| dewey wrote:
| So now instead of debugging database performance issues you also
| have to debug the third party database orchestration middleware
| and the Kubernetes cluster workloads.
| TalktoCrystal wrote:
| That is the reason why you need KubeBlocks, it takes over the
| complexity.
| remram wrote:
| That is not how complexity works. You might lower the
| _difficulty_ in the happy path, but when something goes
| wrong, there is additional complexity, and that means more
| places to debug and understand.
| sgarland wrote:
| > when something goes wrong
|
| Thank for correctly stating "when," not "if".
|
| Abstractions are wonderful until they aren't, at which
| point you'd better know how everything underneath them
| works.
| uberduper wrote:
| This is my primary objection to 3rd party kubernetes
| operators. I really don't care how hard something is to
| setup or learn to manage. I care how hard it is to recover,
| tune, and scale.
| adamc wrote:
| I thought that the point was the solution architecture also
| guarantees increased complexity.
| free6om wrote:
| There is always an 'orchestration' middleware in some form, you
| just can't avoid it. The key is if the benefit it gives
| overcomes the complexity it introduces.
| [deleted]
| mh- wrote:
| This seems interesting but this passage from the readme is a red
| flag to me:
|
| >You do not have to learn database tuning. KubeBlocks can
| leverage storage and computing resources to achieve optimal
| database performance.
|
| No one has ever delivered on this pipe dream.
| TalktoCrystal wrote:
| Try it and maybe you get a dream-come-true.
| sgarland wrote:
| Lol glad I'm not the only one who immediately thought
| "bullshit" when reading that.
|
| At best it becomes someone else's problem, as others here have
| said.
| ranting-moth wrote:
| I think the key word here is "you".
|
| You just get it running, hack your spaghetti and when it
| becomes a problem you're already assigned on another project so
| someone else will have to sort it out.
| baz00 wrote:
| And that guy is usually me.
|
| Just remember when you leave a pool of shit behind, one of
| the victims might be making a hiring decision about you at
| some point in the future.
| gabereiser wrote:
| Read that last part again folks. Twice if you have to. You
| _will_ run into the same folks in the industry if you last
| longer than 10 years.
| theideaofcoffee wrote:
| "The industry" extends far beyond and is more than the
| big tech circle jerk. I've bounced around outside of the
| big tech circus for nearly 15 years now and have -never-
| unwittingly run into someone I previously worked with.
| Have I targeted institutions that I know employ people
| that I've crossed paths with in the past? Yes,
| deliberately for one reason or another, but never once
| have I been hired, paged through a company directory and
| been surprised to the point of "oh, they're here?".
| brianmcc wrote:
| So... throw money on compute instead of just adding an index..?
| supersudo wrote:
| Seems Kubeblocks provids some parameters templates based on
| their knowledge on databases. To some extent, it will improve
| performance. Of course, I don't think users will be totally
| freed from `database tuning`, which is too complex a topic.
| dijit wrote:
| I'm offended that you don't take even 10 minutes to
| understand why this will not work.
|
| People say they don't need sysadmins and stuff like this is
| the result.
|
| Vertical scalability limits are very soon met and can be
| difficult to fix post-fact.
| robertlagrant wrote:
| It's phrased as a joke, no?
| brianmcc wrote:
| My scepticism was clearly not well enough signalled,
| apologies.
|
| To be clear I agree "waste money to avoid applying basic
| database techniques" is A Bad Thing!
| liveoneggs wrote:
| This works when your data fits in L2 cache
| vbezhenar wrote:
| https://www.sqlite.org/pragma.html#pragma_optimize ?
|
| If SQLite feels that performing database optimizations (such as
| running ANALYZE or creating new indexes) will improve the
| performance of future queries, then some database I/O may be
| done.
| ofrzeta wrote:
| The animated screenshot looks promising. I'd like to try it out.
| What's a good way to get SQL dumps inside the cluster? On the
| overview page there's a diagram for production deployment that
| includes a LoadBalancer for external clients. What Loadbalancer
| can I use that can proxy the MySQL protocol?
| dullb0y wrote:
| If you refer to backup, KubeBlocks provides ways to do backup
| with disk snapshot(supported from cloud provider like AWS EBS),
| file backup with tools such as xtrabackup for MySQL, wal-g for
| PostgreSQL. For SQL dump, a relative dump tool is recommended,
| such as mysql_dump for MySQL, you can dump it from the outside
| as a client, also, the built-in routine SQL dump will be
| supported in the near future. Anyway, KubeBlocks tries to
| integrate the best practices for any database product, the
| solution either provided by a well-known database provider or
| by an individual contributor, or by KubeBlocks official as you
| see from a fresh start. LoadBalancer is implemented with
| integrations of well-known cloud providers' LB controllers, it
| works in layer 4, so it can route any tcp traffics. When
| referring to MySQL proxy, KubeBlocks integrates vitess as proxy
| for apecloud-mysql(an addon in KubeBlocks, try 'kbcli addon
| list'), please try it out and enjoy yourself.
| john-wang wrote:
| [dead]
| michellezzz wrote:
| Like the way you make HA visible in the format of lovely cats.
| YusongG wrote:
| It seems that this can not only manage databases but also support
| Kafka and Pulsar.
| TalktoCrystal wrote:
| Yes, RDBMS, NoSQL, streaming and analytical systems are all
| supported.
| abatilo wrote:
| It looks like this project is for more than just MySQL. Should
| the title get updated?
|
| Also, the `Quick Start` link in the readme goes to a 404.
| TalktoCrystal wrote:
| Sorry about that. Fixed now.
| remram wrote:
| @dang: can the title be un-editorialized to remove "MySQL" and
| "alternative"? That doesn't make sense since it orchestrates
| MySQL (and other DBMS).
|
| Maybe use the first sentence of the README:
|
| > KubeBlocks is an open-source Kubernetes operator that manages
| relational, NoSQL, vector, and streaming databases on the
| public cloud or on-premise
| yohannparis wrote:
| I'm still not sure what is the purpose of this, the README is not
| clear.
| free6om wrote:
| treat it as a project to ease DoK(Data on K8s).
| dereckchen wrote:
| [dead]
| supersudo wrote:
| I like the message it conveyed 'No need to be a K8s
| professional'. That is exactly how I feel after creating a mysql
| cluster smoothly. I tried oracle mysql opertor months earlier,
| but failed to install it on AWS EKS without knowing why.
| Ethan-Davis wrote:
| After looking at the readme, I'm still unclear on what kind of
| product it is - another database operator? In the readme I don't
| see any advantages it has compared to other operators, why not I
| choose other more mature operators?
|
| Are the "Goals" serious? That looks more like empty slogans.
| Perhaps it would be better to explain in detail what it have
| actually done and how did it.
|
| Furthermore, when can change that misleading title?
___________________________________________________________________
(page generated 2023-08-28 23:02 UTC)