The video is available on YouTube: https://www.youtube.com/watch?v=dEot3Fb1iB4
Have you heard of a Node100 problem? Naïve Erlang clusters are complete network graphs which tend to blow up with a only a handful (100+) number of nodes. Solution is partially-connected mesh networks. The tricky part is easy communication for devs and transparent cluster management for devops.
In Spil Games n-tier architecture we use native Erlang message passing between tiers. Thus our cluster size (way over 500) requires partially connected network.
In this talk I will present a library which helps to create and maintain medium to large Erlang clusters. We have been using it for over 2 years now and time has come to announce and open-source it.
This talk is a part of the continuous effort Spil Games is making to give back to the community, as seen in Erlang Factory 2014 with the release of erl-cache and erl-memcache.
Target audience
Engineers interested or working with medium to large-scale Erlang clusters.
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3Maximilan Wilhelm
Dieses Jahr versuchen wir uns auf vielfachen Wunsch an einem noch praktischer orientierten Grundlagen-Vortrag. Wir fangen an bei Verkabelung (Kupfer, Glasfasern, Stecker, etc.), gehen weiter zu Ethernet (STP, VLANs, LAGs / Bonding) und enden unseren Ausflug bei IP und Grundlagen des Debugging (Ping, Traceroute).
Nach 20 Jahren IPv6 (RFC2460 erschien im Dezember 1998) und knapp 40% Verbreitung an Deutschlands Internetzugängen stellt sich IPv6 für die meisten Admins immer noch als Mysterium dar. Teilweise wird sogar von führenden Experten empfohlen IPv6 abzuschalten "weil das nur Probleme macht". Warum das nicht so ist, und warum man sich doch auf die "neue" Welt einlassen sollte erklärt dieser praxisorientierte Vortrag.
Der Vortag führt ein in Adresskonzepte, Adressvergabe und -auflösung (SLAAC, DHCPv6, DHCPv6-PD, ND, RDNSS, etc.) und zeigt einen typischen Adressierunsplan auf. Brückentechnologien wie NAT64, DS-lite und Teredo werden vorgestellt und eingeordnet. Die Konfiguration von IPv6 unter Linux wird am Beispiel von iproute2 bzw. Debian Netzwerkkonfiguration sowie sysctls aufgezeigt.
Dynamische Routingprotokolle Aufzucht und Pflege - OSPFMaximilan Wilhelm
Herzlichen Glückwunsch! Sie dürfen ein Netzwerk mit mehr als 2 Routern administrieren. Dieser Vortrag erläutert, warum statisches Routing keine Lösung ist und schneller als einem lieb ist zum Problem werden kann. Als Einführung in dynamisches Routing und OSPF, erklärt dieser Vortrag wie sich Router gegenseitig finden, Routen austauschen, was eine Area ist und wie die Link-State Datenbank funktioniert.
OSPF wird praktisch am Beispiel des Bird Internet Routing Daemons und in Zusammenspiel mit klassischen Herstellern gezeigt.
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-NetzwerkstackMaximilan Wilhelm
This document provides an overview of networking concepts in Linux including layer 2 and layer 3 topics. It discusses link aggregation (LAGs), VLANs, bridges, routing tables, policy-based routing (PBR), VRFs, and network namespaces (NetNS). Key points covered include using LACP for LAGs, VLAN tagging formats, the purpose of bridges, routing tables other than the default main table, and how VRFs and NetNS provide layer 3 and layer 1 separation respectively. Real-world applications of tunnels and VPNs with VRFs are also highlighted.
The presentation introduces to local ethernet networks. Explains physical and data link OSI layers of ethernet networks. Few fundamental terms are also explained:
- duplex and half duplex communication
- collision domain
- ethernet switch logic
- VLAN tags
Dynamische Routingprotokolle Aufzucht und Pflege - BGPMaximilan Wilhelm
Sie möchten Ihr großes internes Netzwerk - ein Autonomes System - mit dem Internet verbinden, eine IP-Fabric aufbauen oder interne Dienste per Anycast in Ihrem Netzwerk anbieten. Für all diese Dinge ist das Border Gateway Protokoll entwickelt worden und auch hervorragend geeignet.
Dieser Vortag vermittelt die Funktionsweise von BGP im externen und internen Einsatz, gibt einen Überblick über die Steuermechanismen und Stellschrauben und zeigt den praktischen Einsatz mit dem Bird Internet Routing Daemon auf.
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPThomas Graf
This talk will start with a deep dive and hands on examples of BPF, possibly the most promising low level technology to address challenges in application and network security, tracing, and visibility. We will discuss how BPF evolved from a simple bytecode language to filter raw sockets for tcpdump to the a JITable virtual machine capable of universally extending and instrumenting both the Linux kernel and user space applications. The introduction is followed by a concrete example of how the Cilium open source project applies BPF to solve networking, security, and load balancing for highly distributed applications. We will discuss and demonstrate how Cilium with the help of BPF can be combined with distributed system orchestration such as Docker to simplify security, operations, and troubleshooting of distributed applications.
This document provides an overview of networking concepts including:
- It introduces the presenters Falk Stern and Maximilian Wilhelm and their backgrounds in networking.
- It discusses common networking models including the OSI model, TCP/IP model, and hybrid models and describes the layers of each.
- It provides an overview of Ethernet including the history, addressing, frames, switches, bridges, and Ethernet protocols like Spanning Tree.
- It covers IPv4 addressing including classes, CIDR/VLSM, private addressing, and protocols like ARP.
- It discusses IP configuration on Linux systems and the iproute2 tool for network configuration.
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3Maximilan Wilhelm
Dieses Jahr versuchen wir uns auf vielfachen Wunsch an einem noch praktischer orientierten Grundlagen-Vortrag. Wir fangen an bei Verkabelung (Kupfer, Glasfasern, Stecker, etc.), gehen weiter zu Ethernet (STP, VLANs, LAGs / Bonding) und enden unseren Ausflug bei IP und Grundlagen des Debugging (Ping, Traceroute).
Nach 20 Jahren IPv6 (RFC2460 erschien im Dezember 1998) und knapp 40% Verbreitung an Deutschlands Internetzugängen stellt sich IPv6 für die meisten Admins immer noch als Mysterium dar. Teilweise wird sogar von führenden Experten empfohlen IPv6 abzuschalten "weil das nur Probleme macht". Warum das nicht so ist, und warum man sich doch auf die "neue" Welt einlassen sollte erklärt dieser praxisorientierte Vortrag.
Der Vortag führt ein in Adresskonzepte, Adressvergabe und -auflösung (SLAAC, DHCPv6, DHCPv6-PD, ND, RDNSS, etc.) und zeigt einen typischen Adressierunsplan auf. Brückentechnologien wie NAT64, DS-lite und Teredo werden vorgestellt und eingeordnet. Die Konfiguration von IPv6 unter Linux wird am Beispiel von iproute2 bzw. Debian Netzwerkkonfiguration sowie sysctls aufgezeigt.
Dynamische Routingprotokolle Aufzucht und Pflege - OSPFMaximilan Wilhelm
Herzlichen Glückwunsch! Sie dürfen ein Netzwerk mit mehr als 2 Routern administrieren. Dieser Vortrag erläutert, warum statisches Routing keine Lösung ist und schneller als einem lieb ist zum Problem werden kann. Als Einführung in dynamisches Routing und OSPF, erklärt dieser Vortrag wie sich Router gegenseitig finden, Routen austauschen, was eine Area ist und wie die Link-State Datenbank funktioniert.
OSPF wird praktisch am Beispiel des Bird Internet Routing Daemons und in Zusammenspiel mit klassischen Herstellern gezeigt.
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-NetzwerkstackMaximilan Wilhelm
This document provides an overview of networking concepts in Linux including layer 2 and layer 3 topics. It discusses link aggregation (LAGs), VLANs, bridges, routing tables, policy-based routing (PBR), VRFs, and network namespaces (NetNS). Key points covered include using LACP for LAGs, VLAN tagging formats, the purpose of bridges, routing tables other than the default main table, and how VRFs and NetNS provide layer 3 and layer 1 separation respectively. Real-world applications of tunnels and VPNs with VRFs are also highlighted.
The presentation introduces to local ethernet networks. Explains physical and data link OSI layers of ethernet networks. Few fundamental terms are also explained:
- duplex and half duplex communication
- collision domain
- ethernet switch logic
- VLAN tags
Dynamische Routingprotokolle Aufzucht und Pflege - BGPMaximilan Wilhelm
Sie möchten Ihr großes internes Netzwerk - ein Autonomes System - mit dem Internet verbinden, eine IP-Fabric aufbauen oder interne Dienste per Anycast in Ihrem Netzwerk anbieten. Für all diese Dinge ist das Border Gateway Protokoll entwickelt worden und auch hervorragend geeignet.
Dieser Vortag vermittelt die Funktionsweise von BGP im externen und internen Einsatz, gibt einen Überblick über die Steuermechanismen und Stellschrauben und zeigt den praktischen Einsatz mit dem Bird Internet Routing Daemon auf.
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPThomas Graf
This talk will start with a deep dive and hands on examples of BPF, possibly the most promising low level technology to address challenges in application and network security, tracing, and visibility. We will discuss how BPF evolved from a simple bytecode language to filter raw sockets for tcpdump to the a JITable virtual machine capable of universally extending and instrumenting both the Linux kernel and user space applications. The introduction is followed by a concrete example of how the Cilium open source project applies BPF to solve networking, security, and load balancing for highly distributed applications. We will discuss and demonstrate how Cilium with the help of BPF can be combined with distributed system orchestration such as Docker to simplify security, operations, and troubleshooting of distributed applications.
This document provides an overview of networking concepts including:
- It introduces the presenters Falk Stern and Maximilian Wilhelm and their backgrounds in networking.
- It discusses common networking models including the OSI model, TCP/IP model, and hybrid models and describes the layers of each.
- It provides an overview of Ethernet including the history, addressing, frames, switches, bridges, and Ethernet protocols like Spanning Tree.
- It covers IPv4 addressing including classes, CIDR/VLSM, private addressing, and protocols like ARP.
- It discusses IP configuration on Linux systems and the iproute2 tool for network configuration.
BPF: Next Generation of Programmable DatapathThomas Graf
This session covers lessons learned while exploring BPF to provide a programmable datapath based on BPF and discusses options for OVS to leverage the technology.
Networking Fundamentals: Transport Protocols (TCP and UDP)Andriy Berestovskyy
Transport Layer of TCP/IP. Transmission Control Protocol (TCP) basics and network sockets explained. How TCP connection get established, error recovered and terminated.
User Datagram Protocol and its comparison to TCP. Quality of Service (QoS).
Cilium - API-aware Networking and Security for Containers based on BPFThomas Graf
Cilium provides network security and visibility for microservices. It uses eBPF/XDP to provide fast and scalable networking and security controls at layers 3-7. Key features include identity-based firewalling, load balancing, and mutual TLS authentication between services. It integrates with Kubernetes to apply network policies using standard Kubernetes resources and custom CiliumNetworkPolicy resources for finer-grained control.
Es gibt viele Möglichkeiten hoch verfügbare und/oder skalierbare Dienste zu bauen, die weitläufig im Einsatz sind: DNS Round-Robin, ein Satz Loadbalancer oder Reverse-Proxies, etc. pp. An Anycast und BGP im eigenen Rechenzentrum trauen sich einige Admins und Entscheider nicht heran.
Warum es OK ist, wenn einige bis viele Server die selbe IP-Adresse haben, viele Wege nach Rom führen und wie man so ein Setup aufbaut und betreibt soll in diesem Vortrag praxisnah gezeigt werden. Wir bauen auf Basis von Debian Linux, Bird und Bind einen Cluster von Webservern und spielen ein bisschen damit herum (wenn noch genug Zeit ist).
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
In I.T. we all use all kinds of metrics. Operations teams rely heavily on these, especially when things go south. These metrics are sometimes overrated. Let’s dive into a few real life stories together.
Aurélien Rougemont
LinuxCon 2015 Linux Kernel Networking WalkthroughThomas Graf
This presentation features a walk through the Linux kernel networking stack for users and developers. It will cover insights into both, existing essential networking features and recent developments and will show how to use them properly. Our starting point is the network card driver as it feeds a packet into the stack. We will follow the packet as it traverses through various subsystems such as packet filtering, routing, protocol stacks, and the socket layer. We will pause here and there to look into concepts such as networking namespaces, segmentation offloading, TCP small queues, and low latency polling and will discuss how to configure them.
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
Suricata is a network threat detection engine using network packets capture to reconstruct the traffic till the application layer and find threats on the network using rules that define behavior to detect. This task is really CPU intensive and discarding non interesting traffic is a solution to enable a scaling of Suricata to 40gbps and other.
This talk will present the latest evolution of Suricata that knows uses eBPF and XDP to bypass traffic. Suricata 5.0 is supporting the hardware XDP to provide ypass with network card such as Netronome. It also takes advantage of pinned maps to get persistance of the bypassed flows. This talk will cover the different usage of XDP and eBPF in Suricata and shows how it impact performance and usability. If development time permit, the talk will also cover AF_XDP and the impact on this new capture method on Suricata.
Eric Leblond
Contemporary network configuration for linux - ifupdown-ngMaximilan Wilhelm
There are many different ways to configure networking on Linux. Debian and Alpine use ifupdown1, and Cumulus Networks invented ifupdown2; other distributions have various other systems, such as systemd-networkd and NetworkManager.
This talk will present ifupdown-ng, a new project by the Network Services Association intended as a drop-in replacement for ifupdown1 and ifupdown2 installations. Presently, Alpine and Debian are the primary supported environments. Support for other Linux distributions and BSD is planned.
With its modular design, ifupdown-ng intends to allow flexibility for today's modern networking setups, while being easy to extend.
ifupdown-ng is Open Source and can be found on GitHub at: https://github.com/ifupdown-ng/ifupdown-ng/
This document provides an overview of routing protocols and network security concepts. It discusses distance vector protocols like RIP, path vector protocols like BGP, and link state protocols like OSPF. It covers routing attacks such as source routing, spoofing, and man-in-the-middle attacks. It also discusses secure routing requirements and authentication methods used in protocols.
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...Maximilan Wilhelm
Linux has become a 1st class Network Citizen for many years and doesn't fall short compared to commercial solutions. It in fact is the very essence many of those are build on and is used as the foundation for nearly all cloud solutions out there.
This talk will touch on methods and features to set up Layer3 network separation and will walk through and show case
* Policy-based routing
* VRFs (with and without MPLS)
* Network Namespaces
We will compare features and options and go through a number of use cases, covering Linux as a router, VPN server, load balancer, etc.
A basic understanding of networking, routing and how the Internet works certainly help, some aha moments will be there in any way.
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
We present a new open source project which provides IPv6 networking for Linux Containers by generating programs for each individual container on the fly and then runs them as JITed BPF code in the kernel. By generating and compiling the code, the program is reduced to the minimally required feature set and then heavily optimised by the compiler as parameters become plain variables. The upcoming addition of the Express Data Plane (XDP) to the kernel will make this approach even more efficient as the programs will get invoked directly from the network driver.
This document provides an overview of network sockets in C/C++. It discusses socket types like stream and datagram sockets. It covers functions for address conversion, socket creation/binding, communication, and multiplexing. Multiplexing approaches like select, poll, epoll, and kqueue are compared for managing multiple connections. The document also discusses broadcasting, socket options, and includes references for further reading.
Best Current Operational Practices - Dos, Don’ts and lessons learnedMaximilan Wilhelm
Max und Falk versammeln knapp 42 Jahre Erfahrung in der Netzwerk- und Open-Source Praxis. In diesem Vortrag stellen sie schmerzhafte Erfahrungen vor und leiten daraus Best Practices für den Netzwerkbetrieb ab. Zusätzlich werden Best Community Practices vorgestellt und der ein oder andere Schwank aus den Anfangszeiten des Internet in Deutschland erzählt.
The document discusses using eBPF to offload Open vSwitch (OVS) flow processing. It proposes replacing the entire OVS kernel datapath with an eBPF datapath to improve extensibility and reduce dependencies on kernel versions. The eBPF datapath would handle packet parsing, flow table lookups, and action execution. Performance evaluation shows the eBPF datapath can achieve over 1 Mpps for simple actions but has room for improvement in more complex processing like parsing.
IPv6 is the successor to IPv4 and provides a vastly larger 128-bit address space. It features stateless address autoconfiguration, no need for NAT, and built-in IPsec support. The document provides details on IPv6 addressing and headers, neighbor discovery, autoconfiguration, extensions, tools, and RFCs.
This document discusses Open vSwitch and its support for stateful services like connection tracking (conntrack) and network address translation (NAT). Open vSwitch is designed to manage overlay networks and provides programmable flow tables and remote management. It aims to integrate conntrack to enable stateful firewalling and NAT functions. This will allow matching on connection states and leveraging existing Linux conntrack and NAT modules. Examples are given of how conntrack and NAT rules could be implemented using these new Open vSwitch capabilities.
(Open) MPI, Parallel Computing, Life, the Universe, and EverythingJeff Squyres
This talk is a general discussion of the current state of Open MPI, and a deep dive on two new features:
1. The flexible process affinity system (I presented many of these slides at the Madrid EuroMPI'13 conference in September 2013).
2. The MPI-3 "MPI_T" tools interface.
I originally gave this talk at Lawrence Berkeley Labs on Thursday, November 7, 2013.
This document provides an introduction to eBPF (Extended Berkeley Packet Filter), which allows running user-space code in the Linux kernel without needing to compile a kernel module. It describes how eBPF avoids unnecessary copying of packets between kernel and user-space for improved performance. Examples are given of using eBPF for networking tasks like SDN configuration, DDoS mitigation, intrusion detection, and load balancing. The document concludes by noting eBPF provides alternatives to iptables that are better suited for microservices architectures.
This document provides a cheat sheet on IPv6 addressing and protocols. It lists the fields of the IPv6 header such as version, traffic class, flow label, payload length, next header, and hop limit. It describes various types of IPv6 addresses including global unicast, multicast, anycast, IPv4-compatible, and link-local addresses. It also outlines IPv6 extension headers, ICMPv6 message types, commonly used next header values, multicast addresses, and Ethernet protocol types.
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
This document discusses Linux rumpkernel and the LKL (Linux Kernel Library). It introduces LKL as a library that allows running unmodified Linux kernel code in various configurations like application libraries and microkernels. LKL transforms a monolithic kernel code into a reusable library called liblkl by outsourcing machine-dependent code and keeping application and kernel code untouched. It provides different interfaces for applications to interact with the LKL kernel, including direct syscalls, hijacking the host library, or extending an alternative libc. Various usages of LKL are also presented, such as running a network stack in userspace (NUSE), building unikernels, and doing network simulation with ns-3 using the Linux network stack.
BPF: Next Generation of Programmable DatapathThomas Graf
This session covers lessons learned while exploring BPF to provide a programmable datapath based on BPF and discusses options for OVS to leverage the technology.
Networking Fundamentals: Transport Protocols (TCP and UDP)Andriy Berestovskyy
Transport Layer of TCP/IP. Transmission Control Protocol (TCP) basics and network sockets explained. How TCP connection get established, error recovered and terminated.
User Datagram Protocol and its comparison to TCP. Quality of Service (QoS).
Cilium - API-aware Networking and Security for Containers based on BPFThomas Graf
Cilium provides network security and visibility for microservices. It uses eBPF/XDP to provide fast and scalable networking and security controls at layers 3-7. Key features include identity-based firewalling, load balancing, and mutual TLS authentication between services. It integrates with Kubernetes to apply network policies using standard Kubernetes resources and custom CiliumNetworkPolicy resources for finer-grained control.
Es gibt viele Möglichkeiten hoch verfügbare und/oder skalierbare Dienste zu bauen, die weitläufig im Einsatz sind: DNS Round-Robin, ein Satz Loadbalancer oder Reverse-Proxies, etc. pp. An Anycast und BGP im eigenen Rechenzentrum trauen sich einige Admins und Entscheider nicht heran.
Warum es OK ist, wenn einige bis viele Server die selbe IP-Adresse haben, viele Wege nach Rom führen und wie man so ein Setup aufbaut und betreibt soll in diesem Vortrag praxisnah gezeigt werden. Wir bauen auf Basis von Debian Linux, Bird und Bind einen Cluster von Webservern und spielen ein bisschen damit herum (wenn noch genug Zeit ist).
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
In I.T. we all use all kinds of metrics. Operations teams rely heavily on these, especially when things go south. These metrics are sometimes overrated. Let’s dive into a few real life stories together.
Aurélien Rougemont
LinuxCon 2015 Linux Kernel Networking WalkthroughThomas Graf
This presentation features a walk through the Linux kernel networking stack for users and developers. It will cover insights into both, existing essential networking features and recent developments and will show how to use them properly. Our starting point is the network card driver as it feeds a packet into the stack. We will follow the packet as it traverses through various subsystems such as packet filtering, routing, protocol stacks, and the socket layer. We will pause here and there to look into concepts such as networking namespaces, segmentation offloading, TCP small queues, and low latency polling and will discuss how to configure them.
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
Suricata is a network threat detection engine using network packets capture to reconstruct the traffic till the application layer and find threats on the network using rules that define behavior to detect. This task is really CPU intensive and discarding non interesting traffic is a solution to enable a scaling of Suricata to 40gbps and other.
This talk will present the latest evolution of Suricata that knows uses eBPF and XDP to bypass traffic. Suricata 5.0 is supporting the hardware XDP to provide ypass with network card such as Netronome. It also takes advantage of pinned maps to get persistance of the bypassed flows. This talk will cover the different usage of XDP and eBPF in Suricata and shows how it impact performance and usability. If development time permit, the talk will also cover AF_XDP and the impact on this new capture method on Suricata.
Eric Leblond
Contemporary network configuration for linux - ifupdown-ngMaximilan Wilhelm
There are many different ways to configure networking on Linux. Debian and Alpine use ifupdown1, and Cumulus Networks invented ifupdown2; other distributions have various other systems, such as systemd-networkd and NetworkManager.
This talk will present ifupdown-ng, a new project by the Network Services Association intended as a drop-in replacement for ifupdown1 and ifupdown2 installations. Presently, Alpine and Debian are the primary supported environments. Support for other Linux distributions and BSD is planned.
With its modular design, ifupdown-ng intends to allow flexibility for today's modern networking setups, while being easy to extend.
ifupdown-ng is Open Source and can be found on GitHub at: https://github.com/ifupdown-ng/ifupdown-ng/
This document provides an overview of routing protocols and network security concepts. It discusses distance vector protocols like RIP, path vector protocols like BGP, and link state protocols like OSPF. It covers routing attacks such as source routing, spoofing, and man-in-the-middle attacks. It also discusses secure routing requirements and authentication methods used in protocols.
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...Maximilan Wilhelm
Linux has become a 1st class Network Citizen for many years and doesn't fall short compared to commercial solutions. It in fact is the very essence many of those are build on and is used as the foundation for nearly all cloud solutions out there.
This talk will touch on methods and features to set up Layer3 network separation and will walk through and show case
* Policy-based routing
* VRFs (with and without MPLS)
* Network Namespaces
We will compare features and options and go through a number of use cases, covering Linux as a router, VPN server, load balancer, etc.
A basic understanding of networking, routing and how the Internet works certainly help, some aha moments will be there in any way.
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
We present a new open source project which provides IPv6 networking for Linux Containers by generating programs for each individual container on the fly and then runs them as JITed BPF code in the kernel. By generating and compiling the code, the program is reduced to the minimally required feature set and then heavily optimised by the compiler as parameters become plain variables. The upcoming addition of the Express Data Plane (XDP) to the kernel will make this approach even more efficient as the programs will get invoked directly from the network driver.
This document provides an overview of network sockets in C/C++. It discusses socket types like stream and datagram sockets. It covers functions for address conversion, socket creation/binding, communication, and multiplexing. Multiplexing approaches like select, poll, epoll, and kqueue are compared for managing multiple connections. The document also discusses broadcasting, socket options, and includes references for further reading.
Best Current Operational Practices - Dos, Don’ts and lessons learnedMaximilan Wilhelm
Max und Falk versammeln knapp 42 Jahre Erfahrung in der Netzwerk- und Open-Source Praxis. In diesem Vortrag stellen sie schmerzhafte Erfahrungen vor und leiten daraus Best Practices für den Netzwerkbetrieb ab. Zusätzlich werden Best Community Practices vorgestellt und der ein oder andere Schwank aus den Anfangszeiten des Internet in Deutschland erzählt.
The document discusses using eBPF to offload Open vSwitch (OVS) flow processing. It proposes replacing the entire OVS kernel datapath with an eBPF datapath to improve extensibility and reduce dependencies on kernel versions. The eBPF datapath would handle packet parsing, flow table lookups, and action execution. Performance evaluation shows the eBPF datapath can achieve over 1 Mpps for simple actions but has room for improvement in more complex processing like parsing.
IPv6 is the successor to IPv4 and provides a vastly larger 128-bit address space. It features stateless address autoconfiguration, no need for NAT, and built-in IPsec support. The document provides details on IPv6 addressing and headers, neighbor discovery, autoconfiguration, extensions, tools, and RFCs.
This document discusses Open vSwitch and its support for stateful services like connection tracking (conntrack) and network address translation (NAT). Open vSwitch is designed to manage overlay networks and provides programmable flow tables and remote management. It aims to integrate conntrack to enable stateful firewalling and NAT functions. This will allow matching on connection states and leveraging existing Linux conntrack and NAT modules. Examples are given of how conntrack and NAT rules could be implemented using these new Open vSwitch capabilities.
(Open) MPI, Parallel Computing, Life, the Universe, and EverythingJeff Squyres
This talk is a general discussion of the current state of Open MPI, and a deep dive on two new features:
1. The flexible process affinity system (I presented many of these slides at the Madrid EuroMPI'13 conference in September 2013).
2. The MPI-3 "MPI_T" tools interface.
I originally gave this talk at Lawrence Berkeley Labs on Thursday, November 7, 2013.
This document provides an introduction to eBPF (Extended Berkeley Packet Filter), which allows running user-space code in the Linux kernel without needing to compile a kernel module. It describes how eBPF avoids unnecessary copying of packets between kernel and user-space for improved performance. Examples are given of using eBPF for networking tasks like SDN configuration, DDoS mitigation, intrusion detection, and load balancing. The document concludes by noting eBPF provides alternatives to iptables that are better suited for microservices architectures.
This document provides a cheat sheet on IPv6 addressing and protocols. It lists the fields of the IPv6 header such as version, traffic class, flow label, payload length, next header, and hop limit. It describes various types of IPv6 addresses including global unicast, multicast, anycast, IPv4-compatible, and link-local addresses. It also outlines IPv6 extension headers, ICMPv6 message types, commonly used next header values, multicast addresses, and Ethernet protocol types.
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
This document discusses Linux rumpkernel and the LKL (Linux Kernel Library). It introduces LKL as a library that allows running unmodified Linux kernel code in various configurations like application libraries and microkernels. LKL transforms a monolithic kernel code into a reusable library called liblkl by outsourcing machine-dependent code and keeping application and kernel code untouched. It provides different interfaces for applications to interact with the LKL kernel, including direct syscalls, hijacking the host library, or extending an alternative libc. Various usages of LKL are also presented, such as running a network stack in userspace (NUSE), building unikernels, and doing network simulation with ns-3 using the Linux network stack.
We all know how CPU hungry Ceph is. What if we could change our architecture using NVMeoF?
This talk explores a theoretical setup and was given originally at Ceph Day London 2019.
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...NETWAYS
The document discusses DRBD, a tool for managing high-availability storage in many-node setups. It introduces the new drbdmanage tool, which handles complexity in multi-node DRBD clusters by managing nodes, resources, volumes and distributing configurations. Drbdmanage also works with OpenStack's Cinder volume service to provide highly-available block storage. Key features of DRBD 9 include multi-node replication, auto-promotion of resources, and a transport abstraction layer enabling high-speed RDMA connectivity.
Demystifying Data Center CLOS networks provides an overview of Yahoo's data center fabric from 2012 to 2018. It discusses CLOS network topologies including leaf-spine designs and different CLOS variations used. The document details Yahoo's multidimensional folded CLOS fabric with 25G connections to servers, 100G core links, and BGP routing. It also covers scaling the fabric design to support thousands of nodes, automation of provisioning and operations, and lessons learned on stability, failures, and buffer management.
"Session ID: SFO17-102
Session Name: Deploy STM32 family on Zephyr - SFO17-102
Speaker: Erwan Gouriou
Track: LITE
★ Session Summary ★
Objects:
-Quick intro on STM32 offer
-Strategy used to minimize code and maintenance effort and break silos
-Status on supported drivers
Slides:
-STM32 families and SoCs (highlight number of refs (>900) and need for mutualization)
-SoC naming conventions
-ST boards
-STM32Cube
-Initial deployment in Zephyr
-STM32Cube introduction and introduction in Zephyr
*HAL vs LL
*Information conveyed by CMSIS files
-Driver deployment strategy
*CMSIS (generic defines)
*LL/HAL
-Simplification brought by driver init code and pinmux generated by Device tree
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/sfo17/sfo17-102/
Presentation:
Video:
---------------------------------------------------
★ Event Details ★
Linaro Connect San Francisco 2017 (SFO17)
25-29 September 2017
Hyatt Regency San Francisco Airport
---------------------------------------------------
Keyword:
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961"
The document describes the implementation of a 16-bit microprocessor core called "MIB-16" using VHDL. It discusses designing the various components of the microprocessor like the ALU, control unit, registers etc. separately in VHDL, simulating them and then implementing the entire design on an FPGA. The microprocessor can access 64KB of memory and execute instructions like addition, subtraction etc. VHDL allows for modeling digital systems at different levels of abstraction and the microprocessor design demonstrates its use for designing an entire processor.
Since the switch of the ARM Linux support from the stable PowerPC Device Tree support, it became an important piece of software used to describe all sorts of devices based on very different hardware architectures.
Currently, BSD* Unixes and even the Zephyr RTOS has switched to Device Tree to describe the hardware. U-boot has also a file format using the Device Tree blob format.
Neil will present you the history of Device Tree from its origins, how it has been used for ARM and now RISC-V from the PowerPC codebase, all the very different current usage and an overview of its future application and evolutions.
Quickly re-publish CSV/TSV files from existing repositories as FAIR Data with just a few mouse clicks!
You select the columns to "project" as Linked Data, and the associated ontology terms. The FAIR Projector Builder will create a FAIR Projector for you: a Triple Pattern Fragment server to provide the Linked Data; a published DCAT Distribution containing metadata about those triples and their source; and an RML model (syntactic and semantic of the triples, to aid in third-party discovery of this novel projection.
(current status - first prototype, not ready for public consumption)
-------
Thanks to the NBDC/DBCLS for sponsoring the hackathon series.
MDW also funded by Ministerio de Economía y Competitividad grant number TIN2014-55993-RM
Experiences building a distributed shared log on RADOS - Noah WatkinsCeph Community
This document summarizes Noah Watkins' presentation on building a distributed shared log using Ceph. The key points are:
1) Noah discusses how shared logs are challenging to scale due to the need to funnel all writes through a total ordering engine. This bottlenecks performance.
2) CORFU is introduced as a shared log design that decouples I/O from ordering by striping the log across flash devices and using a sequencer to assign positions.
3) Noah then explains how the components of CORFU can be mapped onto Ceph, using RADOS object classes, librados, and striping policies to implement the shared log without requiring custom hardware interfaces.
4) ZLog is presented
1) Design and Implementation of Multicore Processors
2) Coherence and Consistency
3) Power and Temperature
4) Interconnects
5) Multicore Caches
6) Security
7) Real world examples
This document summarizes 0xdroid, a community-developed Android distribution created by 0xlab. Key points include:
- 0xdroid is an open-source Android distribution maintained by 0xlab that also serves as a community platform for innovation.
- The goals of 0xdroid include providing a usable version quickly, designing for laziness with an easy installer, having more transparent development through issue tracking, and ensuring work can be reused through patch-based contributions.
- 0xlab contributes code to other Android projects like Android-x86 and CyanogenMod and interacts positively at the source code level to further innovation as a community.
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...Linaro
Session ID: HKG18-411
Session Name: HKG18-411 - Introduction to OpenAMP which is an open source solution for heterogeneous system orchestration and communication
Speaker: Wendy Liang
Track: IoT, Embedded
★ Session Summary ★
Introduction to OpenAMP which is an open source solution for heterogeneous system orchestration and communication
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/hkg18/hkg18-411/
Presentation: http://connect.linaro.org.s3.amazonaws.com/hkg18/presentations/hkg18-411.pdf
Video: http://connect.linaro.org.s3.amazonaws.com/hkg18/videos/hkg18-411.mp4
---------------------------------------------------
★ Event Details ★
Linaro Connect Hong Kong 2018 (HKG18)
19-23 March 2018
Regal Airport Hotel Hong Kong
---------------------------------------------------
Keyword: IoT, Embedded
'http://www.linaro.org'
'http://connect.linaro.org'
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961
Learning Erlang (from a Prolog dropout's perspective)elliando dias
This document is a presentation by Kenji Rikitake given at the 1000speakers:4 conference on 26-APR-2008 about learning Erlang from the perspective of a former Prolog programmer. It discusses why Rikitake didn't like Prolog in the 1980s, why he is now interested in Erlang, some challenges in learning Erlang, examples of IPv6 string manipulation and parallel processing he will demonstrate, results from concurrency testing using Erlang's built-in parallel map function, and conclusions about Erlang and parallel programming.
Kernel Recipes 2017 - EBPF and XDP - Eric LeblondAnne Nicolas
Berkeley Packet Filter is an old friend for most people that deal with network under Linux. But its extended version eBPF is completely redefining the scope of usage and interaction with the kernel. It can indeed be used to instrument most parts of the kernel. This goes from network tracing to process or I/O monitoring.
This talk will provide an overview of eBPF, from concept to tools like BCC. It will then focus on XDP for eXtreme Data Path and the possible applications in term of networking provided by this new framework.
Eric Leblond, Stamus Network
This document discusses the programmer's model of microprocessors using the ARM architecture as an example. It describes the key components of the programmer's model including the register file, address space, instruction set, fetch-decode-execute cycle, and levels of representation from high-level code to machine language. Specific topics covered include ARM addressing modes, instruction categories such as data processing and load/store, and an example assembly program.
Zenith Networks is a network integration services company that has been providing LAN, WAN, routing, switching, and security services for 27 years. They are a partner of Juniper Networks and are headquartered in Philadelphia, PA. The document provides information on Zenith Networks' services and certifications, as well as background on their partner Juniper Networks. It also includes steps to access education slides on OSPF routing protocols hosted on Zenith Networks' website.
Mario Molina, Datio, Software Engineer
Kafka Streams is an open source JVM library for building event streaming applications on top of Apache Kafka. Its goal is to allow programmers to create efficient, real-time, streaming applications and perform analysis and operations on the incoming data.
In this presentation we’ll cover the main features of Kafka Streams and do a live demo!
This demo will be partially on Confluent Cloud, if you haven’t already signed up, you can try Confluent Cloud for free. Get $200 every month for your first three months ($600 free usage in total) get more information and claim it here: https://cnfl.io/cloud-meetup-free
https://www.meetup.com/Mexico-Kafka/events/271972045/
Similar to Large Partially-connected Erlang Clusters (20)
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
DDS Security Version 1.2 was adopted in 2024. This revision strengthens support for long runnings systems adding new cryptographic algorithms, certificate revocation, and hardness against DoS attacks.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
What is Augmented Reality Image Trackingpavan998932
Augmented Reality (AR) Image Tracking is a technology that enables AR applications to recognize and track images in the real world, overlaying digital content onto them. This enhances the user's interaction with their environment by providing additional information and interactive elements directly tied to physical images.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Odoo ERP software
Odoo ERP software, a leading open-source software for Enterprise Resource Planning (ERP) and business management, has recently launched its latest version, Odoo 17 Community Edition. This update introduces a range of new features and enhancements designed to streamline business operations and support growth.
The Odoo Community serves as a cost-free edition within the Odoo suite of ERP systems. Tailored to accommodate the standard needs of business operations, it provides a robust platform suitable for organisations of different sizes and business sectors. Within the Odoo Community Edition, users can access a variety of essential features and services essential for managing day-to-day tasks efficiently.
This blog presents a detailed overview of the features available within the Odoo 17 Community edition, and the differences between Odoo 17 community and enterprise editions, aiming to equip you with the necessary information to make an informed decision about its suitability for your business.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
WhatsApp offers simple, reliable, and private messaging and calling services for free worldwide. With end-to-end encryption, your personal messages and calls are secure, ensuring only you and the recipient can access them. Enjoy voice and video calls to stay connected with loved ones or colleagues. Express yourself using stickers, GIFs, or by sharing moments on Status. WhatsApp Business enables global customer outreach, facilitating sales growth and relationship building through showcasing products and services. Stay connected effortlessly with group chats for planning outings with friends or staying updated on family conversations.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
2. 2/34
Background and Agenda
Big service-oriented backend infrastructure.
Infrastructure which provides API for our
gaming portals
A couple of dozen servers running about 50
services each
3. 2/34
Background and Agenda
Big service-oriented backend infrastructure.
Infrastructure which provides API for our
gaming portals
A couple of dozen servers running about 50
services each
Agenda:
Historical introduction
Technical stuff
4. 2/34
Background and Agenda
Big service-oriented backend infrastructure.
Infrastructure which provides API for our
gaming portals
A couple of dozen servers running about 50
services each
Agenda:
Historical introduction
Technical stuff
Don’t hesitate to interrupt!
18. 11/34
Situation at 1942.11.15
Dire Soviet situation:
Huge causalities
Red Army life
expectancy:
Soldier: < 1 day
Officer: < 3 days
Germans have 90%
of the city
Image source: Antill, P., Dennis, P. Stalingrad 1942
(Campaign). Osprey Publishing (June 19, 2007).
22. 12/34
Situation after 1942.11.23
Germans surrounded
by soviets
City is Germans’,
Germans’ are
Soviets’
Turning point of the
battle
6’th Army (the
surrounded one) was
destroyed.
Image source: Antill, P., Dennis, P. Stalingrad 1942
(Campaign). Osprey Publishing (June 19, 2007).
25. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
26. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
27. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
28. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
29. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
30. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
User profiles
31. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
User profiles
...
32. 14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
User profiles
...
How to connect them?
37. 17/34
Partially connected network
n : number of nodes.
Total connections = n(n−1)
2
0
2 M
4 M
6 M
8 M
10 M
12 M
14 M
0 20 40 60 80 100
Total connections, 50 nodes per machine
38. 18/34
Conclusions (for now)
It pays off to optimize the topology so
communication is more effective, e.g.:
Army
Software Defined Networking
Management
40. 19/34
Remember?
Erlang Battle
P2P communication P2P communication
Multi app groups Heterogeneous
Dynamic nodes Dynamic environment
Partially connected network Communication channels
Maintaining a distributed system is like managing a battle.
41. 19/34
Remember?
Erlang Battle
P2P communication P2P communication
Multi app groups Heterogeneous
Dynamic nodes Dynamic environment
Partially connected network Communication channels
Maintaining a distributed system is like managing a battle.
We can be generals.
42. 20/34
We need to solve this
What spapi-router pg2 gproc
P2P communication
Multi app groups
Dynamic nodes
Partially connected network
by limiting connections
x x
44. 21/34
spapi-router features in a nutshell
A library.
Creates a mesh network
Connects (hidden) nodes like configured
Abstracts destination
RPC-call a service, not a node
45. 21/34
spapi-router features in a nutshell
A library.
Creates a mesh network
Connects (hidden) nodes like configured
Abstracts destination
RPC-call a service, not a node
Mature and optimized
Used for 2,5 years in a sufficiently large SOA
46. 21/34
spapi-router features in a nutshell
A library.
Creates a mesh network
Connects (hidden) nodes like configured
Abstracts destination
RPC-call a service, not a node
Mature and optimized
Used for 2,5 years in a sufficiently large SOA
Instrumented
50. 24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
51. 24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
52. 24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
53. 24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
3. Connects to nodes
matching regexp
54. 24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
3. Connects to nodes
matching regexp
4. Checks for
applications in
nodes
55. 24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
3. Connects to nodes
matching regexp
4. Checks for
applications in
nodes
5. Connects to
relevant nodes
56. 25/34
Why instrument?
Helps understand the system is sound.
The first thing you want to instrument is the border of your
service.
Effortless instrumentation for all calls via spapi-router.
57. 26/34
callback module #1
%% New resource is detected
-callback new_resource({Service :: atom(), node()},
opts()) -> any().
%% Existing resource is lost
%% (node disconnect, shutdown, etc).
-callback lost_resource({Service :: atom(), node()},
opts()) -> any().
58. 27/34
callback module #2
-type log_spec() :: {
Service :: atom(),
Module :: atom(),
Function :: atom()
}.
%% Time instrumentation
-callback measure(log_spec(),
fun(() -> A), opts()) -> A.
%% Called on success/failure of a function call.
-callback success(log_spec(), opts()) -> term().
-callback failure(log_spec(), opts()) -> term().
68. 31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
69. 31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
Fully connected network experience (> 1K
nodes)
70. 31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
Fully connected network experience (> 1K
nodes)
everyone should try that
71. 31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
Fully connected network experience (> 1K
nodes)
everyone should try that
thanks to off-peak and 10G NIC