jesse

jesse OP

@outlog every 1GB of memory comes with 1 CPU share. 1 CPU share is “200m” as defined using Kubernetes CPU requests or roughly 20% of a Google Compute Engine core guaranteed. If you are on a machine with other containers that don’t use much CPU, you can use as much CPU as you like. For more infromation see Replica Sizing.

1
Post #11
OvermindDL1

OvermindDL1

Never used it. ^.^

All automatically done via my scripts.

Eh, wrote once a long time ago, not touched them since, and heck, elixir’s distillery/exrm can generate them for you if you want fresh ones.

Yeeeah I don’t trust most things to do this right, since almost none of them do, I’m anal about going over every single option… >.>

Already versioned by OTP’s release system.

Ditto, you can start up an older one just as easily as the latest except with an extra argument.

For my erlang servers that is all I do, single command.

I do run a lot of non-erlang stuff though, I just roll them.

Also a single ssh command (and I have a lot of aliases to reduce typing as well).

Automatically managed. ^.^

I use a linux package for that, forgot what it is called, it works well, not touched it in a decade except to add new log file locations as I install new things (since everything likes to do log files different to everything else… >.>).

I’ve never hated doing that, it is fun! I constantly run out of tasks to do on my servers. ^.^

Well my uptime I better than Amazon’s so far, so… ^.^

I way way overbudget my hardware (hardware’s cheap, services are not), never ever needed this, and it ends up much cheaper this way too.

I try to only use software I trust, for the few that I do not I provision stupid things elsewhere and let them run remotely in a read-only setup (*cough*jenkins*cough*, I really really hate that thing, and php forums I host for people that refuse to discourse on over).

I’ve never had issues, and I use a lot of websockets on some of the sites.

All simple commands over ssh. :slight_smile:
I exceptionally VERY hate web gui’s for all that, they just make it harder to get stuff done and even doing something as simple as restarting a service involves extra clicks to get to the area, move the mouse, hit a button, pray it is working since you can’t see a real-time log, etc… Where as I just type something like sshcmd blahserver 'cservice roll frontend-nginx' or fully log in or so, of which takes 0-2 seconds to type and hit enter, then I watch the output log streaming by to verify it works. ^.^

I don’t even know what is gained with Heroku. At my current job and my last job they are both crazy-VM heavy via VMWare. Have old servers, new servers, hard drive swaps don’t go down, generator/battery backups for 48 hours with on-site fuel for both. If a hardware server goes down VMWare auto-migrates it until they can fix it (snoopy needs to be replaced already…). My last job had the 200k+ machines, but my current one has probably 2000 machines at most, the IT department is 3 people (with one retiring next month) with a server room that is just a very cold back room of 6 rack’s with a couple dozen servers in them blinking away. Something like Heroku would bankrupt this place (they’ve checked).

3
Post #12
jesse

jesse OP

@OvermindDL1 my point isn’t that PaaSes are the only right way, but that for some, it makes more sense than doing things yourself. As a sort of silly example, I’d rather buy my coffee at Starbucks than try and save money by growing my own beans, roasting them, grinding them, etc. But for some, especially those with an interest in it, growing your own beans might indeed make sense.

5
Post #13
OvermindDL1

OvermindDL1

All good, I’m genuinely curious though (else I’d have never poked up in this thread) what the cases are that someone would pick something like Amazon for. :slight_smile:

In all cases in every way I’ve been able to calculate it has always seemed substantially more expensive than alternative methods, not just a little more expensive, but orders of magnitude more expensive. I am really quite curious what they’d be used for other than just people who do not know how to manage the stuff they are running, like I could see a, say, restaurant hosting stuff (address, menu, etc…) this way since it is tiny traffic and they have no knowledge of the problem domain whatsoever and so would not even know to look for better alternatives (but at one of the cheaper ones that is, say, $5/month, that is all they need), but if someone does something like actually build this software to run then it seems odd to me…

