Commit Graph

75 Commits

Author SHA1 Message Date
Tim Abbott b2d01e2da0 [manual] restart-server: Minimize downtime for message sender worker.
The manual step here is that we need to do the `puppet apply` before
pushing this commit, or `restart-server` will crash.

Previously we shut down everything in one group, which performed
poorly with supervisor's bad performance on restarting many daemons at
once.  Now we shut down the unimportant stuff, then the important
stuff, bring back the important stuff, and then bring back the
unimportant stuff.

This new model has a little over 5s of downtime for the core
user-facing daemons -- which is still far more than would be ideal,
but a lot less than the 13s or so that we had before.

Here's some logs with the current setup for the tornado/django downtime:
2013-12-19 20:16:51,995 restart-server: Stopping daemons
2013-12-19 20:16:53,461 restart-server: Starting daemons
2013-12-19 20:16:57,146 restart-server: Starting workers

Compare with the behavior on master today:
2013-12-19 20:21:45,281 restart-server: Stopping daemons
2013-12-19 20:21:49,225 restart-server: Starting daemons
2013-12-19 20:21:58,463 restart-server: Done!

(imported from commit b2c1ba77f3dc989551d0939779208465a8410435)
2013-12-19 17:21:23 -05:00
Luke Faraone 490af28958 Update URL for user APT key.
We're moving to S3, so apt.z.c no longer serves SSL.

(imported from commit a2d376337ddaf2f5fd4ddf193a1ff0732f89c78a)
2013-12-11 10:54:30 -05:00
Tim Abbott 3665a0e289 Fix permissions issues with upgrade-zulip from /root path.
(imported from commit b7fce92ac1b7317388debaae2bc3270fe3ae155e)
2013-11-25 17:16:15 -05:00
Zev Benjamin 9b2aa657be Revert "restart-server: Use 'all' instead of specifying the supervisor jobs to operate on explicitly"
This reverts commit acef4c0027b77053497ef6e9f7aa4b61703205c3.

Despite the lower total downtime, this caused more user-facing downtime.

(imported from commit 5cce032bb20abe83853a65ee72bf0bb28af403cc)
2013-11-21 15:14:38 -05:00
Zev Benjamin a363b7185d restart-server: Use 'all' instead of specifying the supervisor jobs to operate on explicitly
This shaves about 1.5 seconds off our restart time on ls-dev (9s ->
7.5s).  Still too slow, but it's a little bit better.

(imported from commit acef4c0027b77053497ef6e9f7aa4b61703205c3)
2013-11-15 15:23:02 -05:00
Tim Abbott 2e5eec5bd3 install: Remove apache restart from install process.
We don't use apache in the main app -- only for the SSO situation --
this code was just copied from our own install script.  And it caused
problems at CUSTOMER13 because they installed Apache in preparation for
the SSO integration, but restarting it failed.

(imported from commit 3f2961574134847c836e8b69736f60d9f8790201)
2013-11-15 15:04:13 -05:00
Zev Benjamin 974159ec94 Move apache2 restart for SSO sites to restart-server
(imported from commit f999e2b0591a11442c1d3fdba2393ecf6e78bad3)
2013-11-15 11:34:48 -05:00
Leo Franchi 68954ee89a Show info on how to remove lockdir in upgrade-deployment
(imported from commit 59984c9b3ce7ef133f0e929836533ae9d6d40707)
2013-11-14 12:00:03 -05:00
Tim Abbott af21f943a2 Fix paths to zulip_tools for relocated scripts.
(imported from commit 9a3664c0f7da1ce6dcb554e7e9ddef5bde6cad7e)
2013-11-14 11:16:16 -05:00
Tim Abbott 9a6f34a807 Make generate_enterprise_secrets.py work regardless of path.
(imported from commit c1ab8231fbe907a32b18c02a00cee51011abbb21)
2013-11-14 09:10:10 -05:00
Tim Abbott 037460b24c Fix permissions on install script.
(imported from commit af71b3a4988059c58e741bf94d0c28383c08f704)
2013-11-14 08:56:06 -05:00
Tim Abbott f9707dd903 Clean up scripts/ by moving helper tools into lib/.
(imported from commit 31a99d5cc68524a1399daa50eb1fcda54383a317)
2013-11-14 08:47:11 -05:00
Tim Abbott 486fcfa53f README
(imported from commit c02dfbd15ab6bac5a450d04075b15a7c44e8ddfe)
2013-11-14 08:19:20 -05:00
Tim Abbott bd607a32e6 unpack-zulip: Update for zulip-server paths containing versions.
(imported from commit 9318cab0cfcdf57412afbe9386371c8f9994da9f)
2013-11-14 08:19:20 -05:00
Zev Benjamin 87a6838e0e enterprise: Log the output of upgrade-zulip and install scripts
We may eventually want to rotate the log files, but this seems good
enough for now.

