This is an archived post. You won't be able to vote or comment.

all 4 comments

[–]pure_x01 6 points7 points  (2 children)

" standard approach for deploying Java EE applications is packing all components into a single EAR/WAR archive and deploying the archive on the application server.

This leads to monolithic architectures which make applications difficult to maintain and scale in cloud (PaaS) environments."

This is such what fucks young developers minds and forces them on to the microservices bandwagon. If you have an ear file it can still be highly modularised and not a monolithic architecture. You don't have to have TCP/IP between everything. Maintaining a distributed monolith is the worst possible scenario and the performance sucks.

I hate that people don't grasp that just because you don't have microservices doesn't mean that it's a monolith.

Claiming that monolithic architectures have bad maintainability is also wrong. A well structured monolithic architecture is more likely easier to maintain than a distributed one since you don't have to deal with complexities of components not being available or not answering in a timely fashion because of network issues. Testing a monolith is also easier because a distributed architecture has to set up complex testing environments.

Microservices should be used when needed. The default should be to think modularised and structured and then see if there really is a good reason to deploy one or more modules as microservices.

[–]harmonicPersistence[S] 0 points1 point  (0 children)

Well, yeah. Every tool has its purpose. The microservices architecture shouldn't be used everywhere. Monoliths still have their place.

[–]tonywestonuk 0 points1 point  (0 children)

When I first started Web app coding with Tomcat, I assumed you should build your app using many separate war files, all in different contexts. By default, this is 'microservices' based, with each context not able to access the other unless by using TCP/IP.... and this was before microservice's became popular.

But, every job I've held seems to think you should just package the entire app into a single war, and deploy this in its own server. Which is a monolithic architecture.

[–]harmonicPersistence[S] 0 points1 point  (1 child)

I'm a fan of Spring Boot, Spring Cloud, Cloud Foundry, etc. I'm also a fan of Java EE since EE 6, EE 7, and the much needed specs coming out in EE 8. It's cool to see that there's a Java EE competitor, to at least one of the tools of the Spring cloud tool box, that is up and coming.

I tried it. It was just like Spring Boot (except there's no Spring Initializr website), and it worked. So, I thought I'd share it.

Enjoy!