Über jars vs thin wars, pros and cons

This post was inspired by a Twitter conversation with Reza Rahman where, as far as it goes on Twitter, the relative merits of using Über jars as opposed to thin wars were being bandied about.
My first post on my new blog is also quite a long one, please bear with me.

A little history

There is a growing tendency in the industry to move away from the traditional monolithic application run on a fully tooled up application server towards running apps defined by the single service they provide, the so called microservice. Here the emphasis is reducing the application to providing independent support for one thing .
The idea behind the microservice is the microservices architecture where a set of loosely coupled microservices are used to build applications using them. 

This has, in turn, driven the development of application servers better suited to running microservices in them. The industry's response to the demand for microservices support has been the forming of the Micro Profile Initiative, a consortium of experts substantially supported by the leading industry players in the business.

There are many good reasons for going down the microservices architecture  road, there are also some very important issues being glossed over in the rush to hype it too. I am not going to be discussing that here apart from saying that the issues are not being ignored and you can educate yourself by checking out some of the recent Oracle Dev streams on YouTube, for example.

Über jars?

What is this thing and why would we want it?
The rather German looking word means "over", in this context it really means "everything". The term was first coined, as far as I know, by developers who thought it was a good idea to throw all dependencies and your own code into one jar file and solve the, nightmarish, problem of class conflicts that inevitably occur. Because the German Ü is not easily available on most keyboards you will see this as plain old Uber.

In the context of microservices an Über jar is a form of packaging where your entire service and the server it runs in are bundled into one jar file. The advantage of this is that you simply need to use the java -jar MyUberJar.jar to spin it up and get it running.

Spring Boot are definitely advocates of Uber jar deployment however even they are beginning to see that, perhaps, the idea is not as great as it sounds.
The vendors involved in the Micro Profile Initiative are also on board with this and provide you with the ability to create Über jars for their Micro Profile application container.

Thin wars

A war file is how an application is packaged for deployment in a standard Java application server. These days you can also package EJBs in them, once the domain of ear packaging (enterprise archive), which is a really good thing. The thin part comes from the fact that you only package your business logic and UI. Any third party dependencies like PrimeFaces etc, you will also need to package with it. Everything else should be provided by the application server you want to run your application on. This is the exact opposite of an Über jar.
Because microservices should be as lightweight as possible packaging them as a thin war means the resulting file size and deployment times are at a minimum. Obviously you need to have a running application server to deploy them to, something I will address later.

Über jar vs thin wars

After the rather long preamble we come to the meat of the actual discussion: which is better?

I have to admit, I am not a real fan of Über jar packaging but there are often political forces at work which removes the choice of technology from your hands.

Pros for Über jars

Having everything in one file means you can simply distribute it to wherever you need it to run and, assuming that all the other required services are available, run it like any other java executable.
Because it is becoming easier to choose the application container of choice (sorry Spring Boot) for your Über jar this is no longer a barrier to deploying your app in this fashion.
You do not need to have a preinstalled application container available.
Easier to test the application against the services API.

Cons against Über jars

Your business logic and application container are all in one file. Yes, the pro is a con and not an insignificant one. When your business logic changes, which it will, then you have to ship another copy of the application container, which hasn't changed, with it. If you have only changed 1 class then that overhead becomes much more significant.
Spinup times are higher compared to the deployment of a thin war to a running application container.

Pros for thin wars

File size: you are not packaging anything other than the business logic and its immediate dependencies. Because of this you are not distributing copies of the application container.
Thin wars are a much better fit for containerisation. More on this later.
Deployment of the application itself is lower when not taking account of application container startup times.
You are not locked in to the application container you are deploying to, the caveat being your application doesn't leverage implementation specific container features.

Cons against thin wars

You need more infrastructure in place before you can deploy: the application container.
Unless you also include the distribution and configuration of your application container into your CI/CD chain this can become a showstopper.
More effort is needed to test your application against the Service API. This can be a trivial amount of effort though.

Containerisation

With container based distribution and deployment using systems like Docker becoming more mature and of viable production strength the lure of the Über jar loses its shine.
Without going into any detail the way in which Docker leverages the concept of layered images and caching make the deployment of an Über jar as opposed to a thin war much less attractive.

Reza Rahman gave me a link where the problems, and their solutions, of Über jar deployment in a docker container involving Spring Boot are discussed. My take on that is that there is way too much effort being made to overcome problems that a thin war Docker deployment simply never has. IN short, they explode the Über jar into an image and distribute that, thus losing any advantage an Über jar deployment may have had.