(imported from commit 9a54fa6b40bc62f68e52ef552c1a676856b21829)
2013-11-14 08:08:59 -05:00
Zev Benjamin 1546d06344 upgrade-zulip-stage-2: Tweak log message
(imported from commit e8979fa3331119f1f039b3809f6d06fc81fd5e0e)
2013-11-13 16:57:00 -05:00
Zev Benjamin 718a1a8405 upgrade-zulip-stage-2: Restart Apache when using SSO
(imported from commit c06be261ec4ab56551962d26cfc41590a64f49e7)
2013-11-13 16:57:00 -05:00
Zev Benjamin 9addde74ec enterprise: Split upgrade-zulip in two for better future-proofing
(imported from commit 808d8d68a6e799aa2962eec90c0953db3c94cfa4)
2013-11-13 16:57:00 -05:00
Zev Benjamin e8c104012b Move su_to_zulip into zulip_tools.py
(imported from commit 4a79f87dc396da9419a0a1cf5f5b7bb798d5b194)
2013-11-13 16:56:59 -05:00
Zev Benjamin 0b592a27b1 enterprise: Make upgrade-zulip do puppet applies and schema migrations
(imported from commit 6d0109e6cd6a02ed5d57b0c0b4c9dc052f158344)
2013-11-13 16:26:04 -05:00
Zev Benjamin 67ed16a12e enterprise: Make /root/zulip be a symlink to ~zulip/deployments/next
(imported from commit 2a0e7f99fe4517e45ad2794b7fa464df08d40db1)
2013-11-13 16:26:04 -05:00
Zev Benjamin 031dfbcc46 zulip_tools.py: Add a make_deploy_path function and make it invokable from the commandline
(imported from commit 94578d117864fba76f9353784734c712c89c4bf2)
2013-11-13 16:26:04 -05:00
Zev Benjamin baecc950a5 enterprise: Remove dead code
(imported from commit ca0cdc89f72367d15cd8cfe33666a4cff80deb66)
2013-11-13 16:26:03 -05:00
Tim Abbott c54322f76a install: Move DROP SCHEMA PUBLIC to run in zulip database.
(imported from commit 1eef44e7255b8fe1314f7763ebfc6c04083305e5)
2013-11-13 15:35:45 -05:00
Tim Abbott c842b42b12 postgres-init-db: The zulip user doesn't need CREATE DB on enterprise.
Also clean up the series of similar blocks.

(imported from commit fdb468bd6be3077bdbf2d72289064397ea04f27a)
2013-11-13 15:35:45 -05:00
Tim Abbott b4ace85d3a Make sure everything under /home/zulip is owned by zulip.
(imported from commit f6c8b6c0a6dc8b7ada79cb4951818f06faa873e7)
2013-11-13 12:07:15 -05:00
Tim Abbott 0299964051 Make the Zulip user able to edit settings.py.
(imported from commit c69ff2b2e9f176ae2e78b76a7b022e00d09e7c00)
2013-11-13 12:02:50 -05:00
Tim Abbott 6bcd5a7ffc Update installation instructions to include configuring the app.
(imported from commit 89395815c32416ec0636efcff12eb76f5d890bbd)
2013-11-13 12:02:50 -05:00
Tim Abbott 6aaa2b1a24 Create the zulip database owned by zulip.
(imported from commit cc6e895d9e97bdd9d084c7b1a7204bd5b7ae5cd8)
2013-11-13 12:02:50 -05:00
Tim Abbott 0ec8a7a2f1 install: Make sure we own everything under /var/log/zulip
supervisord may start up during the install process and do a bunch of
incorrect stuff, with the net effect of creating files in there owned
by root.

(imported from commit 28379af9680bf9d3c72da196f329abdf8c82c6be)
2013-11-13 12:02:50 -05:00
Tim Abbott b2d4883165 postgres-init-db: Split into internal and external versions for now.
(imported from commit 3516b1377e5914dac2b504961922ef8d08148d1f)
2013-11-13 12:02:50 -05:00
Tim Abbott f4a9e99498 puppet: Move the postgres dictionary symlink creation to puppet.
(imported from commit 823f6683e3d8f3604da68e55dd6761ecb38d4b63)
2013-11-13 12:02:50 -05:00
Tim Abbott 45f21cbb14 Setup the database after the Zulip user is fully setup.
Otherwise we may run into permissions issues.

