Uncategorized

This Month in Spring – February 2020

 

Hi, Spring fans! Welcome to another installment of This Month in Spring! I've gotta tell you, mes amis, the month-ish cadence I've struck with this newsletter, This Month in Spring, has been more jarring for me than anyone. They're a constant reminder that entire months have crept up on me unawares. Time sure flies when you're having fun! And I have indeed been having a lot fun! I've been busy – super busy – working on my book Reactive Spring and on the podcast, A Bootiful Podcast.

The Reactive Spring book is not yet finished, but it's already north of 250 pages, and the chapters that are there are solid. You can buy the book now and you can start reading today (and feeding back). You'll be entitled to any updates to the book leading to its completion as well as to the final book itself. Even if you don't read the book, you're more than welcome to peruse the source code for the book over on Github.com/Reactive-Spring-Book. There's a lot of code there, all using the latest stable versions of Project Reactor, Spring Boot and Spring Cloud. There's also a project that I've built that supports the publication process itself. Remember, I'm self-publishing this book, so naturally, I used Spring Boot to make it easy to create the screen- and prepress-ready pdf, epub, mobi, and html editions of the book. I wrote the whole thing to support my book, but then realized it's all pretty reusable as autoconfiguration. So, maybe you can use it if you ever decide to self-publish a book as I have.

I've also been hard at work on the podcast, or at least, the technology behind the podcast. I wanted more of a platform, so I've been working on the code over on Github.com/Bootiful-Podcast. There's a ton of stuff there, but basically, the entire pipeline to create and publish a podcast episode is described there. So too is the static-site generator that I use to keep the new official site for the podcast (BootifulPodcast.fm) – which is, at long last, live! – up to date. Most of the code involved in that pipeline is Java and Spring Boot running as Cloud Foundry application instances. There is one component that I use to do the audio mixing and that thing is written in Python and requires gobs of memory so it runs on AWS. Sigh. I'll figure out how to get that thing working on Cloud Foundry one day or die trying!

You know what could be kind of interesting? Taking advantage of the brand spanking new mvn spring-boot:native-image Maven command to generate native Docker images with Spring Boot 2.3.0. (You can, of course, already try it out on the Spring Initializr (start.Spring.io)!) The new Docker support leverages buildpacks, so you get consistent builds anytime you use the same buildpack. Don't know about buildpacks? They're basically container factories. They take a code artifact – a .jar or a .exe for .NET or a bunch of .pyc files or .js or whatever – and they generate a container with a standard layout and a filesystem loaded up with the things required to run that code artifact. So, you might give the Java buildpack a .jar, and it'll make sure you're given a container with the latest, secured, and tuned version of Java with parameters tuned appropriately for Spring Boot applications. This helps give you organizational consistency. If I wasn't using a fully-fledged platform like Cloud Foundry or Heroku, then I could at least rest easier knowing that buildpacks (which came from a collaboration between Heroku and Cloud Foundry) are supported. I can use the resulting containers to run on Kubernetes-based platforms.

Of course, it's been fun visiting with customers and doing shows, too! And, I'm so looking forward to good fun in Atlanta, GA, on 19 February for the epic Devnexus 2020 event. This show is always one of the best in the business, and it is the second-largest Java show (after SpringOne Platform 2020, of course!) in the US. If you're there, don't hesitate to drop me a line, as usual – I'd love to connect! I'll be talking about the reactive revolution, looking at new technologies like RSocket, R2DBC, and their use in Spring Boot and Spring Cloud.

I'm also doing an online training about Reactive Spring on the Safari technical marketplace on 14 February 2020. There are still some spots available – register now and join me for three-plus hours of Reactive Spring.

Now, my friends, without further ado, let's get into this last month's roundup. There's entirely too much stuff, so I'm grateful that I take such studious notes every Tuesday on the Spring blog.

I've always wondered if I should have a post-roundup paragraph thing or not. It would kind of be like one of those famous Marvel post-credits scenes. But, Spring's a tough act to follow, so instead, I'll see you next month!