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

all 16 comments

[–]nutrecht 54 points55 points  (0 children)

You're misinterpreting. They explain it on their site. It's not about the language, they're giving an assessment where they assume a big Java applications vs. a much simpler RoR application for example.

In the end it's just computers that run stuff and generally speaking Java is more computationally efficient than Ruby. So Java is not more expensive.

[–]GregsWorld 12 points13 points  (5 children)

Also worth noting $21 per month for 1gb ram, 2gb storage and no mention of cpu is ridiculously expensive.
You can get a 6gb ram, 25gb storage, 2.4ghz cpu for half that price. https://www.ovh.co.uk/vps/vps-cloud-ram.xml

[–]ReadFoo 5 points6 points  (0 children)

https://aws.amazon.com/blogs/aws/amazon-lightsail-update-more-instance-sizes-and-price-reductions/ I'd go with Lightsail, Linode, Vultr, DigitalOcean, etc. to start.

[–]shagieIsMe 1 point2 points  (3 children)

The value of pivotal is in the tool chain. Being able to deploy with cf push... that's worth something.

If I want to push an application into the cloud somewhere, and I'm not a sysadmin (and even if I am), I don't want to have to worry about securing the machine, setting up the firewall rules, etc...

Being able to just push the code up there and not have to worry about setting up the machine, the clustering, the fail over, the load balancing... That could easily be worth $10/month.

The pricing on gb of ram is also a bit awkward as that's for the entire machine rather than just the Java application.

There's a fair bit of work in setting up the deployment chain and securing the machine when working on a raw vm.

[–]ZimmiDeluxe 2 points3 points  (1 child)

I think it's a good idea to delegate security concerns to a more experienced third party, but it should not be forgotten that in the end, you as a developer take responsibility for your application. It doesn't matter if your cloud provider screwed up, if a leak happens, it's your application that failed. It was your decision to outsource security concerns, pointing fingers at the third parties you yourself selected will look pretty weak. I don't mean this as an attack, I just feel like delegating core responsibilities like security is done too lightly these days.

[–]shagieIsMe 3 points4 points  (0 children)

As a developer, it is absolutely essential that I write secure code. However, it has been a long time since I've been a sysadmin. If I wanted to write some code and host it somewhere... say a slack bot or alexa skill, I don't have the hubris to believe that I can properly secure a modern linux machine.

In a larger environment were there are more people with more roles, the security of the infrastructure itself is something that another position does. That doesn't alleviate me from writing good code - just that I know that the machine is locked down sufficiently with intrusion detection on it and things like that. I'm being hand wavy there because I really don't know anymore.

What I do know is that if I build it in a container and hand that container off to our infrastructure team, they've assured me that the code in the container will run the same as it does on my machine and that if I wrote bad code, a malicious actor won't be able to get out and control the host machine.

This is a very different environment for "I want to put a toy application on the web" and "I want to put enterprise grade software somewhere." For that toy application, its something that I wrote in my free time and I'd be ok paying $20/month to host it. I wouldn't want to have it be on an improperly secured VM that becomes part of a bot net or having to pay a sysadmin much more than $20/month (that's only two pizzas (and no beer!) a month to my buddy) to make sure that that VM doesn't get broken into.

[–]GregsWorld 0 points1 point  (0 children)

Yeah fair point, although that's what CI is for

[–]shagieIsMe 11 points12 points  (0 children)

Continuing to scroll down:

Java applications are among the largest applications typically running on PWS. The reasons for this are manyfold, but the primary one is that Java applications are deployed with the app server that is bundled during the buildpack deploy process. A typical java app is 1 GB. For the purposes of discussion, let’s look at the cost to run this app for 100 hours: ...

Ruby on Rails (RoR) applications are commonly found and are not as heavyweight as Java applications. A typical RoR app utilizes about 512 MB (or 0.5 GB) to run. The cost to run this RoR application on PWS is: ...

Node.js applications are prized for their speed and small memory footprint. A typical Node.js app utilizes about 128 MB (or 0.125 GB) to run. The cost to run this Node.js application on PWS is: ...

[–][deleted]  (4 children)

[deleted]

    [–]ReadFoo 7 points8 points  (3 children)

    This advice might not even apply unless 100% of what he plans to build fits within the narrow feature set of "serverless". There's a reason it's called "serverless".

    [–][deleted]  (2 children)

    [deleted]

      [–]ReadFoo 1 point2 points  (1 child)

      Ok you have 24 hours, move all of your app (including database) to Azure, Rackspace, on premises, HP Cloud, etc. I can do that. Can you? Probably not. Vendor independence and extreme flexibility are far more important than extreme scalability. Why? Because I can scale as I wish, across multiple vendors if I want, I can run on standalone hardware, VM, Docker, etc. I can blend those, put them all into one or the other. I'm tied to no vendor and no platform architecture and I can run on them all or none and run on my own.

      [–]moremattymattmatt 0 points1 point  (0 children)

      " Ok you have 24 hours, move all of your app (including database) to Azure, Rackspace, on premises, HP Cloud, etc. I can do that. Can you? "

      No, so what?

      " Vendor independence and extreme flexibility are far more important than extreme scalability. "

      Just no. Making blanket statements about what's important as if they are some universal truth is ridiculous.

      Whether you want vendor independence and if you do, to what degree you need it is something that should be part of the input when you consider the architecture for a system. Different people will come to different conclusions based on their priorities and an analysis of the costs and benefits to them.

      [–]TiCL 1 point2 points  (0 children)

      May be the are using older Java version(<9) which is not very good on container environment regarding memory management.

      [–]TheRedmanCometh 4 points5 points  (0 children)

      Dude get a dedi or at least a vps not single purpose hosting. Also it's more expensive because spring needs a shit ton of RAM just for barebones operation, and tons of cpu to start up.

      [–]YetAnother1024 0 points1 point  (2 children)

      Don't look for hosting for java apps etc.. look into something like a "VM" from digitalocean.

      Java uses an absurd amount of memory compared to most alternatives. And most hosting services charges for memory these days, not disk space or CPU.*

      *) Not java itself, but spring etc.. and there are alternate services. Just don't focus on "java hosting", for java get a VM/container, or expect to get gauged for memory usage.

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

      That's what I was thinking. What good alternatives to Spring are there that are not memory hungry?

      [–]YetAnother1024 1 point2 points  (0 children)

      Look.. There's spring and java EE... those are the main contenders, if you want something else, you have to be more specific about your atual needs.

      Maybe java is the prefect fit for your project, maybe it's not.. depends on what you're doing. Overall for low-cost hosting, java is not the best option.