1
Post #14
chrismcg

chrismcg

Great to see this happening. Good luck with your beta and will definitely check it out when I’ve a bit of free time.

@OvermindDL1 There’s an opportunity cost for someone who doesn’t know how to manage this stuff really well like you with years of experience do. Is it better to spend time trying to get to your level or pay someone else to handle that and spend your time doing what you already know? If you can make your app generate e.g 2x profit in that time and the numbers work out then paying someone else to manage the hosting is an overall win.

(There is a lot of tacit knowledge that it’s easy to forget you know re ops IMO.)

4
Post #15
andre1sk

andre1sk

You make many valid points but 100,000 machines is a very poetic exaggeration as is necessity for the majority of projects to run k8s. I think the major gripe of many people is that for many projects “cloud services”
a) the cost is huge
b) performance abysmal
c) uptime bad

This is nothing specific to your services although running on top of GCP clients are exposed to the combination of GCP f#$ups and your team’s mistakes on the risk side.

2
Post #16
andre1sk

andre1sk

The major difference if that someone else has a name you can call that person(s) it’s one type of situation if it’s AWS or the like and you are not the client that moves the needle for them like Netflix have fun trying to resolve issues when s##t hits the fan.

1
Post #17
jesse

jesse OP

@OvermindDL1 in addition to what @chrismcg said, AWS is useful if you need a lot of elasticity. At one company I worked for, we ran a continuous integration farm on AWS which would stretch up and down from thousands of machines during the day down to 0 at night.

Another possibility is some companies who experience hyper growth like say Instagram might have a hard time negotiating datacenter contracts, buying machines, installing them, validating them, etc quickly enough to keep up with product and feature growth.

There is also the ecosystem of services to consider. Even if you don’t find value in running EC2 instances, you might find value in spinning up a global load balancer in front of your instance or attaching an elastic block storage device to your instance with a click of a button.

0
Post #18
cgraham

cgraham

So I spent some time looking at the service as a potential user. (I currently use Heroku for a Elixir/Phoenix project).

First I love the fact you are looking into this - even though my feedback below may not be what you want to hear. Keep plugging away and trying to find a solution! The Elixir community could use more ecosystem additions!

Now here’s my feedback:

I may have considered it if the price was significantly lower but I think the things added (hot swapping, clustering) are nice to haves at the small scale I am using it.

If/when my projects scale up (which would be where I really want the additional functionality), I am going to want to use AWS (or Google Cloud) to keep costs down and have easy access to their additional functionality (like analytics, multiple dbs, cloudfront, extra configuration capabilities, elasticity, etc…). In that scenario, if I did not do the dev ops myself, I probably would prefer a part-time dev ops who was familiar with our code base and who could monitor everything and just “take care of problems” as they occurred. (and yes, if I wanted to keep costs even lower I would buy my own racks/hardware but that is a totally different discussion).

I get that your solution may be less expensive than hiring a part-time dev ops, but at this point at least it does not give me peace-of-mind that things will be handled seamlessly without me needing to monitor it if something goes wrong. If I have to monitor and sleuth (say because my code sucks), I’d prefer to set it up myself so I at least know what is happening and certainly so I can save the monthly $. And if Erlang/OTP is smart enough to fix most problems, it feels like I should save the $ and set it up myself vs paying monthly for a service to do those initial configurations.

Of course, I could have also totally missed the value proposition, and if so, my apologies.

Btw- what might be interesting to me is an Amazon Lambda style service for Elixir that is consistently fast (i.e. Lambda is inconsistently slow). But honestly that is just me thinking it would be cool. I don’t exactly have a strong immediate need for it.

1
Post #19
jesse

jesse OP

Thanks for the thoughtful feedback, @cgraham! I get what you’re saying about using AWS, but since Gigalixir and Heroku are almost identical in price, is there a reason to choose Heroku over Gigalixir for an Elixir project?

0
Post #20