-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Examples of production deployment #93
Comments
We're certainly thinking about how this might work. Would you want to use Fig to deploy to production? What things do you think are missing to make this work? |
I assume you don't want to do multi-host orchestration yet, just orchestrating a fig setup on one host. How would deploying to production be different than development? Would you still be using Fig on production - if so: How would you have the OS (initd / systemd / launchd / startupd ...) start up fig services, and keep them always running? How would you update a running service? (Hopefully very seamlessly.) How would logging work? For those that don't want to using Fig for production (in the case they need multi-host orchestration), could Fig integrate with other deployment/orchestration systems - such as being a plugin that reads fig.yml, or dumping out config compatible with other systems? On Feb 15, 2014, at 15:38 , Ben Firshman [email protected] wrote:
|
I've been reading through the Fig code and it probably wouldn't be too terrible of a task to build a tool that can export fig files as json to send through your docker client of choice. On the server: One question I have not tried answering yet is if volumes follow symlinks. |
It seems this may end up being easier than expected. Ubuntu is ditching upstart in favor of systemd. Thoughts? |
fig2coreos looks great, but having Fig work against a remote Docker daemon using only the remote API would still be a huge win. I've made some notes after playing with it for a bit, which I'll dump here in the interests of stimulating discussion: How to use Fig with a remote Docker daemonTo get set up:
In your alternate fig file:
To start:
To deploy changes to specific services:
Issues:
|
For context, I'm planning to use Docker containers for isolating Django instances. Each project has three containers; postgresql, redis, and a web server with nginx and uwisgi running under supervisord. I agree 100% that Fig talking to a remote docker would be a huge win. So far the main thing giving me the willies about that is the lack of authentication in docker. There are some interesting schemes involving proxying through a web server like nginx and using SSL but it would be great if Docker had a built in way of handing this. Another winning feature would be to export a fig file as either a systemd, supervisor, or upstart script. So for now, it seems some judicious use of fabric, private registries, and a process manager is the way to go for us. |
Agreed. This is an opportune moment to mention that Orchard (https://orchardup.com/) does HTTPS proxying for you, and that Docker is working on native support (moby/moby#3068). |
Any progress on this? |
One way to move forward on this might simply be to add a "fig publish" command that essentially publishes the entire stack by building (if neccessary) and pushing tagged images to the docker repo. While everyones production environment varies widely, we all need to transport/ship images from development to production. This might be a good first step. |
@jkingyens +1 |
I have a pull request for "fig push" (/pull/467). Its good enough for my uses right now but still might need some polish. It pushes all images that are specified as "build" in fig.yml. You pass the repo name with the -r option. |
Adding to this, fig is missing Docker |
There are a bunch of related tickets about deployment and production use. I've linked them all up to #1786. I'm going to close this issue so we can concentrate the discussion in that ticket. |
chanotify: do not allow adding new channels if notifier is closed
I love how fig simplifies "development deployment / orchestration", but all systems eventually need to be deployed to a production environment, and I couldn't find any info on recommended ways to do that. My worry is of course having to use a completely different orchestration system for production.
It would be really useful to also have an example of how you can deploy to, e.g., Orchard or a Docker running on an AWS Ubuntu box - ideally, of course, reusing as much of the fig.yml orchestration info as possible.
If you DON'T want fig to be used for production deployment / orchestration, then it would be nice to say so up front. (And even nicer to point users to recommended projects for that.)
The text was updated successfully, but these errors were encountered: