SlideShare a Scribd company logo
1 of 39
Download to read offline
Smart database for next-generation applications
Nix and LogicBlox
INTRODUCTION
©2014. LogicBlox. All Rights Reserved.
▪ Rob Vermaas
▪ IRC: ikwildrpepper
▪ Email: rob.vermaas@gmail.com
MY NIX HISTORY
©2014. LogicBlox. All Rights Reserved.
▪ Contributed to:
▪ Nixpkgs, Hydra, NixOps, Nix
▪ First Nix related commit
▪ August 2004, adding Octave
▪ Infrastructure support
▪ NixOS Foundation
LOGICBLOX
▪ Develops a state-of-the-art database system that is used to develop applications
for many top retailers and banks
▪ 150 people, all over the world
▪ USA, Canada, Tunisia, The Netherlands, Greece, United Kingdom, Belarus, Sweden
▪ LogicBlox Nix-ers:
▪ Eelco Dolstra
▪ Rob Vermaas
▪ Martin Bravenboer
▪ Shea Levy (former employee)
▪ Evgeny Egorochkin (contractor)
©2014. LogicBlox. All Rights Reserved.
WHY DO I WANT TO USE NIX?
©2014. LogicBlox. All Rights Reserved.
▪ Nix protects me against me
▪ Nix let’s me do things multiple times consistently, even on different machines
▪ Nix exposes the things I forget
▪ Nix, the one language to rule them all
HOW TO NIXIFY A COMPANY
©2014. LogicBlox. All Rights Reserved.
Step 1:
Find a nice company
Step 2:
Apply Nix everywhere
Step 3:
Profit
▪ 3 step plan to Nixify a software company
HOW TO NIXIFY A COMPANY
©2014. LogicBlox. All Rights Reserved.
Step 1:
Find a nice company
Step 2:
Apply Nix everywhere
Step 3:
Profit
▪ 3 step plan to Nixify a software company
Build
Test
Deploy
Nix
NIX - THE BIG FOUR
©2014. LogicBlox. All Rights Reserved.
Build Test Deploy
Nix
NIX - THE BIG FOUR
©2014. LogicBlox. All Rights Reserved.
Hydra
Build Test Deploy
Nix
NixOps / NixOS
NIX - THE BIG THREE
©2014. LogicBlox. All Rights Reserved.
Hydra
Build Test Deploy
Nix
NIX - THE BIG THREE
©2014. LogicBlox. All Rights Reserved.
Hydra
Build Test Deploy
▪ How to start? Too much to do! Can’t change everything immediately!
NixOps / NixOS
NIXIFYING EXISTING BUILDS
▪ Closed source software
▪ Buildscripts everywhere!
▪ Hardcoded locations
▪ Binary files/libraries
©2014. LogicBlox. All Rights Reserved.
▪ Long builds
▪ Huge builds
▪ Network access
▪ Not just 1 language
HYDRA - CONTINUOUS BUILDS
©2014. LogicBlox. All Rights Reserved.
HYDRA - CONTINUOUS BUILDS
▪ Why Hydra?
▪ All builds consolidated in one system, with one language to describe all
▪ Less maintenance
▪ Better traceability
▪ Reproducibility of build
▪ Caching of builds, very useful when composing builds
▪ Integrates with our deployment tools
▪ Terminology
▪ Projects
▪ Jobsets / Jobs
▪ Builds
▪ Features
▪ Easy to clone jobsets and build branches
▪ Ability to compose multiple builds as one logical build
©2014. LogicBlox. All Rights Reserved.
HYDRA - WHAT DO WE BUILD
▪ Hydra structure:
▪ 19 active projects
▪ 205 active jobsets
©2014. LogicBlox. All Rights Reserved.
HYDRA - BUILDING PLATFORM
©2014. LogicBlox. All Rights Reserved.
▪ What is built?
▪ Builds, debug builds, regressions tests,
benchmarks, applications, binary releases
▪ Continuous builds
▪ Each commit -> ~ 90 builds, ~ 3 buildhours
▪ Nightly integration builds
▪ Each commit -> ~ 300 builds, ~ 120
buildhours
HYDRA - BUILDING CLIENT APPLICATIONS
{ platform_release ? "3.9.5"
, increment ? ./.
}:
with (import <config> {});
let
platform = getPlatform platform_release;
in
genericAppJobset {
build =
buildLBConfig {
name = "increment-${version increment}";
src = increment;
buildInputs = [ logicblox bloxweb ];
};
extraNixPath = { inherit increment; };
}
HYDRA - BUILDING CLIENT APPLICATIONS
Everything needed for deployment
▪ LB application (installer)
▪ Software dependencies (logicblox, bloxweb, nixpkgs)
▪ Operating system (nixpkgs)
▪ System configuration libraries for Logicblox (lbdevops)
▪ Machine definitions (increment)
HYDRA - CHARON_CLOSURE (EHHHM, NIXOPS_CLOSURE)
HYDRA - BUILDING MACHINE IMAGES
©2014. LogicBlox. All Rights Reserved.
▪ Also used for NixOS EC2/GCE/VB images:
▪ <nixpkgs/nixos/lib/make-disk-image.nix>
with (import <nixpkgs> {});
vmTools.runInLinuxVM (
stdenv.mkDerivation {
name = "need-root";
buildCommand = ''
echo Do stuff only root can do
'';
})
HYDRA - TESTING ON OTHER DISTRIBUTIONS
©2014. LogicBlox. All Rights Reserved.
fedora19x86_64 =
testDownloadPackage
(diskImageFuns.fedora19x86_64 {
size = 2048;
extraPackages = [
"bash"
"java-1.7.0-openjdk"
"python"
"procps-ng"
];
});
HYDRA - BUILDING DOCUMENTATION
©2014. LogicBlox. All Rights Reserved.
HYDRA - BENCHMARKING
©2014. LogicBlox. All Rights Reserved.
▪ Dedicated benchmarking team
using nix as benchmark composer
▪ Tracking performance over time
▪ Evaluate performance of PR’s
▪ Improvements
▪ Scheduler
▪ Hydra EC2 provisioner
▪ Prioritization of builds
Software
Hardware
D
ata
CPU x Memory x Storage
System
x
Version
x
Benchmark
Scale x Data Set
BOB / HYDRA
▪ 2011 - 2013: Started out with 3 linux machines, up to 8 machines
▪ On-premise hardware in the main office in Atlanta
▪ High initial investments
▪ Need IT people to handle hardware issues
▪ Need fast internet connection to scale out
▪ 2013-2015: 21 x Linux, 2 x Mac OS X
▪ 8 general purpose
▪ 12 dedicated benchmark
▪ Can scale up on Amazon EC2, when needed
▪ https://github.com/NixOS/hydra-provisioner
©2014. LogicBlox. All Rights Reserved.
BOB / NUMBER OF BUILDS
©2014. LogicBlox. All Rights Reserved.
BOB / NUMBER OF BUILD HOURS
©2014. LogicBlox. All Rights Reserved.
NIXOPS
Tool to deploy networks of NixOS machines
▪ Single formalism for packaging, provisioning and configuration management
▪ Easy to add software to deployment
▪ Based on Nix package manager
▪ Expressive configuration language
▪ Supports separation of logical and physical aspects of a deployment
▪ Reuse spec for multiple cloud backends
▪ Combined configuration and provisioning
▪ Interaction between config and infrastructure
©2014. LogicBlox. All Rights Reserved.
NIXOPS
©2014. LogicBlox. All Rights Reserved.
+ Mixed spec
Logical
spec
+ VirtualBox
physical spec
+ EC2
physical spec
+ GCE
physical spec
EC2
Google
Physical
hardware
EC2
NIXOPS
▪ What to deploy?
▪ Where to deploy?
©2014. LogicBlox. All Rights Reserved.
{ machine =
{ config, pkgs, ... }:
{ imports = [ ./nix-homepage.nix ]; };
}
{ machine =
{ deployment.targetEnv = "ec2";
deployment.ec2.accessKeyId = "ec2";
...
};
}
NIXOPS - ARGUMENTS
{ account ? "logicblox-dev"
, region ? "eu-west-1"
, instanceType ? "r3.xlarge"
, name
, enableBatch ? false
, production ? false
, ...
}:
{
…
}
©2014. LogicBlox. All Rights Reserved.
NIXOPS
▪ Do we use NixOps?
▪ Hell yeah!
▪ Networks/clusters with up to 54
machines per cluster
©2014. LogicBlox. All Rights Reserved.
NIXOPS
▪ Do we use NixOps?
▪ Hell yeah!
▪ Networks/clusters with up to 54
machines per cluster
▪ Last 30 days
▪ 100 ‘nixops create’
▪ 88 ‘nixops delete’
▪ 1700 ‘nixops deploy’
▪ 300 ‘nixops destroy’
▪ 40 different people running deployments
©2014. LogicBlox. All Rights Reserved.
NIXOPS
▪ Do we use NixOps?
▪ Hell yeah!
▪ Networks/clusters with up to 54
machines per cluster
▪ Last 30 days
▪ 100 ‘nixops create’
▪ 88 ‘nixops delete’
▪ 1700 ‘nixops deploy’
▪ 300 ‘nixops destroy’
▪ 40 different people running deployments
©2014. LogicBlox. All Rights Reserved.
Type # Where?
Internal servers ~ 50 EC2, GCE,
Hetzner, on-
premise
hardware
Client applications > 500 EC2, GCE
Dynamically scaled 0-1500 EC2
NIXOPS - OUR CURRENT SETUP
▪ Deployment servers
▪ Log in via ssh, switch to specific deploy user via sudo, containing a group’s deployments
▪ Different deployment server for development / production
©2014. LogicBlox. All Rights Reserved.
NIXOPS - OUR CURRENT SETUP
▪ Deployment servers
▪ Log in via ssh, switch to specific deploy user via sudo, containing a group’s deployments
▪ Different deployment server for development / production
▪ Issues
▪ Hard to use for non-technical users (project-managers, sales)
▪ Easy access to provider (AWS/GCE) credentials
▪ Inconsistent deployments (e.g. managing code clones)
▪ Hard to track what is going on
©2014. LogicBlox. All Rights Reserved.
DEPLOYMENT - NIXOPS - OUR CURRENT SETUP
▪ Deployment servers
▪ Log in via ssh, switch to specific deploy user via sudo, containing a group’s deployments
▪ Different deployment server for development / production
▪ Issues
▪ Hard to use for non-technical users (project-managers, sales)
▪ Easy access to provider (AWS/GCE) credentials
▪ Inconsistent deployments (e.g. managing code clones)
▪ Hard to track what is going on
▪ New project: NixOps Dashboard
▪ Web UI for NixOps , started November 1st
▪ Will be open-sourced once we have a usable version
▪ Created by Oussama Elkaceh and me.
©2014. LogicBlox. All Rights Reserved.
DEPLOYMENT - NIXOPS DASHBOARD
▪ Improved security
▪ By limiting the direct access to environments that have keys to access Cloud resources. Users
will use the Dashboard (RESTful API) to perform any deployment actions.
▪ Deeper operational visibility
▪ Centralized, consistent and detailed view of the real-time status of all machines and
deployments.
▪ Audit trail
▪ Easy access and insight into what is happening and what has happened with regards to
deployments. Also, all performed operations are tracked and visible to administrators.
▪ Usability, Consistency, Predefined Actions and Operations
▪ Anyone can access and view the state of the existent deployments / historical deployments.
©2014. LogicBlox. All Rights Reserved.
SUMMARY - LOGICBLOX AND NIX
▪ Nix / Hydra
▪ Reproducible, composable builds, traceability
▪ NixOS
▪ Reproducible system configuration
▪ NixOps
▪ Automation of provisioning, creating reproducible networks
of machines, one click deployment!
▪ Nix helps us, so we help Nix!
▪ Giving back by contributing to:
▪ Nix, Nixpkgs, Hydra, NixOps
▪ Supporting the infrastructure running Nix*
▪ Binary caches, EC2 capacity
©2014. LogicBlox. All Rights Reserved.
THANK YOU.
©2014. LogicBlox. All Rights Reserved.

