howto, nodefabric

NodeFabric architecture

NodeFabric Host Image is a modular system based on RedHat Enterprise Linux or CentOS operating system, integrating Docker containers, Consul Service Discovery and HAProxy Load­Balancers into vertical Solution Stack.

http://nodefabric.readthedocs.org

Part I:     NodeFabric Introduction
Part III:  Getting Started with NodeFabric in Amazon EC2 Cloud

About

NodeFabric is designed to be lightweight, highly available and homogeneously distributed fabric for deploying turnkey data backend clusters. It utilizes HashiCorp Consul service discovery - together with integrated Docker service registration bridge and dynamically managed HAProxy load­balancer pools for internal service endpoints.

Its main purpose is to provide service discovery, cluster coordination, distributed k/v store and highly available load-balanced service mesh to “hosted” backend clusters – which are packaged and run as Docker containers across multiple NodeFabric hosts. Clustered MySQL database (MariaDB-Galera) and distributed storage (Ceph RBD, CephFS) services are already included out-of-the-box – as integrated and supported NodeFabric modules. We are looking forward to expand module list beyond MariaDB and Ceph services.

The Big Picture

NodeFabric. Simplified. :-)

NodeFabric is distributed as a prebuilt, ready-to-use Host Image – based on CentOS or RedHat Enterprise Linux. All major NodeFabric modules and components are packaged and embedded into host image as Docker containers - which also provides versioning to these components.

NodeFabric Core Layer is formed by Consul, Registrator and HAProxy containers - implementing distributed cluster state database and managing internal service endpoints - driven by service discovery and health checks. Inter-service communication can happen over these “localhost-like” load balanced endpoints. It is possible to load and co-locate third-party (and your own) Docker containers (ie frontend apps, etc.) - forming full-stack application clusters with built-in NodeFabric data backend services - like MariaDB or Ceph(FS).

Supported data backend services are using their own native clustering and sync protocols - which are usually the most effective. NodeFabric Core Layer helps to reduce their deployment and coordination complexity – and additionally standardize these bootstrapping and management procedures.

Bits and Pieces

Components included in NodeFabric:

  • Consul service discovery and health monitoring by HashiCorp
  • Docker Linux containers engine by Docker, Inc.
  • Docker Consul registration bridge by Glider Labs
  • HAProxy load balancer by HAProxy Technologies, Inc.
  • CentOS 7 operating system

NodeFabric Core Layer

CentOS

http://www.centos.org/

CentOS 7 is a stable, industry­ standard operating system ­– based on RedHat Enterprise Linux 7 and hosting Docker container engine.

Consul Service Discovery

https://www.consul.io

Consul has multiple components, but as a whole, it is a tool for discovering and configuring distributed services. It manages NodeFabric service registry and does service health checks and provides highly available key-value store.

HAProxy load balancer

http://www.haproxy.org/

HAProxy is a free, open source high availability solution, providing load balancing and proxying for TCP and HTTP­based applications by spreading requests across multiple servers. NodeFabric utilizes it in order to implement dynamic service mesh - ie local load-balanced service endpoints.

Included Data Backend Services

MySQL (compatible) Database

MariaDB-Galera Cluster is a synchronous multi-master database cluster - a drop-in replacement for MySQL.

Read more about it here:
https://mariadb.com/kb/en/mariadb/what-is-mariadb-galera-cluster/

Ceph Distributed Storage

Ceph is a distributed object store and file system designed to provide excellent performance, reliability and scalability.

More info about CephFS:
http://ceph.com/ceph-storage/file-system/