Hi guys,<br>After lots of effort, the yesod app I&#39;m working on is finally ready to be deployed in a production environment, but I&#39;m having a hard time deciding what&#39;s the best strategy to do so.<br>I have proper development, staging and production environments. We&#39;ll be doing our coding on development, then tag a revision and push it to staging, and then if<br>
everything works fine we&#39;ll push that same tag to production. We&#39;re going to be using ubuntu 11.04 and all machines will be the same architecture too.<br>My main concern is that compiling in production may be inefficient and badly stress the server, so these are my deployment options so far, I would like to hear your opinions on them,<br>
and maybe you can also answer some of the questions that arise from them:<br><br>* Compile and statically link the app, then push it to staging, and if it works, to production: <br>    Would be great, but I&#39;m getting some warnings relating glibc and errors linking libgss which I could fix, but hint&#39;s that It&#39;s going to be painful to keep a statically linked version and suggest it&#39;s going to be brittle.<br>
<br>* Compile and move the binary and all the libraries it uses to the server:<br>   In theory it should work, but I&#39;m not sure which libraries or library directories I should move/rsync. I&#39;m also worried this way of doing it could be brittle since I could add dependencies that install stuff<br>
in different places and forget to add them which would mess up my deployment process a bit and require further manual intervention.<br><br>* Compile on the server: It&#39;s really convenient since I could copy the source to the server and do a cabal-install there, but I&#39;m afraid it will stress the server too much while compiling (granted, won&#39;t be often on production), but also keeping ghc and cabal on the server requires the extra work of keeping them up to date in an unobtrusive fashion. I tend to break my ghc install rather frequently, I wouldn&#39;t like to find myself logging in to production to fix a broken ghc/cabal/haskell platform install.<br>
<br>Thanks for your advice, also let me know if you think I&#39;m too much of a slacker, unlucky, or worrying too much about nothing.<br><br>cheers<br>----nubis :)<br><br>