More Related Content

What's hot

Ceph Day New York: Ceph: one decade in
Ceph Day New York: Ceph: one decade inCeph Day New York: Ceph: one decade in
Ceph Day New York: Ceph: one decade inCeph Community
 
Fernando Gont - The Hack Summit 2021 - State of the Art in IPv6 Security
Fernando Gont - The Hack Summit 2021 - State of the Art in IPv6 SecurityFernando Gont - The Hack Summit 2021 - State of the Art in IPv6 Security
Fernando Gont - The Hack Summit 2021 - State of the Art in IPv6 SecurityEdgeUno
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015Mark Voelker
 
Performant and Resilient Storage: The Open Source & Linux Way
Performant and Resilient Storage: The Open Source & Linux WayPerformant and Resilient Storage: The Open Source & Linux Way
Performant and Resilient Storage: The Open Source & Linux WayOpenNebula Project
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Walid Shaari
 
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA SolutionsNagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA SolutionsNagios
 
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosNagios
 
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Nagios
 
John_Ting_Resume
John_Ting_ResumeJohn_Ting_Resume
John_Ting_ResumeJohn Ting
 
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with ChefThe Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with ChefChef Software, Inc.
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
 
Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo
 
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...Michal Němec
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis
 
Icinga @OSMC 2013
Icinga @OSMC 2013Icinga @OSMC 2013
Icinga @OSMC 2013Icinga
 
OpenStack Load Balancing Use Cases and Requirements
OpenStack Load Balancing Use Cases and RequirementsOpenStack Load Balancing Use Cases and Requirements
OpenStack Load Balancing Use Cases and RequirementsJohn Gruber
 
A Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon ValleyA Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon ValleyStephen Gordon
 
EGI TF 2013 / Cloud Interoperability Week – Hands-On Tutorial
EGI TF 2013 / Cloud Interoperability Week – Hands-On TutorialEGI TF 2013 / Cloud Interoperability Week – Hands-On Tutorial
EGI TF 2013 / Cloud Interoperability Week – Hands-On TutorialOpenNebula Project
 

What's hot (20)

Ceph Day New York: Ceph: one decade in
Ceph Day New York: Ceph: one decade inCeph Day New York: Ceph: one decade in
Ceph Day New York: Ceph: one decade in
 
Fernando Gont - The Hack Summit 2021 - State of the Art in IPv6 Security
Fernando Gont - The Hack Summit 2021 - State of the Art in IPv6 SecurityFernando Gont - The Hack Summit 2021 - State of the Art in IPv6 Security
Fernando Gont - The Hack Summit 2021 - State of the Art in IPv6 Security
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015
 
Performant and Resilient Storage: The Open Source & Linux Way
Performant and Resilient Storage: The Open Source & Linux WayPerformant and Resilient Storage: The Open Source & Linux Way
Performant and Resilient Storage: The Open Source & Linux Way
 