In conclusion, and if you got this far thanks for sticking with me, my take is this: both Über jar and thin war deployments are viable alternatives you can use for getting your microservices out there.
But the choice of which to use should always be the one most optimal for the job.

I am not a fan of Über jar deployment and I certainly would not advocate its use where containerised deployment is being used. I would use it where its use is more effective than other alternatives: Proof of Concepts, demos for the most part. 


Comments

  1. Another reason to use über jars is the update hell you run into using traditional application servers. The traditional approach is to use a single application server for multiple applications. If you do so, updating the application server means that you have to test (and possibly modify) every application running on this application server. Simultaneously. Luckily, most operation departments have recognized this as a problem and dedicate an application server to each application. Which is pretty close to using an über jar.

    Closely related is that you know precisely what you ship in an über jar. Using an application server, you don't know. The application server may be updated at any point of time, breaking compatibility to your application.

    Sometimes the operation department insists on installing common libraries such as PrimeFaces on the application server. There may be good reasons for this (usually licensing), but it also means that developers and architects can never update these libraries themselves. I've been working many years in a very conservative company. On average, updates were installed three to five years late. In such an environment, über jars become very attractive.

    Of course, many of these points have something to do with corporate politics. If you're adopting devops, you'll never encounter these problems (or at least, you can do something about them).

    Another interesting point may be the skill set of the operations department. Often, the operations guys are very familiar with Unix, but less familiar with Java. If so, you may be better off with über jars because they make the developers responsible for the entire Java stack.

    BTW, some of these arguments can easily be turned around: using an über jar means that the operations department can't deploy an important security patch.

    Cutting a long story short, often the reason to chose über jars has little to do with technology. Like so often, it depends on your team to decide with solution suits you best.

    ReplyDelete
    Replies
    1. By the way, here are a few links explaining the pro of über jars in much more detail:

      https://jaxenter.com/java-application-servers-dead-112186.html

      https://de.slideshare.net/ewolff/java-application-servers-are-dead

      https://www.beyondjava.net/blog/application-servers-sort-of-dead/

      Delete
  2. Thanks for the comments and the links, which I will read when I get the time.
    I will be publishing my take on devops and application servers drawing on my experiences developing a complete CI/CD chain for a multi-application system soon which will address some of the serious issues you mentioned in your first comment.
    An intermediate solution, hollow über jars, looks promising and goes someway to addressing the problems with containerised über jars.

    ReplyDelete
  3. good information.
    it was useful.
    keep sharing.
    best java training in bengaluru

    ReplyDelete
  4. Best Article BUY ADDERALL ONLINE Excellent post. I appreciate this site. Stick with it! Because the admin of this web page is working, no doubt very quickly it will be well-known, due to its quality contents.This website was how do you say it? Relevant!! Finally, I’ve found something that helped me.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. Welcome to Ragdoll Kittens Cattery click here to adopt a ragdoll kitten online We are a small and loving cattery . We are pleased that you have chosen to visit our Ragdoll cats/Ragdoll kittens cattery, and hope you will notice right away from our website how beautiful and loved our Ragdoll cats and kittens are. These beauties are easily integrated into our loving family home, first as mothers carrying the litters, and then from the time the ragdoll kittens are born until they are adopted so we always have Ragdoll kittens for sale|Ragdoll kittens for adoption|Ragdoll kitten price|Ragdolls|Cost of Ragdoll kittens|. Our adult cats have tested negative for HCM and PKD1 through University of California Davis. Upon request, we have five generations of pedigree documentation on our adults available to anyone who is interested. Ragdoll kittens are registered with The International Cat Association (RAGDOLL KITTENS FOR SALE),and are never caged. The cats that are in our reputable breeding program can produce mink, sepia and traditional Ragdoll kittens. Ragdolls have a laid-back personality and enjoy being physically handled making them one of the best lap cats! We are all family here at Ragdoll kittens cattery since we are ragdoll kitten breeders and all the love we bestow by holding each cat and kitten daily further Teacup RAGDOLL Kittens for sale|Hypoallergenic kittens for sale nurtures their loving personalities and temperaments,TICA/CFA REGISTERED RAGDOLL KITTENS FOR SALE thanks for adopting a ragdoll ketten from us


    WELCOME TO pug puppies BREEDERS HOME BUY A PUG ONLINE|PUG PUPPIES FOR SALE|ADOPT A PUG ONLINE|PUG|BLACK PUG PUPPIES FOR SALE
    We are so glad you stopped by to check out our amazing TEACUP Pug puppies. All of our animals come fully up to date on vaccinations, heart-worm tested negative, and de-wormed, as well as neutered, and treated for any ailments found upon veterinary examination Adopt a teacup Pug puppy
    Ownership of a Pug includes a commitment that is wider in scope than providing doggy necessities and allowing this jovial little pet to occupy a portion of your home. Pug ownership is a give-and-take relationship that will continue throughout the little dog’s life. That enjoyable companionship thrives when each member of the pair respects the other and camaraderie rules the union. Your Pug will entertain you, love you, and be obedient and faithful to you if you spend time with your doggy friend.
    Adopt a pug puppies online puppy onlie or pug puppies for sale online does not all depends on the money involve. You have to love
    Black pug puppies for sale at heart before you go in search of pug puppies for sale or adopt a pug puppy.This means that you have to keep the pug puppy price or cost of a pug puppy or a teacup puppy in mind before you harnest the interest of buying a pug online.

    ReplyDelete
  7. We are here to provide you with carefully crafted and top quality medical products through a wide selection.

    Buy marijuana online

    Moon Rocks

    Gummy Bears

    Hash Oil

    CBD Isolate

    ReplyDelete
  8. Order our JUUL Pods and JUUL devices today and become a part of the healthier and safer smoking family.


    Virginia Tobacco

    Menthol

    Mango Flavor

    ReplyDelete
  9. DMT, LSD, Shrooms and other psychedelics are proving to be a great guide by "supernatural beings". People with weight gain issues can also take the the drug. No need to put a mask over the benefits anymore

    ReplyDelete
  10. Hi everyone here, I just wanted to say your blog is awesome do post something about VOOPOO Argus160W Kit I love to read about this thanks in advance.

    ReplyDelete
  11. This blog looks just like my old one! It's оn a totally different subject but it has pretty much the same layout and design. Great choice of colours!
    Grand Power Stribog 9mm with HBI SBT Folding Brace

    ReplyDelete
  12. https://k2incenseonlineheadshop.com/
    info@k2incenseonlineheadshop.com
    k2incenseonlineheadshop Buy liquid incense cheap Buy liquid incense cheap For Sale At The Best Incense Online Shop

    ReplyDelete
  13. https://syntheticworldwide.com/
    sales@syntheticworldwide.com

    Buy cheap liquid herbal incense at your best online shop

    ReplyDelete
  14. deepnetdrugs.com
    substituível e Tentativa de droga drogaria namoro on-line no manufatura, e alguns bem começar depois de drogas duras como Méto incrível (metanfetamina), cocaína em formas diferentes como, cocaína peruana, cocaína colombiana, crack cocaína, cocaína boliviana e um mais. Juntamente com os pacotes de MDMA, de vários livros e livros, MDMA Crуѕtаlѕ, MDMA Pоwdеr e algumas drogas especiais como Addеrаll, Oxусоntіn, Hуdrосоdоnе, Rіtаlіna comprimidos, Pеrсосеt, tramadol e mais nem.
    comprar cocaína online

    Compre comprimidas Adderall online
    Compre tablets MDMA online
    Compre heroína online
    Compre comprimidos de Metanfetamina online

    ReplyDelete
  15. It is amazing and wonderful to visit your site. Thanks for sharing information; this is useful to us....
    Full Stack Institute in Delhi
    FOR MORE INFO:

    ReplyDelete
  16. I am glad to discover this page: I have to thank you for the time i spent on this especially great reading!! I really liked each part and also bookmarked you for new information on your site.
    Data Science Training in Hyderabad
    Data Science Course in Hyderabad

    ReplyDelete

  17. You can buy psychedelic drugs online like LSD, DMT, Magic mushroom, psilocybin-mushrooms, psilocybe and shrooms etc. Buy LSD online from us and stand a chance of 100% guaranteed delivery fast delivery to all destinations worldwide. https://ourpsychedelicsshop.com It is known in the whole world that it has not been easy to buy psychedelic online overnight.

    Buy lsd online
    golden teacher mushrooms
    microdosing lsd
    dmt vape pen
    liberty cap

    ReplyDelete

  18. Great to become visiting your weblog once more, it has been a very long time for me.

    Pleasantly this article i've been sat tight for such a long time. I will require

    this post to add up to my task in the school, and it has identical subject along

    with your review. Much appreciated, great offer. data science course in nagpur

    ReplyDelete

  19. Hello
    Please i just took up LABRADOR PUPPIES breeding as a hobby after my mom passed away because they were her favorite PUPPIES. Despite the fact that they are very intelligent, am finding it very difficult getting them to mate.
    For any information CLICK HERE ENGLISH LABRADOR PUPPIES FOR SALE.THANKS



    ReplyDelete
  20. Amazing write-up! Really Good.
    Now the foundation of any business is marketing. Adsify marketing is the best Digital marketing in Trivandrum.

    ReplyDelete
  21. Glo Extracts – Real Glo Thc Carts
    Glo Extracts offers the best in Cannabis Carts by guaranteeing safe premium Cannabis Oil Vape Cartridges. These Glo Cannabis Cartridges are the best carts in 2021.
    Glo Extracts is one of the only vape carts companies that runs lab tests for vitamin E in their products. we work hard in keeping our customers safe.
    glo extracts
    glo carts

    ReplyDelete
  22. Your content is nothing short of brilliant in many ways. I think this is engaging and eye-opening material. Thank you so much for caring about your content and your readers.
    data analytics training in hyderabad

    ReplyDelete



  23. Our online store is one of the best in the supply of rare and high-grade (Mushrooms, Edibles. Psychedelics, and more)with absolute purity. All our products are tested to guarantee potency after production, during distribution and even storage. We ship globally in discreet and undetectable packaging using our network of trusted partners.
    psilosybin mushroom 2022, trusted magic mushroom site 2022,
    cheap liquid lsd, order cheap psychedelic mushroom,
    cheap magic mushroom, super quality shrooms,
    most potent psilocybin mushroom on the market,
    best microdosing mushrooms 2022, Golden teacher mushroom for sale,
    where to buy B+ magic mushroom, buy shrooms online ,
    buy psilocybin mushroom overnight shipping, effective microdosing for ptsd,
    buy mushroom truffles online cash on delivery, buy microdose capsules online 2021,
    magic mushrooms for mental illness for sale,
    buy mushies for anxiety/deppression and ptsd, cheap psilocybin mushroom, shrooms near me,
    where to buy psilocybin mushroom near me, cheap psychedelic mushroom for sale,
    buy caps/buttons cheap, best place to buy magic mushroom,
    buy cheap fungi mushrooms, cheap strong fungus, best quality spores for sale,
    buy mushroom grow kit online, buy fungi shrooms near me, cheapest magic mushrooms online,
    where to buy penis envy online, where to buy mexicanna online, buy microdose capsules online,
    best microdose capsule for sale,
    fungi mushroom for sale, best liquid cultures online, buy spores near me, buy Nirvana mushroom near me,
    buy pajaritos mushrooms near me, psychedelic mushroom near me, buy medicinal mushroom online,
    buy 5-MeO-DMT, buy dmt vape pen online, buy lsd tabs online, buy dmt online, where to buy dmt,
    lsd for sale, buy mushies near me, buy shrooms wholesale price, strong boomers for sale,
    Buy trippy shrooms online, buy penis envy, buy albino A+, buy amazonian cubensis,
    buy psilocybe cubensis, buy blue meanie, buy vietam cubensis, buy z strain shrooms,
    buy boomers cubensis online, buy cubensis buy golden teacher, buy liquid lsd online
    Our quality is the best you can find around and we sell in small/large quantities with guaranteed discreet delivery in good time Shipping




    website...https://megapsilocybin.com/
    call/text..+1(458) 201-6900
    email..sale@megapsilocybin.com

    ReplyDelete
  24. I am visiting first here. Really an awesome content and informative blog. Keep up this good work.
    Data Science Institute in Hyderabad

    ReplyDelete
  25. Thanks for sharing this blog its very helpful to implement in our work
    Marketing Agency in Dubai

    ReplyDelete
  26. Informative blog and knowledgeable content. Keep sharing more blogs with us. Thanks for sharing with us.
    Data Science Institute in Hyderabad

    ReplyDelete
  27. thanks for sharing info about pros and cons of uber jars
    Lead Generation Marketing

    ReplyDelete
  28. Your articles are imaginitive. I'm looking through talk to perusing the plenty of articles which you have melded here. Thumbs occurring! Meshcam Pro

    ReplyDelete
  29. “I couldn't ask for a much better brother than you. I'm so proud of everything that you do and I'm proud you're my brother. Happy birthday!.Big Brother Birthday Wishes For Brother

    ReplyDelete
  30. This blog is a valuable, up-to-date resource with engaging content. Check our IT Certification Course by SkillUp Online.

    ReplyDelete
  31. Packman Disposable comes in 11 different strains and flavors, ranging from sativa to indica to hybrid. You can enjoy the smooth and powerful vapor of Packman cartridges without any hassle, as they are pre-charged and ready to use. Packman disposables are the ultimate choice for convenience and quality. packmandispos.com

    ReplyDelete

Post a Comment