• Today, the Cloud Native Computing Foundation (CNCF) Technical Oversight Committee (TOC) voted to accept NATS as an incubation-level hosted project, alongside Kubernetes, Prometheus, OpenTracing, Fluentd, Linkerd, gRPC, CoreDNS, containerd, rkt, CNI, Envoy, Jaeger, Notary, TUF, Rook and Vitess.

    Built from the ground up to be cloud native, NATS is a mature, seven-year-old open source messaging technology that implements the publish/subscribe, request/reply and distributed queue patterns to help create a performant and secure method of InterProcess Communication (IPC). Simplicity, performance, scalability and security are the core tenets of NATS.

    The project consists of a family of open source components that are tightly integrated but can be deployed independently. NATS is based on a client-server architecture with servers that can be clustered to operate as a single entity – clients connect to these clusters to exchange data encapsulated in messages.

    “While most messaging systems provide a mechanism to persist messages and ensure message delivery, NATS does this through log based streaming – which we’ve found to be an easier way to store and replay messages,” said Derek Collison, CEO of Synadia Communications and creator of NATS. “NATS is a simple yet powerful messaging system written to support modern cloud native architectures. Because complexity does not scale, NATS is designed to be easy to use while acting as a central nervous system for building distributed applications.”

    NATS Streaming subscribers can retrieve messages published when they were offline, or replay a series of messages. Streaming inherently provides a buffer in the distributed application ecosystem, increasing stability. This allows applications to offload local message caching and buffering logic into NATS and ensures a message is never lost.

    NATS is being deployed globally by thousands of companies, spanning innovative use-cases including: microservice architectures, cloud native applications and IoT messaging. It is being adopted by organizations such as Apcera, Apporeto, Baidu, Bridgevine, Capital One, Clarifai, Cloud Foundry, Comcast, Ericsson, Faber, Fission, General Electric (GE), Greta, HTC, Logimethods, Netlify, Pex, Pivotal, Platform9, Rapidloop, Samsung, Sendify, Sensay, StorageOS, VMware Acadiant, Weaveworks and Workiva.

    NATS was created by Derek Collison, founder and CEO at Synadia in response to the market need for a simple and high performance messaging solution. The Synadia team maintains the NATS Server (written in Go), NATS Streaming and clients written in Go, Python, Ruby, Node.js, Elixir, Java, NGINX, C and C#. The community has contributed a growing list of libraries, including Arduino, Rust, Lua, PHP, Perl and more. NATS is also available as a hosted solution, NATS Cloud.

    “Today’s cloud native landscape emphasizes scalability and total flexibility, emphasizing the need to transfer data between processes quickly, reliably and securely,” said Chris Aniszczyk, COO of Cloud Native Computing Foundation and VP of Developer Relations at The Linux Foundation. “Messaging was born to address this. In its contribution to CNCF, NATS fills a gap for a mature, cloud native messaging solution – the broad client coverage and simplicity of the protocol will make support for and integration with with future cloud native systems straightforward.”

    NATS has very strong existing synergy and inertia with other CNCF projects – used heavily in conjunction with projects like Kubernetes, Prometheus, gRPC, Fluentd, Linkerd and containerd.

    Main features:

    • Pure pub-sub
    • Clustered mode server
    • Auto-pruning of subscribers
    • Text-based protocol
    • Multiple qualities of service (QoS)
    • Durable subscriptions
    • Event streaming service
    • Last/Initial value caching

    Notable Milestones:

    • 44 contributors
    • 3,820 GitHub stars
    • 20 releases
    • 1,356 commits
    • 415 forks

    “Messaging and integration middleware paradigms have changed radically in the cloud native era and NATS represents a view into the future of application-to-application and service-to-service IPC,” said TOC representative and project sponsor, Alexis Richardson. “The performant nature of NATS makes it an ideal base for building modern, reliable, scalable cloud native distributed systems, making the project a great fit for CNCF.”

    As a CNCF hosted project, NATS is part of a neutral cloud native foundation aligned with its technical interests, as well as the larger Linux Foundation, which provides the technology with project governance, marketing support and community outreach.

    For more on NATS, please visit, see this video by founder Derek Collision and review this slideshow on NATS messaging + the problems it can solve in “Simple Solutions for Complex Problems.” An overview of NATS architecture can be found in “Understanding NATS Architecture.” For more on how it integrates with other projects, read “Guest Post: Fission – Serverless Functions and Workflows with Kubernetes and NATS.”

    The post CNCF to Host NATS appeared first on The Linux Foundation.


  • Make ISO from DVD

    In this case I had an OS install disk which was required to be on a virtual node with no optical drive, so I needed to transfer an image to the server to create a VM

    Find out which device the DVD is:



    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 464.8G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 11.8G 0 lvm [SWAP] └─centos-home 253:2 0 403G 0 lvm /home sdb 8:16 1 14.5G 0 disk /mnt sr0 11:0 1 4.1G 0 rom /run/media/rick/CCSA_X64FRE_EN-US_DV5

    Therefore /dev/sr0 is the location , or disk to be made into an ISO

    I prefer simplicity, and sometimes deal with the fallout after the fact, however Ive repeated this countless times with success.

    dd if=/dev/sr0 of=win10.iso

    Where if=Input file and of=output file

    I chill out and do something else while the image is being copied/created, and the final output:

    8555456+0 records in 8555456+0 records out 4380393472 bytes (4.4 GB) copied, 331.937 s, 13.2 MB/s


    read more
  • Recreate postrgresql database template encode to ASCII

    UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';

    Now we can drop it:

    DROP DATABASE template1;

    Create database from template0, with a new default encoding:

    CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE'; UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; \c template1 VACUUM FREEZE;

    read more