Joel Rivera
27/08/2016
Día comunidades Dev Monterrey
... y así...
Es una practica, cultura y/o conjunto de técnicas que van orientadas a colaborar entre el desarrollo de producto y la operación de que conlleva día a día o al momento de ocurrir una transición en las etapas de desarrollo.
Es un lenguaje de programación de muy alto nivel, multiparadigma con énfasis en la orientación a objetos, interpretado, opinionado en sus practicas, de tipos dinámicos, de licencia abierta, con más de 20 años de existir y que hoy en día esta en casi todo lo que sea POSIX y muchas otras partes.
Tal vez esta en ti y aún no lo sabes...
Short answer
¿Será *nix?
Lenguaje de programacón puramente funcional con lazy evaluation (o como me gusta decirle: evaluación flojeroza)
El/la que no sepa que es POSIX (Portable Operating System Interface) que levante la mano
No es de propósito general, en términos más especifico se le considera un DSL para empaquetar software.
Es un lenguaje de semántica simple, pero con abstracciones funcionales de mucha importancia que le permite hacer muchas cosas.
with import <nixpkgs> {};
buildPythonPackage {
name = "awake-1.0";
doCheck = false;
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/a/awake/${name}.tar.gz";
md5 = "57b7a2e616e37fc29b4011a2e1cc60b2";
};
}
$ curl https://nixos.org/nix/install | sh
Tristemente esa es la opción oficial
Una vez instalado crea una herarquia de directorios en /nix
/nix/store/98s2znxww6x7h2ch7cj1w5givahxmdna-glibc-2.23
/nix/store/m8qi9jrz51lqn7x0mifa9kpwpsp3b7dq-attr-2.4.47
/nix/store/8c5s33f5mzfn9z3yhjprxnxzl19dg7p2-acl-2.2.52
/nix/store/07axizqswlwc819xcd8dk2m1q0ylddmh-coreutils-8.25
/nix/store/sfypzdarn7pbmvqhw1vh4d73fl37j2qr-openssl-1.0.2h
/nix/store/xlqafmhfnzwg0c77ns8m41k2vn1frqz3-perl-5.22.2
/nix/store/ssm7ncg201c40dqb970v9g3zz10yblvd-openssl-1.0.2h-bin
/nix/store/1vfgnsbqyrb4146q8j0y5wwsls3rsw0n-openssl-1.0.2h-dev
/nix/store/pbikhmd34v10bkivvf9c6miidcq7s5zn-zlib-1.2.8
/nix/store/3cmh9l6r6cb0v7mkz5wnm2332hlfa991-libpng-apng-1.6.23
/nix/store/98s2znxww6x7h2ch7cj1w5givahxmdna-glibc-2.23
/nix/store/m8qi9jrz51lqn7x0mifa9kpwpsp3b7dq-attr-2.4.47
/nix/store/8c5s33f5mzfn9z3yhjprxnxzl19dg7p2-acl-2.2.52
/nix/store/07axizqswlwc819xcd8dk2m1q0ylddmh-coreutils-8.25
/nix/store/sfypzdarn7pbmvqhw1vh4d73fl37j2qr-openssl-1.0.2h
/nix/store/xlqafmhfnzwg0c77ns8m41k2vn1frqz3-perl-5.22.2
/nix/store/ssm7ncg201c40dqb970v9g3zz10yblvd-openssl-1.0.2h-bin
/nix/store/1vfgnsbqyrb4146q8j0y5wwsls3rsw0n-openssl-1.0.2h-dev
/nix/store/pbikhmd34v10bkivvf9c6miidcq7s5zn-zlib-1.2.8
/nix/store/3cmh9l6r6cb0v7mkz5wnm2332hlfa991-libpng-apng-1.6.23
Al integrar herramientas como Nix desde el punto inicial de desarrollo hasta el deployment, permite que los equipos (o los mini equipo en la mente del desarrollador) operen de una forma clara.
Hacer CI/CD con paquetes en Nix se vuelve casi trivial por que no hay ambiente que mantener
Más información: http://nixos.org/
charlas@joel.email