
Foojay Podcast #38: Java in the Cloud
Java was born in 1995, when the internet as we know it today didn’t exist yet.
Cloud servers, Docker, Kubernetes, distributed systems, scaling up and down… these things are now part of our daily job, but Java wasn’t originally designed for it.
In this episode, we want to learn if the recent evolutions in OpenJDK, and ongoing related projects, will make Java a full Cloud member.
Video
Podcast Apps
You can listen and subscribe to the Foojay Podcast on:
- Spotify
- Apple Podcasts
- And most others…
Guests
Grace Jansen
Mark Heckler
Guillaume Laforge
Podcast
Host: Frank Delporte
Content
00:00 Introduction of the topic and guests
04:10 How much Java is running in the cloud?
08:04 How Java is growing as a cloud programming language
10:30 Java is secure thanks to the updates every 3 months
12:02 Features in new versions towards the cloud
13:01 Finding the right cloud cost balance
18:38 Measuring energy usage to know your ecological impact
23:27 Developers also need to monitor the cloud cost
25:14 We all make mistakes and have unused cloud services
27:44 Project duration on-premise versus cloud
30:48 Evolutions in Java towards the cloud
32:40 Project CRaC and InstantOn
34:36 How the community pushes Java forward
37:24 Frameworks supporting cloud improvements
40:44 New and shiny is not always the best
44:35 How to fix problems in a cloud environment
- https://opentelemetry.io/
- https://microprofile.io/specifications/microprofile-telemetry/
- https://micrometer.io/
- https://testcontainers.com/
51:15 Microservices versus Monolith
- Chasing the ball: https://www.youtube.com/watch?v=BJYsregPlM4
55:40 Some final thoughts about AI
58:26 Outro
Related Foojay Posts
- https://foojay.io/today/java-21-and-the-upcoming-jakarta-ee-11-a-new-era-of-cloud-native-java/
- https://foojay.io/today/how-to-build-and-deploy-a-real-time-cloud-based-logging-system/
- https://foojay.io/today/how-to-reduce-cloud-cost-by-99-for-eda-kafka-applications/
- https://foojay.io/today/unified-event-driven-architecture-for-the-cloud-native-enterprise/
- https://foojay.io/today/how-to-deploy-a-vaadin-application-to-google-cloud-app-engine/
- https://foojay.io/today/why-a-cloud-native-database-must-run-on-k8s/
- And many more… https://foojay.io/search/?q=cloud
Music
- Barbershop John
- Hermine Deurloo
- Synapse by Shane Ivers - https://www.silvermansound.com
Transcript
Automatically generated from the audio, so it can contain errors in names and technical terms. Suggest a correction.
[0:00] Hello and welcome to this new edition of the Foojay podcast in this episode we’re traveling to the cloud looking at how to deploy and run Java applications welcome to the Foojay podcast all your news about OpenJDK Java was born in 1995 when the internet as we know it today didn’t exist yet Cloud servers stalker kubernetes distributed systems scaling up and down these things are now part of our daily job but Java wasn’t originally designed for it today I want to learn if the recent Evolutions in OpenJDK and ongoing related projects will make Java a full Cloud member nice to meet you all thanks for joining the podcast today so my name is Grace Jansen I was actually born after Java was created which is a bit of a weird I program with a language that’s older than me it’s a weird sort of situation but yeah I’m a developer Advocate at IBM I live and work in the UK looking at mostly sort of java focused Technologies hence why I’m here so looking at open Liberty reactive microprofile all that great stuff before I was a developer Advocate I was a biologist so I’ve had a bit of a weird
[1:18] Fun route into Tech and that’s me my second guest is Mark Heckler okay so I started with Java in very early days like pre-1.0 so I was like 2 years old at the time kidding so worked with it a long time in various capacities as a developer engineer and eventually found my way to advocacy as well I am currently a principal Cloud advocate of java and JVM languages at Microsoft little bit of background I guess Oracle pivotal VMware Etc so yeah just happy to be here thanks for inviting me on personally I wife kids dog and licensed inspirated pilot so I like to get up in the clouds for real when I’m not working in the clouds right here at my desk hello everyone thanks for having me so my name is gam laforge I’m a develop advocate for Google Cloud I’m also a Java Champion I’m known as well for the being one of the co-founding members of The aachi Groovy programming language what else for the French speaking audience maybe they know my participation in the cast coder podcast in France and in French and yeah I’ve been developing with Java
[2:42] For well a while as well I think I studied with Java 102 or something like this at least my first experiments with it and I’ve programmed in Java since then or in groovy of course and a bit of other languages at time at Google I focus I’ve been focusing mainly on SES products so I’m always interested in seeing how to best deploy Java applications on functions as a service products like Cloud functions or apps on appenine or containers on cloud run so these are my favorite places where to deploy my stuff and more recently I’ve been focusing a bit on generative AI because you know we’re putting AI everywhere these days and I’m pretty interested in longchain for J for example which is a the longchain for python equivalent for the Java developers and I’m happy to talk about this at conferences lately so yeah I think that’s about me and I’m Frank theor I’m a bit older than Java using it for over 15 years I think and recently joined aul as a technical writer but also making these podcast just because Java is the programming language I love the most and I want to
[4:05] Learn a lot about it or as much as I can okay we three experts in the room do you have any IDE can you give us some insights about how much Java is running in the cloud if you’re looking at applications for instance deployed at Google Microsoft have you any idea how much of them is Java for Google Cloud I think that’s a good question but it probably depends on the actual platform itself in the sense that for example on Google app engine Java has been there since 200 when was that 2009 I think or eight so there’s lots of old Java applications on app engine for products newer like Cloud functions probably less and cl Cloud run since you can containerize lots of stuff lots of languages it’s a big mix of things but Java has always been a I mean there are really lots and lots of customers who are using Java also on GK on our cabetes platform and often as far as I remember so I didn’t check the statistics you know and perhaps I wouldn’t even be allowed to share them publicly anyway but I remember that Java is often for big Enterprise applications and we’re
[5:33] Seeing even if they are may be on some platforms less Java applications than maybe other languages sometimes the Java applications since they are bigger Enterprise apps used with you know many more customers and users there are sometimes accounting for more traffic you know coming from those Java applications regardless of the actual popularity of the language on the various platforms so lots of java definitely and Mark on M Microsoft side do you think you have a view on that I don’t have any specifics of it similar to guom I don’t necessarily I suppose the specific numbers aren’t quite as important as just the fact that it’s very important to Microsoft and very important for us to serve the Java Community because if you think pre- cloud we used to always in the Java Community talk about how much of the world ran on Java and how many Mission critical globally deployed applications relied on Java typically running on Enterprise Java in some you know fashion and that hasn’t changed so I know that regardless of what the platform is within the platform whether it’s
[6:43] Functions or containers or just an app U app environment or kubernetes etc etc it’s Java is very well represented I’ll put it that way so the recognition within Microsoft is Java is very important the Java Community is very strong and the Java customer basee is both vocal and very very very strong I guess you’d say in terms of representation so yeah very very important market and Community which we’ve known all along all of us right from all our various different perspectives it’s just nice to have some level of validation within yeah Microsoft has hired lot of java luminaries actually big Java experts there when I came in I think I was the 10th Java Champion that joined and I think we’ve since added three or four or maybe more now it’s it’s kind of hard to keep up with but it is a very Vibrant Community within Microsoft as well and again we try to bring that external Focus I know Gom and Grace do the same thing you try to bring that external Focus because within large corporations it’s it’s very easy to not necessarily be quite as in touch with the community as you’d like and
[7:57] And we are part of that community so we serve to act as a pretty good conduit I think both directions MH Grace you as a younger Enthusiast you grew into the language how are you looking to the evolutions of java we talked about this briefly at jall but now you have some more time H how are you looking at Java In This Cloud environment it’s been super interesting seeing it evolve especially from a perspective of not having worked with it since its Inception because I kind of came into software development at the stage that we were already looking at microservices and deploying to the cloud so I kind of had to catch up with Decades of understanding monolithic applications and applications running on Prem and it was an it was interesting to understand the challenges that came with that in terms of people trying to move to more Cloud native architectures Cloud native platforms but also being able to keep so much of what makes Java a brilliant language and I think that’s why it succeeded for as long as it has the community but also the Innovation that comes with it the fact that
[9:07] We’re able to have you know strong security we’re able to have portability and flexibility across different libraries different Frameworks run times platforms you know I think that’s a really great point of sort of strength of java that has allowed it to be able to continue evolving to be able to have sort of things like reactive programming you know we’re looking at things like project Loom looking at you know different ways of controlling threads garbage collection you know all this stuff is what makes Java special and I think that’s what it’s allowed it to continue evolving to be able to cater for the cloud because without that Evolution and without that support from the community I think it would have potentially died a long time ago it’s one of the oldest languages out there and it’s still really going strong so it’s been really nice to jump into a community that’s both really established but equally growing and changing at such a rapid Pace that it’s a really interesting environment to be in I think you mentioned a few things which are important so we have the six-month
[10:08] Release cycle so we have continuously improvements new things but you also mentioned security and I think a lot of people are not aware of this three months release cycle where new security updates are coming in you think that’s equally important for the security part oh yeah I mean I think we only have to look at recent examples of major vulnerabilities and you know cyber security attacks and things like this to Really gain an understanding of just how important this subject is you know that the rising popularity of subjects like Dev SEC Ops really highlights the fact that security isn’t just for Security Experts anymore security really has to be front and center of all elements in development throughout our software development life cycle and I think having that regular release Cadence of security updates to be able to ensure that Java remains as strong as it is in that regard is really important especially in what is a chaotic and often dangerous environment of the cloud because you know anyone could be trying to access your code you could be deploying in
[11:17] Loads of different environments so yeah I think it’s critically important but I don’t know if you guys want to add more to that yeah I totally agree with that and I think it’s part of the trust Enterprises have within Java because if that wasn’t the case I think Java would probably not be as successful as it it’s been I mean going on you know all all those years so yes this is a strong Focus for the JDK the Java Engineers those teams and the trust Enterprise have so it’s also the evolution it’s also the community Etc but for the for Enterprises that’s a key in my opinion yeah in those new versions which appear every six months do you see many things focusing on that cloud environment that help develop Java application which are better suited to run in the cloud I think so yeah so for example the work around growl VM is interesting or the I remember some some changes when we had some issues in sess environments or in JK with regards to memory CPU counting Counting and such and the O kill on gke and all those things so they also adapted the JDK the run times
[12:47] To C to the cloud environment in general so definitely I think it was part of their it was certainly top of mine because that’s I mean the cloud is a key place to deploy your applications nowadays Grace you mentioned already defsec Ops which is one of the many many Ops we have oh there’s so many out there it’s like an endless list nowadays giops finops mlops like the list just keeps getting bigger and is the pH is the fops a problem for a cloud provider because the cost of what companies are doing in the cloud is a critical fact Factor nowadays isn’t that an ongoing battle also for a cloud provider of you still have to earn your money of course but you also have to provide the cheapest possible solution that someone can use I think there’s room for that though I was looking at a few stats from things like like the state of java report from Varden and some of these sort of enterprise-wide report and there’s still over 50% of java applications that aren’t on the cloud so that’s a huge amount of the market that’s still going to at some point probably move to the cloud in some
[14:05] Capacity so there’s a lot of room there in terms of enabling applications to be deployed in a cost- effective manner while still allowing room for profit or for you know obviously they’re a business at the end of the day so they need to be making money somehow to allow for growth in the market in terms of getting those existing applications that aren’t on the cloud onto those Cloud platforms so I think there is a balance there and I think that’s potentially where we can enable sort of competition between different Cloud providers but also sort of a low barity entry for those those applications to move to the cloud and if I could I would posit that that’s probably the wrong perspective or maybe the wrong question even entirely because I mean at Microsoft at least and this may apply universally or may maybe less so I don’t know but we’re very focused on getting the customer the best value as much as and as possible every time we can every way we can and what you find is that if you think back you know some of your earlier early programming days and you found a way to deliver some really
[15:14] Cool feature quickly and it’s out the door your workload didn’t go down because what happened is your customers your internal customers whomever they realize that wow you know Grace can crank this feature out in a couple weeks so now you know six months that I’d allowed for this I have extra time so now all of a sudden Grace gets 15 more change requests or issues or upgrade requests so the workload doesn’t go down it’s just the opportunities go up so if I’m at a customer site and my cloud provider is saying look we can save you some money on this the first thing I’m going to do is go great now I’ve got this backlog of things now I can look at implementing so everybody wins in that circumstance and that’s kind of the way we approach it we try to make and I again no no commercials because everybody has their kind of own take but we try to be the destination of choice and part of that is being the partner and making it as cost effective as possible to deploy X Y or Z application and knowing full well that it’s everyone’s the best interest to do that because
[16:15] Then the customer has more latitude has more ability to implement more capabilities that their customers are demanding and faster hopefully so well I’d like to highlight two points so this is one may be a bit specific to Google Cloud but for example I think that was last year that we introduced this feature we’ve got so I forget the name of the feature but basically when you’re using the Google Cloud console there’s even like a popup that appears if you’re for example using a huge VM in Google C Compu engine to run a small workload and it will suggest a you should be using a l a smaller VM because this one cost too much considering the kind of workload you’re running on it so there are different tweaking configuration suggestions that appear what here and there instead of you know over making the customers overpay for something they don’t actually use and more globally so this time not not really related to Google coud itself but when we look at all all those Cloud providers for example the on the sess platforms you know all those things that scale up and
[17:30] Down depending on the traffic maybe they run at a Regular Pace maybe that would be more costly than perhaps a VM but on the contrary if you’ve got very irregular traffic or if your website your web application is on prime time TV that it’s being mentioned and suddenly you’ve got a huge you know peak of traffic coming up those systems actually scale smoothly and they can handle the load and when there’s no more traffic they go back to lower consumption level and that’s interesting because instead instead instead of over provisioning lots of capacity to handle all possible situations oh well actually it’s going to scale up and down just depending on traffic that’s I think it’s good you know how to say that in English good profit for what you yeah yeah there’s an expression oh I forget good name for the buck or something like this no yeah yeah yeah okay y we had I think also in the jall podcast we were discussing the ecological impact of running things in the cloud doesn’t matter if it’s in the cloud if it’s on premise you have to pay energy so energy it has an
[18:52] Ecological impact but the discussion was a bit that there are no tools available ailable to measure how much energy you’re using we can measure the traffic we can measure CPU we can measure memory do you have any tools to measure how much energy you’re using on Google Cloud for example when you pick so I we’ve got a pricing calculator I think it’s also able maybe and have to double check to mention Associated CO2 emissions and such but for example when you decide to create create a new project on Google Clan when you have to pick a region where do you want to run this workload so let’s say I want to run in Finland then you’re going to see two or three green leaves saying the in terms of CO2 consumption it’s the region which has the best use of the you know local energy Etc it emits the less carbon as a lower carbon footprint so I think cloud providers try progressively to ensure that customers have the choice and know about what kind of resources they are using and what could be I don’t think because I think it’s complicated to really
[20:18] Calculate the exact cost in terms of CO2 emission because I mean it it’s also it depends so much on your actual workloads and traffic patterns and everything everything that’s it it’s just estimations that you can make but more and more I think it’s going to be more obvious like just choosing the right region if you care more about CO2 versus just pure price Etc yeah I read about an experiment by Microsoft to put one container in this in the ocean from the water now I can imagine that building that container is not that simple so there is some tradeoffs there I think to be we made but yeah I can imagine that there are a lot of experiments in this topic to measure and minimize the ecological impact yeah and I think to an extent there’s a there’s almost a thought as developers we’re aware that you know we need to make our applications as performant and as efficient as possible because even if as you were saying like even if we’re not able to estimate accurately exactly how much CO2 we’re using we know we’re using some so if we can reduce that by any means possible then that’s
[21:30] Always going to be beneficial even if we can’t see the exact numbers right now so if there’s any way that we can reduce as you were saying like the VM size that we’re using the CPU we’re utilizing you know if there’s any way in which we can make our applications more memory efficient more CPU efficient then all of this is going to be beneficial in terms of reducing our ecological impact so I think as developers even if there’s a limited set of tools right now maybe that’s a there as an open source project in there somewhere but even if we’re not able to see it exactly I think we all have a responsibility to try and reduce those numbers those metrics to have an impact in some formal capacity when it comes to application development it is interesting though if you consider it that most of the most of the things that we strive for as developers kind of align maybe not perfectly but very nicely with better ecological I guess stewardship or use of resources because if we want better performance smaller units of compute and faster executions all those things typically
[22:32] Imply that you’re you’re demanding fewer resources the ability to scale out and in dynamically and set up automatic scaling or certain triggers of scale based on demand is far more ecologically friendly than over-provisioning so in many many many ways we have come a long way just by aligning the well by the goals being aligned it’s not like we planned this but it does work out very nicely in that regard now as Gom and Grace have both mentioned the better tools we get to measure and monitor that the better we can do but it’s it’s kind of nice to see we’re on the at least we’re heading in the right direction now I guess progress is good even if unintentional sometimes but it’s funny that actually costs and CO2 emissions kind of align you know that’s a good thing because everyone benefits so even as a developer we should also be a bit of a finops and look at Financial impact well and I’ve mentioned this before because I some folks who don’t know know or know me know that I have a an MBA so I’ve done a lot of Economics work and finance work and a lot of times I will well I
[23:47] Haven’t for some time but I have given a talk in the past on how to assess projects assess initiatives and determine if they make sense financially for your company because many times times when we espouse a project when we try to advocate for a project and I say Advocate not in the term of advocacy but in terms of like we’re an engineering team and we’re trying to we see something that needs done something that’s beneficial to our company our customers Etc when we go and advocate for that we use engineering terms and the folks who are signing off on us being able to do that use accounting terms and finance terms so there’s this impedance mismatch right out of the gate so when we learn their language and learn to critically our own projects we can determine early on one if the project doesn’t make sense and if so we just stop it right there we don’t bring it up if it does make sense we learn how to better advocate for it in a language that the people in control can understand better and get behind it as well and be our allies versus our enemies so to speak so in many
[24:47] Ways when we look at these things to understand better the finances of it the finances of it the finops it makes our lives easier it makes our projects more successful and in many ways also it allows us to choose better projects and more good projects as well so again I kind of look at this and there are many headwinds that we all face in different ways but there are certain things that kind of work in our favor and these are things that we probably should be leaning into a lot more than we do yeah little personal story that I was experimenting in a previous job and I think I burned the budget of one month in two days by just doing something wrong with the database which was cost per transaction so I think indeed as a developer knowing where the dashboard can be found with the cost is pretty important of your well thank goodness this isn’t an episode of our biggest mistakes that cost our company’s money I think we’ve all had that email from someone being like did you mean to leave that VM running you have a few hours of our mistakes yeah but that was also talk at a few conferences of hly commment
[26:00] Is indeed that there are a lot of servers running which are doing nothing or almost nothing isn’t it too easy for developers to start new service it’s an interesting question because when you look at the Energy Efficiency of everything we run within software engineering I think I saw a stat somewhere that was something like we like data centers around the world consume more CO2 than entire countries like Peru and things like that smaller sort of countries but still more than a country is the main point here so it is insane when you think about just how much energy and how many resources we are consuming and it does bring to light those questions of should there be more auditing of some of the sort of servers that we’re bringing up and should there be more of a process there it’s a difficult one mhm more and more of our economy is going through the cloud in a way or another so it’s kind of natural so I mean if in you know decades and decades ago U maybe we would have been able to compare you know the infrastructure of electricity or roads to be something like a big share
[27:15] Of the budget of all the countries and today that’s those electronic highways that are a big part of the budget of companies and countries so I think it’s quite natural I I’m not saying this to say hey let’s spend even more let’s let’s let’s waste even more money but I think that’s a quite quite natural Trend going upward us more and more of our lives are digital basically yeah and to piggyback on what Gom said and actually Grace too earlier I mean we Microsoft again I can only speak for us but I know this is not a unique necessarily operating principle but we I mean for instance I get emails saying hey I noticed you have this resource that you know is still running do you want to you know shut this down maybe you know suggesting ways you can be more efficient in terms of your resource consumption your personal resource consumption and I know this goes to larger accounts as well but I kind of again and this is one of those things that you look at and say okay there are probably x amount of resources out there running that don’t need to be running at that level or at all which
[28:26] Is wasteful we need to work on that I’m not dismissing that at all but if you think back before the cloud type of provisioning what would would happen when you needed to field a particular application is you would have to go through layers and layers of bureaucracy and requests and requesting material and the equipment and the space in the server rooms and get it provision you know Hardware provision and the OS and the software stack provision and you know the tests and all this it was crazy expensive and not just in terms of cost you know dollar cost or you know currency cost but also in terms of the time that it took so if you had everybody nodding in the right direction that this application was vital and it needed to be done it may be six months to a year before you could deploy the first iteration of it so the cost comparison of that versus I’m running a VM and I forgot it’s running is still orders of magnitude better by far again it’s not that we need to ignore that it’s just that we’re again I think we’re heading in the right direction so now at least and of course it is much easier to
[29:31] Audit that than you know where are we in the progress of deploying application XYZ I don’t know we’re waiting on somebody to approve the equipment and that’s been three months so the fact that all those applications are running within data centers you know from various customers Etc I hope there’s a better utilization of the actual resources so unlike in those old days where you’d Pro provis servers maybe at some point well you had those servers but you didn’t really need that much capacity well it was there and lingering around whereas hopefully in the cloud because of you know factoring everything together all the customers all the apps I hope there’s better utilization of CPU memory bandwidth and everything I hope so it brings backs memories if you talk about you need someone to approve the server and have it installed and indeed the speed that you can nowadays build something and have it up and running available at the web address within minutes you can go from a very rough ID to Something in the cloud and that’s indeed yeah it’s tempting but it’s also very great if you go
[30:48] Back to Java what are you looking forward to for the next versions so there are a lot of Japs ongoing enhancements which will be coming in the Java language sooner or later are the specific topics that you’re looking forward to use them in the cloud on my side so I mentioned grow VM earlier so it’s not Jeb of course but there’s grow VM there’s there’s project Laden I’m not sure corly also even things like loom for concurrency it’s going to be better usage of U your CPUs basically because of those lightweight threads I think those projects and features and jeets will allow to have even better functioning Java applications that start faster that consume less memory and for example I mentioned that I was focusing on the fully managed sist kind of platforms and on those platform forms where you need to scale up and down Etc according to the traffic when you have to scale up you have to St fast and often the let’s say the plague of soless platforms has always been cold starts but with things like grow VM or project Laden you’re going to start much much faster and use less
[32:18] Memory so it’s better for the CO2 emission it’s better for the response time the latency of your apps so I’m very yeah very interested in those things that manage to keep your application running and use better use the actual underlying systems and memory and CPU and everything I need to mention Project Crack also here something CRA yes I forgot about crack cre is that how you said creu Cru Cru I have been given a talk about this so I can but Creo is actually the system within Linux being used cack is the API on top of it but indeed yeah the speed up of java applications it is a discussion point if you compare Java to other languages but I think also the environment that it runs on is probably a topic is it a Docker which needs to start is it a native application as you said on a VM so I think there’s a lot of options there and pro we’ll probably see a lot of improvements there in the future I mean we have instant on with liberty so utilizing that same underlying creu I think that’s how you pronounce it I always say it wrong I always say Cayu but sounds more like freezing someone
[33:38] You know so I think I’ll go with k so yeah we have instant on which is a very similar sort of feature and I think we’re looking at the moment at whether we could utilize crack with instant on so yeah looking at checkpoint restore with Liberty it’s it’s super cool you know the reduction in as you say startup time the speeds you can get when it comes to development is just it’s yeah it’s amazing in terms of deploying your app in a way that’s more aligned with serverless I’m not going to say it is serverless speed but more aligned I think enabling just that more Cloud native style of deployment that we’re aiming for but yeah so I’ve been experimenting with that actually my framework of choice is micronote and Micron note Ed support for both grvm of course but also crack so I I’ve played with grvm with Micron but not yet crack so that’s next on my list I love also how this works so you have these Community projects like like crack and Liberty and then you have project lien which has the same goal but is still how should to call it a research
[34:52] Project it’s not yet a JEP it’s not yet scheduled to become part of one of the next op jdks so at some point they’ll probably come together and find one but I really like how this the community is pushing Java forward this I want to I want to piggyback on that because that was every when I stop and think about this stuff it’s just you can’t help but smile inside because if if you’ve used Java for any length of time you realize that the pace of innovation has just gone off the charts and I mean it’s Java has always been a great language we’ve always added things methodically and sensibly and very thoughtfully and we’re still doing that that’s the crazy thing but the I say crazy because we’re doing it thoughtfully and yet the pace of innovation seems to be picking up we think of this kind of embarrassment of riches that we have when we’re able to talk about three four or half a dozen different things that we’re excited about coming down the pike and probably none of us have played with all of them yet and there are two or three that every one of us is
[35:56] Probably going I haven’t gotten to that yet or I’ve just kind of started researching that and I can’t wait to dig into that it’s it’s you pardon the expression it’s a great time to be alive because we have so many things that we can play with and evaluate and hopefully use within different contexts which takes us back to the hey your brain is still required to determine which one you apply in which case but yeah it’s it’s really nice to have this kind of selection of tools at our disposal all of which are pretty pretty nice and it’s great to be able to as you say build on top of them so you know even if we have project Laden we have crack we’ve got all these different sort of projects with the same goal it’s nice that we have this community style of innovation where one can build on the other and then they can merge and then we can build upon that and iterate and improve it and there’s no real like there’s no real sense of strict competition because it’s all such a community environment that everyone works together so collaboratively that we’re able to get this rapid
[36:57] Innovation that I don’t think we’d otherwise be able to achieve you see it with other projects like open Telemetry and microprofile for example enabling things like Telemetry for your applications in the cloud like being able to utilize a project in something like the cncf and enable that in another open source specification that can then be used by another group of people it’s just wonderful to see so much collaboration and Community Spirit enabling that Innovation to continue and then also the Frameworks which are built on top of it you mentioned Micronaut quarkus also has support for crack I think then spring 3.2 which is now just released also has it Mark in the previous life you worked for pivotal how do you think that they look at how spring is now in a competition with all these other Frameworks which are also aiming at being a cloud native developed framework which starts fast do you think that that’s some kind of competition I mean I can’t speak for anyone else but I will say that generally the approach is I think that most of most people within the spring camp and probably every Camp take
[38:12] Is that a bit of good nature competition is good we all have things we can learn from each other and as they say steel sharpen steel so I mean spring has been around for a long long time and spring boot even much shorter time obviously but it’s been around for quite a while too but I think sometimes we get distracted by the when did a project start and therefore it’s new and it’s fresh and it’s exciting and I have maintained forever that you should look at the commits and what is the commitment to a particular project a library whatever what’s the pace of commits so commitment and commits in terms of how well is it being maintained extended you know upgraded how well is it embracing the current you know the present and the future so spring is kind of out there leading in many ways and in areas where it’s not again it’s kind of that methodical thoughtful approach to where we are and where we’re headed but you know every one of the options that You’ mentioned corcus Micronaut probably a half a dozen others have something to add to the conversation and anybody
[39:17] Who’s smart is going to listen to all of them because we can all learn from each other so I the whole Cloud native thing I know that spring boot was kind of maybe not the first to coin the term but certainly leaned into that really heavily because the pivotal team saw where things were going and here we are right so everything is pretty much in the cloud except for a few things that still have yet to migrate or for whatever reason you know are staying on premises Etc but this is where we live now so and also that makes me think of something the fact that we’ve got those Frameworks that compete they’re actually also sometimes collaborating on some aspects for example I’m thinking about the what is it called The Grow VM reability metadata so those metadata that help grvm more easily make your application run as native binary actually all those Frameworks contributed to the grm reachability metadata so what the spring boot team did what the quers team Etc all those teams collaborated together it’s going to help those other communities of competing Frameworks so
[40:33] It’s a it’s nice to see that we also know how to work you know hand inand together for the benefit of everyone not just for one framework Community that’s cool I like that you mentioned it’s not about how old or how new something is because I always ask the question what is the newest programming the oldest programming languages is the JavaScript Java python of or PHP and then you have yeah all the youngsters or JavaScript but actually they’re the same age I think python is even a bit older than than the other three so yeah it’s not about the age it’s how about things are evolving and how they keep up with all the new trends and a lot of the time it’s often the older languages or the older Frameworks or runtimes whatever it might be that actually have more experience running Enterprise applications or applications at scale or you know if they’re keeping up with the Innovations and the trends and the latest and greatest in terms of features and compatibility and stuff then actually they’ve got a whole wealth of experience that they bring along with them for that sort of backwards
[41:41] Compatibility as well to enable apps to be able to migrate so sometimes you know the new and shiny stuff is really cool to look at and get inspired by but often it’s the stuff that we’ve been relying on for years and years like Java that just keeps going it just keeps innovating and gives us as Glen was saying that trust that we can rely on it to be able to have our applications as we want them to be and actually if you look at those long wages it’s I think or I POS it that the long wages that are still there nowadays are still there because they manag to handle properly this compatibility with this backward compatibility across versions across all those years because if you look at I mean adding So speaking of my experience of having created a programming language when I look at how the Java Architects manage to evolve Java which is language which already contain lots of features syntactical wise or apis and how it’s been able to continue innovating in spite of because sometimes I speak about the combinatorial explosion of features as you add one new feature it’s going to
[42:55] Interact with all the other existing features so it’s like a you know a big table of n features across M features and how do they work together so as soon as you add a new feature it’s going to be more complicated and they manag to do that in such a way that you can still run very old Java libraries on JDK 21 and that’s fine only minimal backward comp compatibility issues but sometimes it’s for you know good reasons or because some has been deprecated for X number of versions that now it’s time to get rid of that so it’s honestly I’m very impressed with the what the Java Architects did over all those years to make the language so maor and so trustworthy honestly I think we should even dedicate a podcast about the whole Evolution and how records and what’s all related to it has caused in Java to happen like the Improvement in switch cases and the instance off and everything it seems that what is now becoming available in 2122 they were already working on it in 11 and 12 they already had the ID that’s the point we have to reach and that’s also maybe why some things need six
[44:18] Previews or I don’t know how many we have for that’s one of the reason I love Java so much it’s so well taught it’s so well engineered and how things evolve is maybe for some people not fast enough but it has a reason I have one more question it’s not really Java related it’s about how you run things in the cloud and how you trace and debug things Are there specific tools for Java and in Cloud environment how you fix problems if you have a microservice system that’s something I struggled with in the past if something happens in service a but you see the impact in service Z to make it really worse how do you find things like that are there ways that we as developer can think about that is open Telemetry related to that topic yeah yeah open Telemetry and if you’re if you know hopefully if you listen to this podcast you’re using Java so you’re probably interested in microprofile Telemetry if youve not come across micro profile or open source project do go check it out used by lots of different vendors which is the nice thing that collaboration we were talking about
[45:32] So micro profile Telemetry essentially utilizes the open Telemetry framework and what it allows you to do is have distributed tracing throughout your application so it allows you to be able to really pinpoint down to potential failure points or bottlenecks and exactly where that happens within a request so you can trace the path of that request as it goes between different services in your distributed application so it really allows you to dig down if even if it’s an impact on the overall application it really allows you to dig down and debug where did that failure occur why did it occur which service was that in what request path was that part of and be able to get into the nitty-gritty in that sense to really pinpoint it because I think otherwise without distributor tracing with just things like metrics or logs it can be quite difficult to be able to actually pinpoint those issues so yeah open Telemetry is a fantastic tool definitely check it out if you’ve not before I totally agree with that and all those modern Frameworks integrate usually with open Telemetry so
[46:35] Instead of just as you said you know logging and trying to figure out okay is this lug related to this other one I I’ve seen that in the past but yeah pmry is great for that for distributed tracing so even if you’re using you know different products like let’s say I’ve got my Java application with Myron mode or whatever whichever framework but then use CFA I can also you know have this Distributing tracing say oh yeah so this request actually went through this and it went through this CFA Q whatever and came back there using the database that’s really awesome because without that it’s so difficult to it’s like finding a needle in a hay stack basically the context yeah like that’s what makes it so valuable is that context of you know what was this application a part of where was this request going that provides us with the ability to be able to pinpoint so yeah it’s a fantastic tool definitely check out and try micro profile Telemetry if you haven’t before it’s really easy to implement especially if you’re using a runtime that enables microprofile I do want to point out
[47:44] And I know sometimes I mean all of us have a lot on our plates so when we’re working on trying to figure out an issue with a system a distributed system or even a monolithic system that it kind of becomes all consuming and of course if we spend most of our time in distributed systems we think oh my gosh this is so hard and it it’s not that it isn’t but as I as somebody who has had to actually find and fix issues within a monolith I always tell people it’s the problem with a monolith is it seems simple when there’s a problem you know exactly where it is it’s in the monolith the problem is you don’t know where sometimes within the monolith and trying to find the issue within a monolith when everything is in many ways much more hidden can be equally or even more challenging so the distributed systems they add a new dimension you know many more challenges but as as Grayson Yom have mentioned you have traces and spans that you can use to follow any interaction across you know over and back through numerous Hops so even though it’s a little more cumber well a lot more
[48:46] Cumbersome let’s be real you can actually Trace that and find where the breakdown occurs so we have some really great tools at our disposal and in many ways once you do isolate where that breakage point is it’s a much smaller smaller thing you have to fix than it is within this giant U monolithic application so everything has this pros and cons and that in that regard it’s harder to get there but once you’re there it’s easier to solve in many cases and maybe another tool in our tool bed in our tool Bel these days is a test containers U because when you so there’s once it’s deployed in the cloud and use open Telemetry to see what’s going on but also when you’re as a developer you’re developing on your local machine instead of testing you know with an H2 database or something and no you can just run postgress SQL you can run maybe mongod DB or whatever you can run that within containers on your machine and maybe you’ll be able to coach certain problems certain class of Errors on your local machine as as well so test containers can run so many you know databases and platforms and
[50:01] Whatnot U maybe it’s a tool to if you haven’t played with it already maybe a tool to consider next for you to add in your tool belts it’s a great tool I played around it with myself it’s really that de prod parity right or environmental parity however you look at it in terms of trying to get that as close as possible so there aren’t you know well it worked on my machine comments anymore hopefully hopefully you’re able to see it as close to production as possible Right the closer you get to production the more you can hope hopefully reproduce the same issues that you’ll see in production is because obviously the best test is production so we going to approach that and prior to getting there the better but yeah micrometer and micrometer tracing logging and building on open Telemetry all those are good things coming from the more of the spring side of the house but all of them come down to the same thing which is you have to be able to get insight into where the problems may occur have a baseline to compare to and be able to isolate and fix quickly so isn’t production the only good test
[51:06] Environment well it’s the best one right best and worst both sane definitely becomes clear H maybe short discussion about microservices versus monolith is am I correct that there is a trend to go back to monoliths there is a lot of Articles that’s that’s that’s a fact but maybe I mean the thing that often when there’s a new trend we go all in on that new trend but then realize maybe not everything needs to be a you know microservice so it’s more like finding the right balance between the two like the smallest fine grain microservice maybe didn’t deserve to be such a small micros service maybe some macro service would be would make more sense so it’s more finding I think the right balance between the two monolith can be complicated microservices can be complicated and sometimes you have to find the right what should be in a microservice or not so finding yeah just finding the right balance basically yeah I like to say it’s a spectrum there isn’t one or the other I think there’s a huge Spectrum in between of where people can be you don’t have to be strict monolith you don’t have to be strict
[52:20] Tiny tiny tiny fine grain microservices you can be somewhere in the middle and that’s totally fine too you know I think people need to re-evaluate as you were saying not just go with the trends because they look cool and fancy and the big cool organizations are doing it you know you’re not the same as those organizations most of the time you’ll be a different size you’ll have a different application so really it’s about evaluating what’s right for you and finding your place on that Spectrum whether it’s macros services or you know multiple monoliths of some kind you know there’s a wide array of different architecture Styles out there yeah one of the things that is a wonderful and tragic thing about our field is that we when we get a new tool tool we just apply it to everything even stuff it has no business being applied to you know there’s an old saying to the man with a hammer everything looks like a nail we go around hammering on everything even stuff that has no business you know being hammered on we make a lot of damage in a lot of cases and that’s bad right but the good thing is we very
[53:20] Quickly figure out where the applications the valuable applications are and then where the others that semi semi-useful and then the others that we really should never have gone there in the first place so we we’ve kind of over rotated a bit maybe on microservices but now we can come back and hopefully not like you know have the pendulum swing all the way the other way where we you know remodel eyes if that’s a word everything because you have to you have to still employ your brain right we still should be objectively looking at requirements and determining best fit based on the options we have at hand not what’s fash fashionable at the time I like that word fashionable applying that to software engineering is such a like you know I’m sat here in my developer hoodie thinking fashionable really but it is hey hey all right yeah yeah is such a fashionable industry and we don’t really necessarily think of it that way in terms of you know it might not be a clothing fashion but following a fashion of microservices architectural Styles platforms tools we get just as excited about those
[54:24] Things and want to follow those Trends so has has anybody ever watched like little kids playing football soccer whatever you want to call it depending on which side of the pond you’re on so when they’re really little and they start playing it’s just this cluster of kids chasing the ball now wherever the ball goes they’re all chasing it and that’s early trends when it comes to new tools new new methodologies new anything that we get access to it’s only after you use it a while that you start realizing their positions there is a way to work together as a team that doesn’t involve the whole team just chasing a ball and that takes a little while and interestingly I guess the downside is it keeps playing out the same way but again the good news is we do learn pretty quickly so as long as we don’t like forget what we learn as we go then overall hopefully we’ll we’re moving in the right direction but yeah I always think of the kids and that’s like that’s us that’s us you know there’s even a movie of I think 100 kids running after a ball and they are beaten by five good footballers yeah
[55:23] I’ve definitely seen that on social they on and they know what to do so okay now I have to see that that’s great so if you have please drop that into the chat I’ll try to find it and add it to the show notes H and also include of course links to all your work all your social media accounts I’m at the end of my list with questions is it something you want to be added still want to tell about java Cloud whatever it’s not maybe just to react to Marks when you were saying that we still have to use our brain but with AI should we still use our brain or will AI will do you know all the work for us as long as there are hallucinations we’d better be using our brain I totally agree with you but I agree the Lang chain for J I’ve seen a demo of it it’s really great and it’s it’s on my list for the next podcast so I maybe I have to invite you back that time good stuff yeah yeah definitely good stuff it’s it’s as I’ve seen it the demo I’ve seen it’s really bringing the chat GPT stuff and that people are using python for it really brings it to Java so yeah I think it’s amazing exactly it’s it’s
[56:36] Interesting to see that so chat gbt brought large language models in the hands of you know my daughter doing her homework Etc but in terms of if you look at for developers I mean there was I mean all the machine learning expt experts develop Frameworks Etc and longchain the original longchain one in Python and in order to bring that to the masses of developers it’s great to have LangChain4j and maybe in other long programming languages as well I’ve seen there are equivalents for go for cop Etc but it brings the power of machine learning in the shape of llms into the hands of you know 10 million jav developers and there are things that we honestly we needed to have maybe not a PhD in machine learning but be somewhat ml experts and python developers in order to find or train some models to do some classification or something now with proper prompt engineering proper Java framework like LangChain4j you’re able to deliver 80% of the kind of workloads you oh sorry you would have used a specific machine learning model
[58:01] Trained Etc on GPU before being able to actually do the thing so it’s bring to the Java developer masses the ability to do really powerful things nowadays and it will more applications being written so more cloud services being used so that brings us back to the beginning that’s that’s a good thing for every okay that’s it for all of you then thanks a lot for joining this podcast recording thank you also the guests of this episode and you for listening keep an eye on Foojay for future articles about development and everything related to the Java worlds thanks give me a give me a j give me the friends of OpenJDK
Found a mistake, or something to add? Edit this page on GitHub







