Sophia Parafina

Video Series: Modernizing Java Apps for Developers Part 5

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 (EE) with no code changes and gain portability, security and efficiency in the process. To conclude the series In part 5, I use the message service’s REST endpoint to replace one part of the application UI with a Javascript client. The original application client UI was written in Java Server Pages (JSP) so that any UI changes required the application to be recompiled and redeployed. I can use modern web tools and frameworks such as React.js to write a new client interface. I’ll build the new client using a multi-stage build and deploy it by adding the container to the Docker Compose file. I’ll also show how to Continue reading…

Sophia Parafina

Video Series: Modernizing Java Apps for Developers Part 4

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 (EE)  with no code changes and gain portability, security and efficiency in the process. Part 4 takes advantage of the messaging service I added in part 3. In this installment, I’ll add self service analytics powered by the open source Elasticsearch / Kibana stack. The reporting database and analytics UI run in containers and the worker is updated to also store data in Elasticsearch. The Docker platform supports adding new components to a running deployment without shutting down the application containers that are currently running. You’ll learn how Docker lets you add new capabilities to the application with zero downtime in production. Docker MTA Video Series: Modernizing Java Continue reading…

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…

Get the Latest Docker News by Email

Docker Weekly is a newsletter with the latest content on Docker and the agenda for the upcoming weeks.

Sophia Parafina

Video Series: Modernizing Java Apps for Developers Part 2

Moving a monolithic application to a modern cloud architecture can be difficult and often results 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 portability, security and efficiency in the process.   In the first post in this series, we discussed how you don’t need to do a full re-architecture of your application to microservices when using Docker Enterprise Edition. In the second installment of the series, I go into the details of containerization of the application. This process builds containers using the application code as-is. I’ll follow three simple rules: Keep the existing architecture Keep the save version of the OS, components and application Keep deployment simple, i.e. static not elastic I’ll also demonstrate how to use multi-stage build file to compile the code and deploy it to application Continue reading…

Sophia Parafina

Video Series: Modernizing Java Apps for Developers Part 1

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 portability, security and efficiency in the process. Containerizing a monolithic application is a great starting point for modernizing application architecture.In many cases this can be done with no code changes at all.  From there, breaking down the application into smaller components makes it easier to deploy updates, introduce new components and manage scale. This new video series covers modernization for Java applications. It walks through the process of evolving a N-tier Java application to a distributed application running across multiple containers. Docker provides the platform that plugs in and manages all the components into a coherent architecture. This  series does not cover Continue reading…

Sophia Parafina

Modernizing Java Apps with Docker

[This post was written by Sophia Parafina and Arun Gupta.] Modernizing Traditional Applications or MTA was one of the themes at DockerCon EU 2017. Traditional applications are typically built a number of  years ago but are critical to business operations. The developer and operational skill set to maintain the application may be hard to find. The code base can be difficult to maintain, if it is available at all. The team that wrote the original app may not even be around. The applications go into maintenance mode, which may mean they are patched regularly for vulnerabilities. Any revisions to the code can take significant number of hours to test and deploy, so updates are infrequent. It can also hold back infrastructure improvements as dependency management becomes a huge pain point. Any modern application needs a faster delivery time that can Continue reading…

Sophia Parafina

Videos series: Modernizing Java Apps for IT Pros

Today we start releasing a new video series in Docker’s Modernize Traditional Apps (MTA) program, aimed at IT Pros who manage, maintain and deploy Java apps. The video series shows you how to move a Java EE 7 application written to run on Wildfly 3, move it to a Docker container and deploy it to a scalable, highly-available environment in the cloud – without any changes to the app. This is a 5 part video series in Docker’s Modernize Traditional Apps (MTA) program, aimed at Java IT Pros. The video series shows you how to move a Java EE app on JBoss Wildfly to a Docker container and deploy it to a scalable, highly-available environment in the cloud – without any changes to the app. Part 1 introduces the series, explaining what is meant by “traditional” apps and the problems they present. Traditional apps Continue reading…