Good question. I haven’t tried “running gigalixir locally” yet.
I’m not exactly sure if this answers your question, but gigalixir’s runtime Docker container is open source and can be found here.
Running this locally should be a matter of setting a few environment variables with docker run -e ..., but to do clustering locally in the same way as production, you’ll probably have to run Kubernetes locally because libcluster accesses the Kubernetes API to discover other nodes.
Feel free to email me at #{my first name}@gigalixir.com if you’d like to work together on making tokumei gigalixir compatible.
Thanks, had a quick look at your docker setup. unfortunately a long time since I looked at python so will have to look again when I have more time.
I am not keen to run kuberneties locally. However with a library like peerage doing the clustering with a switch for development vs production environments we might get something very close.
Gigalixir runs in Google’s us-central1 region which is in Iowa. Connecting to S3 or RDS in Amazon’s us-east-1 would increase latency for sure, but I haven’t measured it myself.
First of all, thanks to everyone who helped with the beta test earlier this year.
Gigalixir, a Platform-as-a-Service for Elixir, now has a free tier so you can try it without a credit card. We also added Postgresql-as-a-service, and is no longer invitation-only.
If you’re interested, we highly recommend following the quick start to get started.
As always, feel free to contact me directly for help. You can find me in the Slack channel as @jes.
@dsslimshaddy Gigalixir works fine with MySQL, but the Gigalixir database-as-a-service doesn’t offer MySQL yet. If you provision one yourself in Google Cloud SQL us-central1 it’ll be on the same low-latency network.
I just skimmed the topic, but I think the analogy is a bit not accurate. It’s not the difference between starbucsk and growing, roasting and grinding coffe.
It’s rather the difference between reading a manual thoroughly and learn to do your homework in minutes (bare metal) or don’t read and pay a stranger to do your homework every time. The difference is that once you learn how to do those dev-ops you will know how to do it and won’t be left out cold ever, and even if it’s not something you will ever use in production environment it will definitely help you in your dev environment (and you might not even be aware why you know how to do some things on your dev machine ). It’s like with this proverb: Give a man a fish, and you feed him for a day; show him how to catch fish, and you feed him for a lifetime.
And I’m not saying that services like Gigalixir are not needed or bad or whatever, I used some of similar for some projects and was as satisfied as one can get with them. What I mean is that there are areas of IT, that every developer should know, at least basics, even if he does not foresee himself ever using it. Simple scenario: You upgrade PostgreSql and your data is gone, or server does not start… what you do? spend few minutes to migrate data? Or take precious times of your colleagues because you can’t into dev-ops, because you use PasS in production?
Doing your own devops, once learned, does not take much time at all, I’ve been doing it since the late 1990’s and I can spin up a new server from scratch in minutes.
Doing your own devops, once learned, does not take much time at all, I’ve
been doing it since the late 1990’s and I can spin up a new server from
scratch in minutes.
That’s delightful but irrelevant. No matter how experienced you are,
building and maintaining infrastructure is still time taken from other
items on – for at least at most startups – a 110% full plate.
And when I started at Sun Microsystems in 1989, the first day was
“there’s your workstation, here’s a SCSI tape cartridge so you can
install an operating system on it” – so I’ve been doing this a while
as well.
It’s good to know how, and it’s good to have the option to delegate
when you have other higher-priority things to do.
This business analogy would be that you are looking at something close to a fixed time requirement that isn’t going to change much regardless of the size of your project or traffic level. If you’ve got a project where you are actively working, paying this cost is very low-investment and high reward. If you have a side project or are splitting time on multiple projects then it’s time you are spending not focused on the project itself.
If you’ve never done it before then the up front investment and uncertainty can also be a deterrent.
When you are looking at a language like Elixir where you are already coming into new language, environment, tooling, expansive clustering options and deployment options, OTP and the like…having one less thing to learn is a huge benefit.
It’s worth learning eventually, but it’s very understandable for people to want to have options that don’t require it up front.
In my case, I did PHP professionally for about 4 years before I signed up for a Slicehost account and started tinkering with my own server setup for personal stuff. About a year later I started running my own servers for everything and still rabbit holed down options for log management, monitoring, debugging, keeping things up to date, security patches, rotating SSL, managing user permissions, etc. Most of the reason that I got into that was because back in 06-07 you had to dive into server configure heavily to performance tune PHP.
It was a great experience for me to learn…but it was a lot of time and I’m still learning. Its not for everybody and services like Gigalixir and Heroku are invaluable in helping people bridge those gaps.
My main issue with the instant-setup things is not even the instant-setup part or the lack of knowledge part (I really don’t think people should use something without knowing how it works, from their servers to their cars to how their house is standing), but rather the monstrous cost most of them are (look at aws or so, they could have hosted one of my last big sites for, oh, $30k/month minimum, where I hosted it on my own servers for <$200month with room to spare). My spending a few hours to set it up is worth it when I’m saving over $30k/month. ^.^
At the point where your costs would be that high, it’s also something that would factor into the formula.
Very similar to the rails thought process in terms of time to market being most important in most cases until you really start growing. You can always move. You can’t go back and start getting users sooner.
I am using the older phoenix 1.2.x version and running an umbrella project.
during git push gigalixir master
Creating .profile.d with env vars
-----> Writing export for multi-buildpack support
=====> Downloading Buildpack: https://github.com/gjaldon/heroku-buildpack-phoenix-static
=====> Detected Framework: Phoenix
-----> Loading configuration and environment
Loading config...
WARNING: phoenix_static_buildpack.config wasn't found in the app
Using default config from Phoenix static buildpack
Detecting assets directory
WARNING: no package.json detected in root nor custom directory
* assuming phoenix 1.3.x and later, please check config file
Will use phoenix configuration:
* assets path assets
* mix tasks namespace phx
Will use the following versions:
* Node 6.9.2
Will export the following config vars:
* MIX_ENV=prod
no package.json detected in root nor custom directory ??