Right now, millions of Java developers are spending a ton of time and effort to optimize application performance. They’re working on cloud‑based business requirements that range from web to mobile, AI/ML, and edge. One of the biggest roadblocks they face is the poor compatibility between Java and Kubernetes. Even simple fixes are time‑consuming because developers have to learn and adopt unfamiliar run‑time environments and programming languages. This is where scaffolding the project can save time and headaches.
What Is Scaffolding?
In software development, scaffolding refers to creating temporary or generic code while a program is being developed and tested. Less complex examples include adding code to test for runtime errors and creating a mockup of a form‑fill page. This mockup, or scaffold, behaves how the final form‑fill will behave, but may look different or use different code than the final version. Either way, the result is a temporary skeleton of an application feature that is not intended to be included in the final system or project.
Examples of Scaffolding with NGINX
When using NGINX Open Source as a Layer 7 data plane, developers generally have to put up a fair amount of scaffolding to make things work. This scaffolding might include adding authentication and certificate management, setting up logging, and wiring up automation and CI/CD capabilities. We’re working on extensions to the NGINX ecosystem so that every major requirement for testing and deploying an app is satisfied by one or more high‑quality open source components; for more details, see our blog.
Scaffolding a Java Project into a Kubernetes‑Native App
In this demo from NGINX Sprint 2022, Daniel Oh, Senior Principal Developer Advocate at Red Hat, walks you through how to scaffold a Java project from scratch and then build it as a Kubernetes‑native application with a tiny memory footprint and a start‑up time of just milliseconds.
Daniel also shows how you can continue testing and debugging an application that’s already deployed to a remote Kubernetes environment in a way that duplicates the local developer experience of inner loop development.