Open stack
Open stackOpen stack
Open stack
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
 
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA SolutionsNagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
 
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With Nagios
 
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
 
John_Ting_Resume
John_Ting_ResumeJohn_Ting_Resume
John_Ting_Resume
 
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with ChefThe Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 
Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get Started
 
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014
 
Icinga @OSMC 2013
Icinga @OSMC 2013Icinga @OSMC 2013
Icinga @OSMC 2013
 
OpenStack Days Krakow
OpenStack Days KrakowOpenStack Days Krakow
OpenStack Days Krakow
 
OpenStack Load Balancing Use Cases and Requirements
OpenStack Load Balancing Use Cases and RequirementsOpenStack Load Balancing Use Cases and Requirements
OpenStack Load Balancing Use Cases and Requirements
 
A Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon ValleyA Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon Valley
 
EGI TF 2013 / Cloud Interoperability Week – Hands-On Tutorial
EGI TF 2013 / Cloud Interoperability Week – Hands-On TutorialEGI TF 2013 / Cloud Interoperability Week – Hands-On Tutorial
EGI TF 2013 / Cloud Interoperability Week – Hands-On Tutorial
 

Similar to NixCon Berlin 2015 - Nix at LogicBlox

2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BTuictamale
 
Open Source Investments in Mainframe Through the Next Generation - Showcasing...
Open Source Investments in Mainframe Through the Next Generation - Showcasing...Open Source Investments in Mainframe Through the Next Generation - Showcasing...
Open Source Investments in Mainframe Through the Next Generation - Showcasing...Open Mainframe Project
 