(imported from commit a8013c84796d16146336c2809dcd8cd935b43a7b)
2013-11-13 12:02:50 -05:00
Tim Abbott e1a8f511fe configure-rabbittmq: Make it work if you run it a second time.
This is to make it easier to just run the install script again if it
fails.

(imported from commit 65deb9d001e061d58deecd44c4683231de76dc79)
2013-11-13 12:02:50 -05:00
Tim Abbott c7d9bf41bc Rename SSL certificates for Zulip Enterprise.
(imported from commit 4f15f2aee2bcc7450953488c94e8b88734aeaff7)
2013-11-12 15:57:42 -05:00
Tim Abbott 270f5730fa Rename local server => enterprise in some scripts.
(imported from commit 98cdb4c2e1be5a6abb59821eb32f749c058b773b)
2013-11-12 15:57:42 -05:00
Tim Abbott 966fde261a puppet: Rename local_server => enterprise.
(imported from commit 5faa269df5937f6db99098e44aaea7d0a4f2c14a)
2013-11-12 15:57:02 -05:00
Tim Abbott 21f1058fd2 Rename local_server=>enterprise in DB initialization script.
(imported from commit 76e26f43858e3baa6ed1b38d67973ed41acf04f3)
2013-11-12 15:57:02 -05:00
Tim Abbott b461e3c10e Add a README file documenting the installation process for local server.
(imported from commit 4fb149a39acb4dda7ee0d2f038212534f410e064)
2013-11-12 15:57:01 -05:00
Tim Abbott 57b5231063 install: Script the install process more fully.
We can probably later merge the create-database code with that of our
internal do-destroy-rebuild-database.

(imported from commit 323932dbf2eb916545d6ebdda70eb1f5e1abb181)
2013-11-12 15:57:01 -05:00
Tim Abbott 2e41515cc3 localserver: Make the zulip user own supervisor.sock.
We really should fix this in supervisor itself, since in particular we
lose this setting every time the system is rebooted.

(imported from commit a700078b158808340f5f30812235449c74508cde)
2013-11-12 15:57:01 -05:00
Kevin Mehall 9b6c99c7af Copy localserver prod-static instead of linking so old files are retained.
(imported from commit 728cce9f1b3a47d62f2856a509ed65a3ac6bd451)
2013-11-12 15:50:08 -05:00
Tim Abbott 03bf4ba423 postgres-init-db: Don't hardcode LOCAL_DATABASE_PASSWORD.
(imported from commit e2cf6c6c0abb688c77661e4849e7b574b4222e68)
2013-11-12 09:38:43 -05:00
Tim Abbott 5f7c530285 install: Set puppet deploy type for local server.
(imported from commit c8b7ac3a7741470851f6fa9c27677e1238c1dce7)
2013-11-12 09:34:25 -05:00
Tim Abbott 26d7411bc0 generate_localserver_secrets: Fix path to camo defaults file.
(imported from commit 4456715e038b10978b3ce1e7454d625795f336e7)
2013-11-12 09:34:25 -05:00
Tim Abbott bf0fda7426 Use the enterprise apt key when installing local server.
(imported from commit 24fa7474a77cac7b1d033c6732de6873d4aa9880)
2013-11-12 09:34:25 -05:00
Tim Abbott 30e5543eae install: Use mkdir -p so that running it again on error works.
(imported from commit 361985ce7463c9ccaa7b2eaf1b23ca262e64560d)
2013-11-12 09:34:25 -05:00
Tim Abbott cb72df39b1 install: Configure rabbitmq during setup process.
(imported from commit c610e6bac9a1d6f2c856664ba1e17bbfcc5e551a)
2013-11-12 09:34:11 -05:00
Tim Abbott 8eaef81f6b localserver: Install site settings via a symlink to /etc/zulip/settings.py.
(imported from commit b0bedfe3fc4e9039f30061ae9cbdc34069f1f284)
2013-11-12 09:34:07 -05:00
Tim Abbott 92a230acaa install: Unpack the initial Zulip tarball in deployments/
(imported from commit 2b340aacaa5233fd8708d6392e3c9210e866acbd)
2013-11-12 09:22:50 -05:00