3 ms·
I spent the last year and a half cross-training from dev to ops. One of the most important lessons I learned: use operating system packages for production; don
by eldavido 13y ago
I spent the last year and a half cross-training from dev to ops.
One of the most important lessons I learned: use operating system packages for production; don't compile from source.
Compiling from source:
- Wait minutes for each instance to come up, as each time requires a fresh compile
- Have to download from ruby-lang.org -> you have a dependency on this site being up, bad idea when you hit a load spike, need to scale, and ruby-lang.org is having a bad day
- Loss of dependency management. Now you can't tell whether your environment has the right packages installed, nor can other things express a dependency on your code being installed
- Very difficult to remove packages for upgrades/maintenance/security fixes
Packages:
- Host your own repo, removing the need for external dependencies (can do this with source as well, but it's much better when packages know to discover themselves from a repository)
- Much cleaner rollback -- almost impossible to trash a system with apt-get/yum, they'll always leave you in a good state in case the package fails to install, or other mayhem ensues
- jamiesonbecker 13y agoAgreed. Tracking all those versions for security vulns is a major pain as well. Unless you absolutely positively must have X new feature that's only in upstream, DON'T compile it yourself unless you're prepared to pay that price.