News for hackers. Stuff that matters.
Re:Kafka Removing Zookeeper Dependency by tiew9Vii on Sunday May 17, 2020 @03:38AM (#23210371)
They are really simple if done correctly. You have a single fat jar so can do java -jar myapp.jar which is almost as easy as your static binary but prefixed with two extra words.

It’s also trivially easy to package as a docker image.

What makes things like Zookeeper and Kafka to deploy is they are complex applications. You can write them in any other language and the deployment will still remain as non trivial.

Re:Kafka Removing Zookeeper Dependency by michaelt on Sunday May 17, 2020 @04:18AM (#23210541)
I use Java for a living. Whether you think Java is very easy or a pain in the ass depends on what you're doing.

Consider the fact Ubuntu 18.04's default repos come with a pretty ancient version of Java. And if you want a newer version, you have to use some third-party source. And the fact there are both OpenJDK and Oracle JDKs to choose from. Will that be JDK or JRE? Headless? Depending on the combination of JDK and software, maybe the fonts will go all funny. Got multiple JDKs? Some programs will use your default Java, some will invite you to select the JDK to use, some will bundle their own complete JDK. Oh, a program uses JavaFX? No, of course that isn't installed just because you installed Java.

These problems aren't inherent to Java, of course - it's 98% due to Oracle's attempts to inconvenience people into paying for licenses.

Re:Kafka Removing Zookeeper Dependency by elric on Sunday May 17, 2020 @06:37AM (#23211047)
I don't know which JVMs are or aren't in Ubuntu. But Ubuntu 18 is over 2 years old. Almost every major linux distribution has stable, LTS versions of Java 8 and 11 -- which are the currently supported LTS versions in general.

A package can easily add a dependency on a specific Java version. And unlike many other tools, if you have multiple versions of Java, all you usually need to do is add the right one to the $PATH. Sometimes you may have to set $JRE_HOME. And that's it. You're done. If that's too much of a pain to deal with, I hope you never have to install a tool that requires a specific PHP, Python or NodeJS version.

I don't know of any serious tools written in Java that don't either explicitly say which version(s) are supported. Maybe some tools are poorly packaged. But again, that's not a problem with Java.

Re:Kafka Removing Zookeeper Dependency by apta on Sunday May 17, 2020 @11:12AM (#23212536)
You can also ship the JVM directly with your product, that way it's system independent. Even better with jlink.
Re:Kafka Removing Zookeeper Dependency by PopeDotNinja on Sunday May 17, 2020 @06:26AM (#23211007)
+1 for this. A headless install of Java is not straight forward. Doable? Yes. Pain in the butt? Yes.
Re:Kafka Removing Zookeeper Dependency by elric on Sunday May 17, 2020 @06:38AM (#23211056)
yum install java-latest-openjdk-headless

There, you're done. Need fonts? Install fonts. Pain in the butt? Where?

Re:Kafka Removing Zookeeper Dependency by bsaul on Sunday May 17, 2020 @07:27AM (#23211246)
And now you have a separate intermediate runtime layer between your code and the OS, with its own set of versions, patches, regression, bugs, backward compatibilities, etc. that may or may not have an impact on the code that you intend to deploy (or redeploy).

Statically compiled binaries are undoubtedly a plus regarding deployment.

Re:Kafka Removing Zookeeper Dependency by throwdbaaway on Sunday May 17, 2020 @01:21PM (#23213476)
You do realize that golang statically compiled binaries contain the go runtime right? So, all the concerns that you mentioned are applicable to go as well, e.g. a golang app may be buggy when built with version X, while another golang app may have GC issue when built with version Y, and yet another golang app would be vulnerable unless rebuilt with version Z. [1][2][3]

Don't drink the Kool-Aid, golang is just a more opinionated and much less capable cousin of Java/JVM. And for many companies, that could be the right trade-off.

[1] https://groups.google.com/forum/m/#!topic/golang-announce/mV...

[2] https://groups.google.com/forum/m/#!topic/kubernetes-securit...

[3] https://groups.google.com/forum/m/#!topic/golang-announce/65...

Re:Kafka Removing Zookeeper Dependency by bsaul on Sunday May 17, 2020 @02:59PM (#23214338)
except that the developer controls it, since its is embedded. As such it follows the exact same lifecycle as the code itself ( versionning, testing, etc).
Re:Kafka Removing Zookeeper Dependency by vips7L on Sunday May 17, 2020 @11:36PM (#23218059)
This is misinformed. jlink has existed since jdk 11 and allows the developer to produce a custom JVM to ship with their application. jpackage also now exists to create installers for whatever platform your on. It is you the developer who are responsible for packaging your application correctly.
Re:Kafka Removing Zookeeper Dependency by hkeide on Sunday May 24, 2020 @04:55AM (#23290194)
Why doesn't Kafka do this?