Top Banner
NETCOMPOSER SOFTWARE DEFINED DATA CENTER PLATFORM
28
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: NetComposer

NETCOMPOSERSOFTWARE DEFINED DATA CENTER PLATFORM

Page 2: NetComposer

What is NetComposer?“A flexible, easy to use software platform designed to be

the core of next generation, scalable and highly available data centers.”

“A tool to build and operate distributed, massively scalable, network-centric applications, with a focus on uptime and

low latency, ruled as reactive systems and based on micro services.”

Page 3: NetComposer

Core FeaturesScalable from one node to thousands of nodes.

Fault tolerant. No master, shared-nothing architecture.

Multi data center. Hybrid clouds. From a Raspberry Pi to big multicore machines.

Batteries included: distributed database, discovery, sophisticated network features, scalable storage and container orchestration.

Lightweight. Flexible. Incredibly easy to install and operate. Single image for all of the nodes.

Under load, on-the-fly updates of any part of the system. No service interruption.

Page 4: NetComposer

What can I do with NC?SDN/NFV Platform.

Video/audio/chat UC system foundation.

Storage-as-a-service.

Docker orchestrator.

Microservices container.

Any other critical/distributed application.

Page 5: NetComposer

Router / Gateway / Internet

Core Layer

Automatically scalable from asingle node…

Page 6: NetComposer

Router / Gateway / Internet

Core Layer

… to a fault-tolerant setup…

Page 7: NetComposer

Router / Gateway / Internet

Access layer

Core Layer

Worker Layer

… to any scale!

Page 8: NetComposer

Core LayerIt is the logical core of the system, in charge of managing the core services and starting and controlling the rest of nodes and services.

Included core services:

a distributed, low-latency powerful database, with eventually consistent, self-convergent and strong consistency modes, memory and disk backends, search engine, auto expiration…

DNS discovery.

Cloud and Bare Metal server provisioning.

Signaling protocols: SIP, XMPP, Matrix.

Bundled services like OpenFlow controller and Docker orchestrator.

Metadata servers for the software defined storage system (based on Ceph).

All core services are distributed and fault-tolerant. Hot code loading. Automatic load distribution.

User-defined services are also possible

Page 9: NetComposer

Ceph Storage Controllers

NetComponser Core Services:CORE fault-tolerant coordinator

Distributed DatabaseDNS, DHCP, Server provisioning

SIP, XMPP, MatrixOpenFlow controllerDocker orchestrator

Router / Gateway / Internet

Core Layer

Access layer

Worker Layer

User-Defined Services

Page 10: NetComposer

Access LayerThe access layer interfaces with the rest of the world, and provides network facilities, specific for each started service. It can send the requests to the core layer if its target is a core service (like SIP or OpenFlow) or directly to the worker that must manage that request.

Virtual IP groups. Each service can setup a group of IPs to be mapped to it. IPs remain active even after server failures from the access, core or worker layers.

Distributed ACLs and firewall. Each time a new service is started requiring firewall services, it is updated automatically.

Proxy and intelligent, service-aware load balancing services. The core layer keeps the list of mappings up to date, so that when a worker dies, the balancers are automatically updated.

Service-specific QoS management

Network metrics

It can be implemented with NetComposer nodes or using any Openflow compatible hardware or software switch.

Page 11: NetComposer

Router / Gateway / Internet

FirewallProxy / LB

QoSFlow / Metrics

Core Layer

Access layer

Worker Layer

FirewallProxy / LB

QoSFlow / Metrics

FirewallProxy / LB

QoSFlow / Metrics

FirewallProxy / LB

QoSFlow / Metrics

SIP

RTP MediaHTTP

VIp1

VIp1 VIp2

VIp3

VIp3 VIp2

Page 12: NetComposer

Worker LayerThe worker layer is made of any number of servers, managed from the core layer, and running inside docker containers.

The core layer is aware at any moment of the exact number of nodes, current load, running containers, etc., and it is able to schedule new containers to the best server.

Each server runs a small agent installed from the core layer, and can be updated on the fly. It also works as local DNS server for service discovery.

A special container is used to serve storage to the rest of containers, in a highly available, high performance scheme, using Ceph.

NetComposer is able to set up VxLANs automatically to connect containers running in different hosts, networks and data centers.

Page 13: NetComposer

VXLAN

Core Layer

Worker Layer

Router / Gateway / Internet

Access layer

Containers Group

Ceph Disk

Ceph Disk

Container

Container

Container

Container

Container

Container Container

Container

Page 14: NetComposer

Domains and

Core Services

Page 15: NetComposer

DomainsDomains are the basic NetComposer management units. You can start any number of domains, that can be used for different applications, sets of applications or customers.

You work with the whole cluster as if it were a single computer. It does not matter if it has a single server or a thousand.

You start with a single configuration file describing your domains. You can start, stop or update most domain parameters and services in real time, under load, or while adding or removing nodes. You can use NetComposer’s CLI or the REST interface to manage your domains after the initial configuration.

You can associate with each domain the core services you want. You can add, modify or remove services in real time.

Page 16: NetComposer

Core ServicesNetComposer offers a serie of core services for your domains. Each domain can use any set of different services.

All core services are cluster aware, distributed and highly available.

All core services have a REST interface that you can publish to the outside or inside networks, and have also a high-speed, low latency interface to other core services running inside NetComposer.

Core services are hierarchical. Some core services depend, modify or upgrade the functionality of lower level, more basic core services.

Core services’s code can be upgraded on the fly (as the rest of NetComposer).

You can develop your own core services that run inside NetComposer core layer nodes, or manage any other service using the Container Service or externally to NetComposer.

Page 17: NetComposer

Core ServicesThe initial planned core services list include:

Distributed Database.

Distributed Storage.

Cloud and Bare Metal server provisioning.

Virtual IP/Port groups.

Firewall, load balancer, QoS, VLANs, VPNs and tunnels.

SIP/WebRTC Engine (registrar, proxy, B2BUA and media processing).

Openflow controller .

Docker container orchestrator.

Page 18: NetComposer

Planned Core Services

Page 19: NetComposer

Distributed DatabaseNetComposer includes and distributed, flexible database available as a service, for internal core services or your own services or external applications:

Highly available, allowing read and write operation even in case of node failures.

Disk and memory backends.

Three simultaneous operation modes:

Eventually consistent mode using Dotted Version Vectors.

Strong consistent mode based on using multi-paxos.

Easy to use, self-convergent DMaps.

Multiple, auto-generated secondary indices, usable in the three modes.

Simple, easy to use, utf8 and latin-1 aware query language for secondary indices.

Full support for auto-expiration of objects, with configurable resolution.

The distribute database service is based on the already released NkBASE project: https://github.com/Nekso/nkbase

Page 20: NetComposer

Storage ServiceNetComposer uses Ceph to provide persistency services to other core services, user services (at the core layer or inside docker containers) and external applications.

It offers a redundant, scalable storage-as-a-service facility than can be consumed as virtual disks, with a S3-compatible interface or as a POSIX file system.

The core layer starts and manages a number of Ceph Monitors and Metadata Servers.

Any node of the cluster can export disks to the cluster. The NetComposer remote agent starts and manages the corresponding Ceph Object Storage Sevices.

NetComposer configures the Ceph cluster automatically, and manages the possible failures of monitors or metadata servers.

Page 21: NetComposer

DNS server/discoveryNetComposer includes a high-performance DNS server, available to core services, user services or external applications.

NetComposer registers automatically started domain services and assigned IPs and ports. When a shutdown or failure is detected the entries are automatically removed from DNS.

As all other core services, it offers a full-blown REST interface to manage registrations and configurations parameters.

It can use NetComposer database as backend or any other user-supplied backend.

Page 22: NetComposer

Cloud/Iron provisioningNetComposer includes all the tools for an automatic provisioning of nodes (for access, core or worker layers) on raw hardware, virtual machines or public clouds.

NetComposer has a minimal OS based on GNU/Linux which is deployable (hands off) into bare metal servers.

It offers auto updates with atomic rollbacks, distributed HA configuration, and auto join for the cluster.

It assures the QoS of the cluster resources for the different layers that works in it.

Page 23: NetComposer

Network ServiceAccess layer nodes offer a full catalogue of software-defined network services to core services, user services or external applications. As the rest of core services, all management can be done through the CLI or REST interface.

NetComposer access layer nodes can provision dynamically sets of combination of IP/Ports, assigned to specific services. These IPs are activated on access nodes. When an access layer node failure is detected, another node “takes” the IPs belonging to the failed node temporarily. If the node is marked as permanent down, all the IPs are reorganized.

From the network or the service point of view, there is a single network element. All services are designed to be scalable and distributed, with automatic failover in case of node failures.

Available services include NAT, firewall, (intelligent) load balancer, QoS management, VxLANS, tunnels and VPNs.

Page 24: NetComposer

Media ServiceNetComposer includes full SIP support which greatly facilitates the development of robust and scalable server-side SIP applications like proxy, registrar, redirect or outbound servers, B2BUAs, SBCs or load generators.

It also offers the tools to build distributed WebRTC applications, (using SIP over websockets or any other signaling protocol).

A Matrix (matrix.org) compatible server is also planned.

For the media processing, it is able to start and manage a number of Freeswitch instances. The offered REST interface shows a single, virtual media server. NetComposer takes care of sending the requests and RTP traffic to the right server, and failover in case of failures.

NetComposer SIP capabilities are based on the NkSIP project (https://github.com/kalta/nksip).

Page 25: NetComposer

OpenFlow ControllerNetComposer includes a distributed OpenFlow controller, than can be managed through the REST interface or trough the high-speed internal services connector.

It can manage the internal OpenVSwitch virtual switches (that are otherwise automatically managed) or any external, OpenFlow compatible virtual or physical switch.

It is, as the rest of NetComposer Services, highly scalable and fault tolerant. It can manage thousands of switches.

Page 26: NetComposer

Container ServiceNetComposer offers a distributed container service, initially focused on Docker. Containers run on the worker layer.

It is able to select the best node or group of nodes to run the selected container or group of containers. Network and storage services are automatically provisioned. Containers can be moved from one node to another transparently.

Integrating Kubernetes is being studied as an alternative.

Applications running inside containers can use all of NetComposer services through the REST interface of any of them, like the database, SIP, OpenFlow, etc.

NetComposer can connect containers running in different nodes to the same network using VxLANs.

Page 27: NetComposer

Roadmap

Page 28: NetComposer

Roadmap2015 Q2: First public prototype of the system

Core layer

Database

DNS

Basic network services

Basic container services.

2015 Q3: Storage service and Network service

2015 Q4: Media Service, Provisioning, OpenFlow, Matrix