DevOpsDays Singapore Habitat Ignite
DevOpsDays Singapore Habitat IgniteDevOpsDays Singapore Habitat Ignite
DevOpsDays Singapore Habitat IgniteMatt Ray
 
Hadoop-Automation-Tool_RamkishorTak
Hadoop-Automation-Tool_RamkishorTakHadoop-Automation-Tool_RamkishorTak
Hadoop-Automation-Tool_RamkishorTakRam Kishor Tak
 
Drupal PT Meetup Lisbon (December 2011)
Drupal PT Meetup Lisbon (December 2011)Drupal PT Meetup Lisbon (December 2011)
Drupal PT Meetup Lisbon (December 2011)Paulo Gomes
 
Road to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache HopRoad to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache HopNeo4j
 
Ceph Day Shanghai - Community Update
Ceph Day Shanghai - Community Update Ceph Day Shanghai - Community Update
Ceph Day Shanghai - Community Update Ceph Community
 
2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red HatShawn Wells
 
OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...
OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...
OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...NETWAYS
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Chris Ciborowski
 
OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...
OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...
OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...OpenNebula Project
 
Build Your Private Cloud with Ezilla and Haduzilla
Build Your Private Cloud with Ezilla and HaduzillaBuild Your Private Cloud with Ezilla and Haduzilla
Build Your Private Cloud with Ezilla and HaduzillaJazz Yao-Tsung Wang
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of dockerJohn Zaccone
 
Ceph: A decade in the making and still going strong
Ceph: A decade in the making and still going strongCeph: A decade in the making and still going strong
Ceph: A decade in the making and still going strongPatrick McGarry
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesYshay Yaacobi
 
Machine learning in cybersecutiry
Machine learning in cybersecutiryMachine learning in cybersecutiry
Machine learning in cybersecutiryVishwas N
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkJérôme Petazzoni
 

Similar to NixCon Berlin 2015 - Nix at LogicBlox (20)

2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT
 
How to deploy a smart city platform?
How to deploy a smart city platform?How to deploy a smart city platform?
How to deploy a smart city platform?
 
Open Source Investments in Mainframe Through the Next Generation - Showcasing...
Open Source Investments in Mainframe Through the Next Generation - Showcasing...Open Source Investments in Mainframe Through the Next Generation - Showcasing...
Open Source Investments in Mainframe Through the Next Generation - Showcasing...
 
DevOpsDays Singapore Habitat Ignite
DevOpsDays Singapore Habitat IgniteDevOpsDays Singapore Habitat Ignite
DevOpsDays Singapore Habitat Ignite
 
Hadoop-Automation-Tool_RamkishorTak
Hadoop-Automation-Tool_RamkishorTakHadoop-Automation-Tool_RamkishorTak
Hadoop-Automation-Tool_RamkishorTak
 
Drupal PT Meetup Lisbon (December 2011)
Drupal PT Meetup Lisbon (December 2011)Drupal PT Meetup Lisbon (December 2011)
Drupal PT Meetup Lisbon (December 2011)
 
Road to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache HopRoad to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache Hop
 
Ceph Day Shanghai - Community Update
Ceph Day Shanghai - Community Update Ceph Day Shanghai - Community Update
Ceph Day Shanghai - Community Update
 
2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat
 
OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...
OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...
OSDC 2013 | The OpenNebula Cloud Platform for Datacenter Virtualization by Co...
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015
 
OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...
OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...
OpenNebulaConf 2016 - The Lightweight Approach to Build Cloud CyberSecurity E...
 
Build Your Private Cloud with Ezilla and Haduzilla
Build Your Private Cloud with Ezilla and HaduzillaBuild Your Private Cloud with Ezilla and Haduzilla
Build Your Private Cloud with Ezilla and Haduzilla
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 
Ceph: A decade in the making and still going strong
Ceph: A decade in the making and still going strongCeph: A decade in the making and still going strong
Ceph: A decade in the making and still going strong
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
Machine learning in cybersecutiry
Machine learning in cybersecutiryMachine learning in cybersecutiry
Machine learning in cybersecutiry
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
 

Recently uploaded

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

