Sophia Parafina

Improved Docker Container Integration with Java 10

Many applications that run in a Java Virtual Machine (JVM), including data services such as Apache Spark and Kafka and traditional enterprise applications, are run in containers. Until recently, running the JVM in a container presented problems with memory and cpu sizing and usage that led to performance loss. This was because Java didn’t recognize that it was running in a container. With the release of Java 10, the JVM now recognizes constraints set by container control groups (cgroups). Both memory and cpu constraints can be used manage Java applications directly in containers, these include: adhering to memory limits set in the container setting available cpus in the container setting cpu constraints in the container Java 10 improvements are realized in both Docker for Mac or Windows and Docker Enterprise Edition environments. Container Memory Limits Until Java 9 the JVM Continue reading…

Sophia Parafina

Video Series: Modernizing Java Apps for Developers Part 3

Moving a monolithic application to a modern cloud architecture can be difficult and often result in a greenfield development effort. However, it is possible to move towards a cloud architecture using Docker Enterprise Edition with no code changes and gain choice , security and operational agility in the process. Part 3 of the series begins the modernization process. I’ll take one aspect of the current application and break it out into a microservice. As written, the application writes to the database directly, but direct writes to the database can easily overwhelm the application by a large number of requests. One solution is to implement a messaging queue. As in the part 2, I’ll follow several guidelines: Leave existing code in place. Design the new code as a separate and reusable application Deploy the microservice locally using Docker Enterise Edition Test the code In this Continue reading…

Sophia Parafina

Spring Boot Development with Docker

The AtSea Shop is an example storefront application that can be deployed on different operating systems and can be customized to both your enterprise development and operational environments. In my last post, I discussed the architecture of the app. In this post, I will cover how to setup your development environment to debug the Java REST backend that runs in a container. Building the REST Application I used the Spring Boot framework to rapidly develop the REST backend that manages products, customers and orders tables used in the AtSea Shop. The application takes advantage of Spring Boot’s built-in application server, support for REST interfaces and ability to define multiple data sources. Because it was written in Java, it is agnostic to the base operating system and runs in either Windows or Linux containers. This allows developers to build against a heterogenous architecture. Project setup The AtSea project Continue reading…