Hacker News new | ask | show | jobs
by garenp 2065 days ago
Atlassian does not provide particularly good guidance on how to get their tools to perform well. The first big issue for any moderately busy system is that you need to dedicate huge gobs of heap memory (think 16G+) to the tool. After that, they suffer from poor schema design - there are tables that are literally missing indexes on commonly queried columns, and some columns that have delimited values embedded in them.

It's hard for me to imagine that atlassian would allow individual instances of jira/confluence/etc in their cloud versions to get nearly as much resources as you need to give them on-prem. The incentive would always be for them to try to minimize the amount of memory every instance gets, which does NOT maximize your individual performance. Shared resources will also make performance more variable and "noisy", making it more difficult to narrow down specific causes. It's hard for me to see how "Java" and "cloud" go together.

6 comments

> It's hard for me to see how "Java" and "cloud" go together

AirBnb, LinkedIn, Netflix, Twitter, Foursquare, Sony, Shopify etc.

Most of the top tier websites use something on the JVM e.g. Java, Scala.

> It's hard for me to imagine that atlassian would allow individual instances of jira/confluence/etc in their cloud versions to get nearly as much resources as you need to give them on-prem.

I always wondered that, too! Like, you'd think that if you have devs building a product and a team running a hosted instance of the product in the same company, that they'd have a very good feedback loop and make it easy to run the thing and to do it well. Although, I wonder if the answer is that it's not the same product - like with bitbucket, where the thing they run in the cloud isn't the same thing as they sell for on-prem. Or even a lighter version (BB, AFAIK, is literally 2 separate codebases), where they cut features in order to make the cloud version work.

> It's hard for me to see how "Java" and "cloud" go together.

Nah, it's not Java, it's the specific product. I've worked at a SaaS shop that did all Java, and while the pathological cases are comically bad, it's actually fine most of the time IME.

They don’t.

They forked the code base around 5 years ago now. Cloud/on prem.

Cloud is or was multi tenanted, you didn’t get your own isolated server, you got routed to some compute that would then pull data at request time based on your tenant id.

With a hard fork of two seperate product streams it was inevitable at some point maintaining feature parity between products would get to much.

Java and cloud go together quite nicely. Backend services, a JVM that has now be tuned for many many years by lots of clever people. If you have a long lived service it works really well. It works better than your node js app running a single instance on a multi core server with the event loop getting blocked.

Makes sense. SaaS and desktop have subtle different needs that cause widely different problems to solve.

The amount of effort I would fathom needed to maintain a single code base that's architected to do both would be exhausting.

I'm disappointed they don't just come out and say it, i.e. play open cards and help your customers understand

> It's hard for me to imagine that atlassian would allow individual instances of jira/confluence/etc in their cloud versions to get nearly as much resources as you need to give them on-prem.

The homedir for our on-prem Confluence instance is >120GB and the MySQL dump is 26GB uncompressed (2GB gzipped).

Not sure how that import would/will go.

If Atlassian gets paid by month to store it, it seems ok. Most images seem to be in AWS anyway, so they probably don’t back them up. The DB can get big but is that a problem if they are paid to maintain it?
>It's hard for me to see how "Java" and "cloud" go together.

Netflix.

> It's hard for me to imagine that atlassian would allow individual instances of jira/confluence/etc in their cloud versions to get nearly as much resources as you need to give them on-prem

Yes, which is why the atlasaian cloud is no longer a collection of individual customer instances. More details: https://youtu.be/0N4KknY_zdU

> It's hard for me to see how "Java" and "cloud" go together.

Why? From its release, Java has been used for SaaS. SAP runs its cloud services using Java and this includes subsidiaries Ariba, Concur, and SuccessFactors.

> It's hard for me to see how "Java" and "cloud" go together.

Given the number of companies known to use Java in the cloud very successfully, this is a “Citation Needed” moment.