Skip to content
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

[NFR] - Add documentation on how to upgrade with minimal downtime to end users #73

Closed
niden opened this issue Sep 10, 2012 · 3 comments
Closed

Comments

@niden
Copy link
Member

niden commented Sep 10, 2012

Tim:

Firstly let me say I am really excited about Phalcon, I cant wait to try it out.

I'm just a little worried about downtime for users when I need to upgrade the Phalcon core or make changes to my application (and I'm sure a lot of users from other php frameworks are too).

It would be great if you outlined strategies for upgrading with minimal downtime. I am guessing the use of load balancers upstream and then manually moving clients between each server to perform the upgrade must be involved... but I'm just guessing. Maybe there are other easier ways.

These are all questions and it would be great to have them clarified before we jump ship.

Thanks again for what looks like an amazing framework.

@niden
Copy link
Member Author

niden commented Sep 10, 2012

Phalcon (Lead Developer, Phalcon PHP Framework)

Hi Tim, thanks, we don’t have a specific strategy to upgrade phalcon on many servers, in our unique experience with that, we’ve used git to push the changes to remote repositories, but we are not sure if that is a good way, we’ll let open this issue to get help from other members of the community. Thanks

@niden
Copy link
Member Author

niden commented Sep 10, 2012

Tim

I'm not treating updates to Phalcon any differently than I treat updates to PHP (core) or other extensions. Presumably, if a few moments of down time is going to be an issue you would have at least two servers behind something like HAProxy.

If that's the case, just do it in a cascading action. My plan is to fork Phalcon for the purposes of updating, and pull from the main branch when stuff goes in that I need. At that point, it's a matter of running a script that updates the code on the server, installs the updated module and restarts the web server - one at a time. Puppet or similar would be best to orchestrate that.

A much cleaner way would be to package up your phalcon module in a rpm/deb package and host a repository so you can just use yum/apt to do this without needing to build it on every server using it. I'm not going to do that for a while, because this Phalcon is obviously going to remain a rapidly moving target for quite some time.

Either way, you really need some kind of reverse proxy in place if short interruptions are going to be a deal breaker.

@niden
Copy link
Member Author

niden commented Sep 10, 2012

David

I don't know if this should be a priority until closer to version 1.0. This is still the glory time where you can continually break the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant