Alice: Hello, welcome to Liberica bar.
Today we're talking about wonderful news, a new JEP of BellSoft’s production.
The number is 386, it's proposed to target.
And Dmitry Chuyko, performance engineer of BellSoft, today will tell us about this JEP,
about the background of this JEP, some demands, ideas and so on.
So, hi, Dmitry.
Dmitry: Hi Alice.
Alice: Nice to see you.
So, Dmitry, let's discuss the BellSoft preparation for the final changes to upstream the Alpine
Linux port to OpenJDK.
And we should tell our subscribers what JEP is and what our JEP is about.
Dmitry: Okay.
It would be right to start with a brief history of Project Portola, what is it about.
Alice: Let's start from what JEP is.
Dmitry: Okay.
Alice: To understand the definitions.
Dmitry: JEP is about integration of Project Portola
code into the mainline of JDK, which will bring one more port of OpenJDK, of HotSpot,
which is a port to Alpine musl Linux.
To a Linux that has... any Linux distribution that has musl library as a standard C library,
not glibc.
That's the technical difference.
And such Linux distributions typically use this musl library to reduce static footprint,
to reduce the size of the installation of this Linux.
And the difference is like you, in case of Alpine Linux, for example, you reduce the
size of that installation from 30 megabytes to 5, which is very impressive.
It finds applications in two areas, I would say.
Of course, some small devices that need to save some space on their discs or cards or
whatever.
And in clouds where you need to save costs that are related to your containers.
In a container you need an OS layer that provides you basic functionality, if we talk about
Java.
They make calls to libraries that are in that layer.
It makes sometimes no sense to bloat it.
Because if you have a small OS layer, it is cheaper to provision a new instance in a cloud,
or to upgrade existing service because you spend less wall-clock time, you spend less
network traffic and CPU time and disc space.
Disc space is relatively cheap, but when you save most of the network traffic in this process,
you have a cheaper and faster deployment, which we all like.
Alice: Really, it can maximize your business value.
The main idea is less is more.
Well, okay.
Cost-efficiency is very interesting for the audience, but how does it connect with Alpine
Linux?
And with the new JEP?
Dmitry: As I said, such Linux distributions, they
use a different standard library, which means a regular build of JDK just won't work there.
So we need a special build and it should be, again, tested, TCK-verified cause we all like
truly tested and compliant assemblies.
It is a kind of technical addition to OpenJDK.
It's been developed in Project Portola.
There's a special OpenJDK project to support musl C library in OpenJDK.
It has been started by Mikael Vidstedt from Oracle.
Our JEP is about making it a part of mainline JDK, which will make current code standard
in mainline JDK.
Also, we pay attention to correctness.
We don't just think about what currently BellSoft or any other company provides in terms of
Project Portola and related builds, assemblies of OpenJDK.
Because you may now get such builds, they work, you can get container images with Alpine
musl Linux.
But everyone does it maybe slightly differently.
There are circumstances when something may not work as expected.
So this work is to make this project production-ready for everyone.
Finally, it must be integrated, supported in mainline OpenJDK.
Alice: Dmitry, and could you please explain to me
why Oracle and Mikael didn't continue to work with this JEP?
Because they started to do it, but finally no one systemized all this information.
Dmitry: Well, it was kind of a side project.
Alice: Mm.
Just as an initiative of Mikael.
Dmitry: Yes, but with a lot of technical work.
Alice: Well, okay.
Talking about the values of this JEP, what would people have by working with this JEP,
and how can it make their life easier?
Dmitry: I think users really started to realize the
benefits of this port from the very beginning, because we see that Alpine glibc and Alpine
musl are the most popular downloads, if we talk about container images.
That means that, yeah, people do need smaller containers and that's a kind of optimization
that you can get for free.
It can just change the line for your Docker FROM or pull, and you have some optimization.
There's almost no cost because, of course, you have to test what you got.
We saw a few scenarios when you have to be careful when you use it.
I will have a talk about that this year.
I will talk about this JEP and what benefits it brings in terms of cost savings and what
technical peculiarities are there.
Alice: So you're preparing something like a big speech.
Dmitry: Yes, we'll discuss that in more detail.
Alice: Okay.
And where will we find it?
We should be in some conferences?
Dmitry: Yeah.
Some conferences, YouTube videos.
Alice: Okay.
I think it will be interesting.
And we will send to our followers and subscribers all the information about Dmitry's conferences.
Dmitry: I think the easiest way is to subscribe to
our blog or our YouTube channel.
Alice: Dmitry, could you tell me.
Were there any demands or any problems when you were working with the JEP, maybe some
technical details that were hard to do?
Dmitry: Well, it was funny.
My mailbox mail thread about this JEP just went far to the right.
There were quite long discussions on relatively tiny changes.
We just need to make it clean.
And sometimes interesting scenarios appear not just for Alpine musl, but also in different
operating systems that have behavior not typical to what we work with daily.
It happened in AIX.
But that's all working moments and we just fix them.
Alice: Okay.
I got it.
And could you please tell what is next for BellSoft in this area?
What could you do?
Could you do more?
Dmitry: What's interesting is when we integrate it
into the mainline, we lower the complexity of maintenance, which means we can bring support,
for example, for more versions of Java with Alpine musl, more platforms.
JEP has been proposed to target, and it's already mentioned that there will be support
for AArch64 which wasn't initially there.
Currently we provide images with Alpine musl for JDK 8.
As you may understand, the ongoing development is based on JDK 16 code base, but we provide
images for current release, for 11 and for 8 now.
Which means a lot of people still use the latest JDK 8 updates.
I hope, latest updates.
And yes, you can get a small container with JDK 8 that has container support.
Please see my talk about that.
If you've got the latest and greatest update of JDK 8, you get a lot of features that weren't
initially in JDK 8.
And finally, not only container support, but also a small container with 8, which is great.
Alice: And if we're talking about some old versions,
like 6 or 7, could we find it there?
Dmitry: JDK 6 was small, but I don't think you really
need to use that in production nowadays.
Alice: Okay.
I got it.
So, I think that's all about JEP.
Other details for all of this, we'll hear in your speech in the conferences.
What is more, BellSoft created a new article about this JEP.
And you could read the details and technical information in this article on BellSoft blog.
Dmitry was writing this article, as far as I remember.
And what is more, you can subscribe to our newsletter, BellSoft newsletter, and to find
out more information about JEP, some other interesting things like JVM, Mission Control
and some interesting tools that guys are creating for you.
Well, thank you, Dmitry.
Hope to see you again.
Dmitry: Thank you!
Thank you, Alice.
Alice: Well, for the next episode of Liberica bar,
we will prepare the new theme about microservices.
I think it will be an awesome discussion with our technical specialist and maybe with Alexander
Belokrylov, the CEO of BellSoft.
We will tell you about how you can use microservices, and what is the main idea of working with
them, and how they can help you, too.
See you in the next episode of Liberica bar.
Thank you.