NixCon Berlin 2015 - Nix at LogicBlox

  • 1. Smart database for next-generation applications Nix and LogicBlox
  • 2. INTRODUCTION ©2014. LogicBlox. All Rights Reserved. ▪ Rob Vermaas ▪ IRC: ikwildrpepper ▪ Email: rob.vermaas@gmail.com
  • 3. MY NIX HISTORY ©2014. LogicBlox. All Rights Reserved. ▪ Contributed to: ▪ Nixpkgs, Hydra, NixOps, Nix ▪ First Nix related commit ▪ August 2004, adding Octave ▪ Infrastructure support ▪ NixOS Foundation
  • 4. LOGICBLOX ▪ Develops a state-of-the-art database system that is used to develop applications for many top retailers and banks ▪ 150 people, all over the world ▪ USA, Canada, Tunisia, The Netherlands, Greece, United Kingdom, Belarus, Sweden ▪ LogicBlox Nix-ers: ▪ Eelco Dolstra ▪ Rob Vermaas ▪ Martin Bravenboer ▪ Shea Levy (former employee) ▪ Evgeny Egorochkin (contractor) ©2014. LogicBlox. All Rights Reserved.
  • 5. WHY DO I WANT TO USE NIX? ©2014. LogicBlox. All Rights Reserved. ▪ Nix protects me against me ▪ Nix let’s me do things multiple times consistently, even on different machines ▪ Nix exposes the things I forget ▪ Nix, the one language to rule them all
  • 6. HOW TO NIXIFY A COMPANY ©2014. LogicBlox. All Rights Reserved. Step 1: Find a nice company Step 2: Apply Nix everywhere Step 3: Profit ▪ 3 step plan to Nixify a software company
  • 7. HOW TO NIXIFY A COMPANY ©2014. LogicBlox. All Rights Reserved. Step 1: Find a nice company Step 2: Apply Nix everywhere Step 3: Profit ▪ 3 step plan to Nixify a software company Build Test Deploy
  • 8. Nix NIX - THE BIG FOUR ©2014. LogicBlox. All Rights Reserved. Build Test Deploy
  • 9. Nix NIX - THE BIG FOUR ©2014. LogicBlox. All Rights Reserved. Hydra Build Test Deploy
  • 10. Nix NixOps / NixOS NIX - THE BIG THREE ©2014. LogicBlox. All Rights Reserved. Hydra Build Test Deploy
  • 11. Nix NIX - THE BIG THREE ©2014. LogicBlox. All Rights Reserved. Hydra Build Test Deploy ▪ How to start? Too much to do! Can’t change everything immediately! NixOps / NixOS
  • 12. NIXIFYING EXISTING BUILDS ▪ Closed source software ▪ Buildscripts everywhere! ▪ Hardcoded locations ▪ Binary files/libraries ©2014. LogicBlox. All Rights Reserved. ▪ Long builds ▪ Huge builds ▪ Network access ▪ Not just 1 language
  • 13. HYDRA - CONTINUOUS BUILDS ©2014. LogicBlox. All Rights Reserved.
  • 14. HYDRA - CONTINUOUS BUILDS ▪ Why Hydra? ▪ All builds consolidated in one system, with one language to describe all ▪ Less maintenance ▪ Better traceability ▪ Reproducibility of build ▪ Caching of builds, very useful when composing builds ▪ Integrates with our deployment tools ▪ Terminology ▪ Projects ▪ Jobsets / Jobs ▪ Builds ▪ Features ▪ Easy to clone jobsets and build branches ▪ Ability to compose multiple builds as one logical build ©2014. LogicBlox. All Rights Reserved.
  • 15. HYDRA - WHAT DO WE BUILD ▪ Hydra structure: ▪ 19 active projects ▪ 205 active jobsets ©2014. LogicBlox. All Rights Reserved.
  • 16. HYDRA - BUILDING PLATFORM ©2014. LogicBlox. All Rights Reserved. ▪ What is built? ▪ Builds, debug builds, regressions tests, benchmarks, applications, binary releases ▪ Continuous builds ▪ Each commit -> ~ 90 builds, ~ 3 buildhours ▪ Nightly integration builds ▪ Each commit -> ~ 300 builds, ~ 120 buildhours
  • 17. HYDRA - BUILDING CLIENT APPLICATIONS { platform_release ? "3.9.5" , increment ? ./. }: with (import <config> {}); let platform = getPlatform platform_release; in genericAppJobset { build = buildLBConfig { name = "increment-${version increment}"; src = increment; buildInputs = [ logicblox bloxweb ]; }; extraNixPath = { inherit increment; }; }
  • 18. HYDRA - BUILDING CLIENT APPLICATIONS
  • 19. Everything needed for deployment ▪ LB application (installer) ▪ Software dependencies (logicblox, bloxweb, nixpkgs) ▪ Operating system (nixpkgs) ▪ System configuration libraries for Logicblox (lbdevops) ▪ Machine definitions (increment) HYDRA - CHARON_CLOSURE (EHHHM, NIXOPS_CLOSURE)
  • 20. HYDRA - BUILDING MACHINE IMAGES ©2014. LogicBlox. All Rights Reserved. ▪ Also used for NixOS EC2/GCE/VB images: ▪ <nixpkgs/nixos/lib/make-disk-image.nix> with (import <nixpkgs> {}); vmTools.runInLinuxVM ( stdenv.mkDerivation { name = "need-root"; buildCommand = '' echo Do stuff only root can do ''; })
  • 21. HYDRA - TESTING ON OTHER DISTRIBUTIONS ©2014. LogicBlox. All Rights Reserved. fedora19x86_64 = testDownloadPackage (diskImageFuns.fedora19x86_64 { size = 2048; extraPackages = [ "bash" "java-1.7.0-openjdk" "python" "procps-ng" ]; });
  • 22. HYDRA - BUILDING DOCUMENTATION ©2014. LogicBlox. All Rights Reserved.
  • 23. HYDRA - BENCHMARKING ©2014. LogicBlox. All Rights Reserved. ▪ Dedicated benchmarking team using nix as benchmark composer ▪ Tracking performance over time ▪ Evaluate performance of PR’s ▪ Improvements ▪ Scheduler ▪ Hydra EC2 provisioner ▪ Prioritization of builds Software Hardware D ata CPU x Memory x Storage System x Version x Benchmark Scale x Data Set
  • 24. BOB / HYDRA ▪ 2011 - 2013: Started out with 3 linux machines, up to 8 machines ▪ On-premise hardware in the main office in Atlanta ▪ High initial investments ▪ Need IT people to handle hardware issues ▪ Need fast internet connection to scale out ▪ 2013-2015: 21 x Linux, 2 x Mac OS X ▪ 8 general purpose ▪ 12 dedicated benchmark ▪ Can scale up on Amazon EC2, when needed ▪ https://github.com/NixOS/hydra-provisioner ©2014. LogicBlox. All Rights Reserved.
  • 25. BOB / NUMBER OF BUILDS ©2014. LogicBlox. All Rights Reserved.
  • 26. BOB / NUMBER OF BUILD HOURS ©2014. LogicBlox. All Rights Reserved.
  • 27. NIXOPS Tool to deploy networks of NixOS machines ▪ Single formalism for packaging, provisioning and configuration management ▪ Easy to add software to deployment ▪ Based on Nix package manager ▪ Expressive configuration language ▪ Supports separation of logical and physical aspects of a deployment ▪ Reuse spec for multiple cloud backends ▪ Combined configuration and provisioning ▪ Interaction between config and infrastructure ©2014. LogicBlox. All Rights Reserved.
  • 28. NIXOPS ©2014. LogicBlox. All Rights Reserved. + Mixed spec Logical spec + VirtualBox physical spec + EC2 physical spec + GCE physical spec EC2 Google Physical hardware EC2
  • 29. NIXOPS ▪ What to deploy? ▪ Where to deploy? ©2014. LogicBlox. All Rights Reserved. { machine = { config, pkgs, ... }: { imports = [ ./nix-homepage.nix ]; }; } { machine = { deployment.targetEnv = "ec2"; deployment.ec2.accessKeyId = "ec2"; ... }; }
  • 30. NIXOPS - ARGUMENTS { account ? "logicblox-dev" , region ? "eu-west-1" , instanceType ? "r3.xlarge" , name , enableBatch ? false , production ? false , ... }: { … } ©2014. LogicBlox. All Rights Reserved.
  • 31. NIXOPS ▪ Do we use NixOps? ▪ Hell yeah! ▪ Networks/clusters with up to 54 machines per cluster ©2014. LogicBlox. All Rights Reserved.
  • 32. NIXOPS ▪ Do we use NixOps? ▪ Hell yeah! ▪ Networks/clusters with up to 54 machines per cluster ▪ Last 30 days ▪ 100 ‘nixops create’ ▪ 88 ‘nixops delete’ ▪ 1700 ‘nixops deploy’ ▪ 300 ‘nixops destroy’ ▪ 40 different people running deployments ©2014. LogicBlox. All Rights Reserved.
  • 33. NIXOPS ▪ Do we use NixOps? ▪ Hell yeah! ▪ Networks/clusters with up to 54 machines per cluster ▪ Last 30 days ▪ 100 ‘nixops create’ ▪ 88 ‘nixops delete’ ▪ 1700 ‘nixops deploy’ ▪ 300 ‘nixops destroy’ ▪ 40 different people running deployments ©2014. LogicBlox. All Rights Reserved. Type # Where? Internal servers ~ 50 EC2, GCE, Hetzner, on- premise hardware Client applications > 500 EC2, GCE Dynamically scaled 0-1500 EC2
  • 34. NIXOPS - OUR CURRENT SETUP ▪ Deployment servers ▪ Log in via ssh, switch to specific deploy user via sudo, containing a group’s deployments ▪ Different deployment server for development / production ©2014. LogicBlox. All Rights Reserved.
  • 35. NIXOPS - OUR CURRENT SETUP ▪ Deployment servers ▪ Log in via ssh, switch to specific deploy user via sudo, containing a group’s deployments ▪ Different deployment server for development / production ▪ Issues ▪ Hard to use for non-technical users (project-managers, sales) ▪ Easy access to provider (AWS/GCE) credentials ▪ Inconsistent deployments (e.g. managing code clones) ▪ Hard to track what is going on ©2014. LogicBlox. All Rights Reserved.
  • 36. DEPLOYMENT - NIXOPS - OUR CURRENT SETUP ▪ Deployment servers ▪ Log in via ssh, switch to specific deploy user via sudo, containing a group’s deployments ▪ Different deployment server for development / production ▪ Issues ▪ Hard to use for non-technical users (project-managers, sales) ▪ Easy access to provider (AWS/GCE) credentials ▪ Inconsistent deployments (e.g. managing code clones) ▪ Hard to track what is going on ▪ New project: NixOps Dashboard ▪ Web UI for NixOps , started November 1st ▪ Will be open-sourced once we have a usable version ▪ Created by Oussama Elkaceh and me. ©2014. LogicBlox. All Rights Reserved.
  • 37. DEPLOYMENT - NIXOPS DASHBOARD ▪ Improved security ▪ By limiting the direct access to environments that have keys to access Cloud resources. Users will use the Dashboard (RESTful API) to perform any deployment actions. ▪ Deeper operational visibility ▪ Centralized, consistent and detailed view of the real-time status of all machines and deployments. ▪ Audit trail ▪ Easy access and insight into what is happening and what has happened with regards to deployments. Also, all performed operations are tracked and visible to administrators. ▪ Usability, Consistency, Predefined Actions and Operations ▪ Anyone can access and view the state of the existent deployments / historical deployments. ©2014. LogicBlox. All Rights Reserved.
  • 38. SUMMARY - LOGICBLOX AND NIX ▪ Nix / Hydra ▪ Reproducible, composable builds, traceability ▪ NixOS ▪ Reproducible system configuration ▪ NixOps ▪ Automation of provisioning, creating reproducible networks of machines, one click deployment! ▪ Nix helps us, so we help Nix! ▪ Giving back by contributing to: ▪ Nix, Nixpkgs, Hydra, NixOps ▪ Supporting the infrastructure running Nix* ▪ Binary caches, EC2 capacity ©2014. LogicBlox. All Rights Reserved.
  • 39. THANK YOU. ©2014. LogicBlox. All Rights Reserved.