Continuous development
with Nix
Berlin DevOps Meetup - May 2015
Continuous development
Berlin DevOps Meetup - May 2015
C. Integration
C. Deployment
C. Delivery
Develop.
Test
Build
Release
Development
Berlin DevOps Meetup - May 2015
Bundler, Cabal, Composer, CPAN, CRAN, CTAN, EasyInstall, Go Get, Maven, npm, NuGet, OPAM, PEAR, pip, RubyGems, ...
brew, apt-get, yum, rpm, emerge, ports, ...
virtualbox, docker, vmware, vagrant, rocket, ...
Test
Travis, Soucelabs, Jenkins, Hudson, ...
Build & Release
Ansible, Chef, Puppet, ...
Xen, Docker, LCX, ...
Linux, OSX, Windows, BDS, ...
Berlin DevOps Meetup - May 2015
Nix
package manager
reliable
reproducible
portable
osx, linux, cygwin*, bsd*
multi-user, multi-version
and
also a language used in Nix
(the package manager)
- atomic upgrades
- rollbacks
- packages installed in isolation
of each other
- complete dependency tree
source - binary model
Berlin DevOps Meetup - May 2015
Nix @ RhodeCode Inc.
Development
Test & Build
Release
% nix-shell default.nix
% nix-build default.nix
% nix-build release.nix
OSX
Linux
Windows
Berlin DevOps Meetup - May 2015
Nix @ RhodeCode Inc.
Server management
% nixops create -d khaleesi khaleesi.nix khaleesi-room.nix
% nixops deploy -d khaleesi
You only need to know one tool !!!
Berlin DevOps Meetup - May 2015
One tool to rule them all
Developers focus on development
Ops and Devs have a common "language" to speak
Reusability of tools between developers (even vim configuration)
Not needed to jump all into Nix. Gradual migration. Nixify only when it brings the value.
Reproducible environments without any virtualization/containers
Berlin DevOps Meetup - May 2015
Thank you
your tools will f*** you
whenever they get a chance
Rok Garbas, @garbas
https://garbas.si
Berlin DevOps Meetup - May 2015
Bonus
Continuous development
Berlin DevOps Meetup - May 2015
C. Integration
C. Deployment
C. Delivery
Develop.
Test
Build
Release
Continuous development with Nix
By Rok Garbas
Continuous development with Nix
What is holding us (devops) back to implement Continuous development processes in our organizations. We will look at how things can be improved with Nix and its tools.
- 4,207