This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Repository files navigation

"This Project has been archived by the owner, who is no longer providing support. The project remains available to authorized users on a "read only" basis."

Zeta Build Status

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services. By migrating existing hardware gateways functionality to Zeta, a cloud provider can decouple network services expansion, maintenance, configuration, and failure domain from the data-center network. Zeta’s programming and deployment models allow rapid upgrade of network services and the introduction of new services with an optimized cost model. Although being a shared platform for multiple network services, both stateless and state-full services can scale independently.

Getting Started

Please see our getting started guide here.

Introduction

Hardware-based middleboxes are expensive, inextensible, and difficult to operate and scale in a cloud environment. a naive approach of deploying existing software-based middleboxes in virtual machines or containers to replace hardware gateways is not sufficient and results in severe problems in production systems. Existing software-based middleboxes or virtual switches (e.g., ClickOS, OVS), maintain a local shared connection state. This model is too constraining to service availability and scaling. Without maintaining a consistent connection state across several middleboxes, adding or removing a middlebox – during failure recovering or scale-out/in – results in connection loss, and worse in inconsistent packet forwarding decisions.

We propose to separate connection tracking from middlebox decisions so that we have two packet processing layers that scale and fail independently from each other. The connection tracking layer is an in-network key-value store that implements a Distributed Flow Table (DFT). Unlike a typical key-value store, the DFT embeds its transactions in the regular packet flow without the need to establish connections to the DFT nodes, buffer packets, or develop an external protocol to support the DFT operations. The DFT maintains consistent connection states across replicas and slowly scales-out according to the rate of new connections or connection closing. The second is a stateless forwarding layer that executes packet forwarding decisions for the already established connections and bounces packets for transmission. Individual nodes within the forwarding layer fail independently and scale-out rapidly according to the total packet rate of a network service. The two layers together form an extensible, elastic, and fault-tolerant distributed system of middleboxes that replaces existing hardware gateways, which we name Zeta.

At high level, we hope Zeta will be able to accomplish the following:

  1. Modular middleboxes with XDP programs that are chained to form various types of network service decisions
  2. Local shared configuration across multiple XDP programs that reduces the need for a packet to traverse multiple nodes to make a decision on a new flow
  3. Overlay protocol integrated within the data-plane to provide consistent connection state
  4. Built-in multi-tenancy that allows infrastructure sharing of network services and middleboxes without the need to isolate middleboxes in virtual machines or containers, hence improves cost
  5. Native data-plane failure detection that minimizes the time to recover a connection by means of gossip protocols

About

Zeta is a distributed platform for developing and deploying complex, elastic, and highly available multi-tenant network services.

Resources

Code of conduct

Contributing

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages