HB Case Study

Overview

HB Case Study

Envoy Logo

Envoy Proxy

  • It is a modern Layer7(App) and Layer3(TCP) proxy
  • Incredibly modernized version of reverse proxies like NGINX, HAProxy
  • It is used in many projects: Istio service mash, API gateway products, etc.
  • Interesting part: Programming via API instead of file (xDS protocol)
  • Developed by Matt Klein at Lyft
  • Donated to CNCF(Kubernetes, gRPC, etc.) It graduated from there.
  • Those who integrate Envoy into their infrastructure: Google, AWS, etc.
  • It has support for Wire protocols(Redis, Memcached, MySQL, MongoDB, etc.)
  • RPC level LB instead of connection-level LB

Telemetry/Observability Properties

  • Metrics(L7 HTTP metrics)
    • Request count
    • Latency
    • Error rate
    • Status code
    • Bytes received/sent
    • Envoy's own metrics(CPU/Memory, TCP connection, Bytes, Bandwidth, QPS)
  • Distributed Tracing
    • A monitoring method that shows how long the RPCs between microservices keep and where they go.
    • Add TRACING HEADER if missing in incoming requests
    • Upload TRACEs to a certain location for requests coming to the server
      • Request In TRACE ID, start, end(Response)

Architecture

Architecture

API Reference

Get service

  GET /service/${id}
Parameter Type Description
id string Required. Id of item to fetch

Example Response

{
  "hostname": "fc4a73df5ae8",
  "ip": "172.20.0.5",
  "serviceid": "1",
  "success": true,
  "time": "2021-10-22 18:05:12"
}

Jenkins

CI/CD - Jenkins

The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

GitHub Webhook

Jenkins

Jenkins trigger pipeline(Jenkinsfile):

pipeline {
    agent any
    stages {
        stage('build') {
            steps {
                sh "docker-compose build --pull"
            }
        }
        stage('deploy') {
            steps {
                sh "docker-compose up -d"
                sh "docker-compose scale service1=3 service2=3"
            }
        }
    }
}

Pipeline Dashboard

Jenkins

Console Output

Jenkins

Start all of our containers

docker-compose build --pull
docker-compose up -d
docker-compose scale service1=3 service2=3

Remove all containers & images

docker rm -vf $(docker ps -a -q)
docker rmi -f $(docker images -a -q)

References

🔗 Links

portfolio linkedin

Author

Owner
Ilker Ispir
I'm a software engineer with 2 years of software development experience in scalable architecture, microservices, user interfaces and cloud infrastructure.
Ilker Ispir
Self-hosted, easily-deployable monitoring and alerts service - like a lightweight PagerDuty

Cabot Maintainers wanted Cabot is stable and used by hundreds of companies and individuals in production, but it is not actively maintained. We would

Arachnys 5.4k Dec 23, 2022
Ganeti is a virtual machine cluster management tool built on top of existing virtualization technologies such as Xen or KVM and other open source software.

Ganeti 3.0 =========== For installation instructions, read the INSTALL and the doc/install.rst files. For a brief introduction, read the ganeti(7) m

395 Jan 04, 2023
DataOps framework for Machine Learning projects.

Noronha DataOps Noronha is a Python framework designed to help you orchestrate and manage ML projects life-cycle. It hosts Machine Learning models ins

52 Oct 30, 2022
A system for managing CI data for Mozilla projects

Treeherder Description Treeherder is a reporting dashboard for Mozilla checkins. It allows users to see the results of automatic builds and their resp

Mozilla 235 Dec 22, 2022
Ansible Collection: A collection of Ansible Modules and Lookup Plugins (MLP) from Linuxfabrik.

ansible_mlp An Ansible collection of Ansible Modules and Lookup Plugins (MLP) from Linuxfabrik. Ansible Bitwarden Item Lookup Plugin Returns a passwor

Linuxfabrik 2 Feb 07, 2022
This is a tool to develop, build and test PHP extensions in Docker containers.

Develop, Build and Test PHP Extensions This is a tool to develop, build and test PHP extensions in Docker containers. Installation Clone this reposito

Suora GmbH 10 Oct 22, 2022
Project 4 Cloud DevOps Nanodegree

Project Overview In this project, you will apply the skills you have acquired in this course to operationalize a Machine Learning Microservice API. Yo

1 Nov 21, 2021
Prometheus exporter for AWS Simple Queue Service (SQS)

Prometheus SQS Exporter Prometheus exporter for AWS Simple Queue Service (SQS) Metrics Metric Description ApproximateNumberOfMessages Returns the appr

Gabriel M. Dutra 0 Jan 31, 2022
CTF infrastructure deployment automation tool.

CTF infrastructure deployment automation tool. Focus on the challenges. Mirrored from

Fake News 1 Apr 12, 2022
Wubes is like Qubes but for Windows.

Qubes containerization on Windows. The idea is to leverage the Windows Sandbox technology to spawn applications in isolation.

NCC Group Plc 124 Dec 16, 2022
Get Response Of Container Deployment Kube with python

get-response-of-container-deployment-kube 概要 get-response-of-container-deployment-kube は、例えばエッジコンピューティング環境のコンテナデプロイメントシステムにおいて、デプロイ元の端末がデプロイ先のコンテナデプロイ

Latona, Inc. 3 Nov 05, 2021
CDK Template of Table Definition AWS Lambda for RDB

CDK Template of Table Definition AWS Lambda for RDB Overview This sample deploys Amazon Aurora of PostgreSQL or MySQL with AWS Lambda that can define

AWS Samples 5 May 16, 2022
HXVM - Check Host compatibility with the Virtual Machines

HXVM - Check Host compatibility with the Virtual Machines. Features | Installation | Usage Features Takes input from user to compare how many VMs they

Aman Srivastava 4 Oct 15, 2022
Oncall is a calendar tool designed for scheduling and managing on-call shifts. It can be used as source of dynamic ownership info for paging systems like http://iris.claims.

Oncall See admin docs for information on how to run and manage Oncall. Development setup Prerequisites Debian/Ubuntu - sudo apt-get install libsasl2-d

LinkedIn 928 Dec 22, 2022
Webinar oficial Zabbix Brasil. Uma série de 4 aulas sobre API do Zabbix.

Repositório de scripts do Webinar de API do Zabbix Webinar oficial Zabbix Brasil. Uma série de 4 aulas sobre API do Zabbix. Nossos encontros [x] 04/11

Robert Silva 7 Mar 31, 2022
HB Case Study

HB Case Study Envoy Proxy It is a modern Layer7(App) and Layer3(TCP) proxy Incredibly modernized version of reverse proxies like NGINX, HAProxy It is

Ilker Ispir 1 Oct 22, 2021
GitGoat enables DevOps and Engineering teams to test security products intending to integrate with GitHub

GitGoat is an open source tool that was built to enable DevOps and Engineering teams to design and implement a sustainable misconfiguration prevention strategy. It can be used to test with products w

Arnica 149 Dec 22, 2022
NixOps is a tool for deploying to NixOS machines in a network or cloud.

NixOps NixOps is a tool for deploying to NixOS machines in a network or the cloud. Key features include: Declarative: NixOps determines and carries ou

Nix/Nixpkgs/NixOS 1.2k Jan 02, 2023
Docker Container wallstreetbets-sentiment-analysis

Docker Container wallstreetbets-sentiment-analysis A docker container using restful endpoints exposed on port 5000 "/analyze" to gather sentiment anal

145 Nov 22, 2022
This project shows how to serve an TF based image classification model as a web service with TFServing, Docker, and Kubernetes(GKE).

Deploying ML models with CPU based TFServing, Docker, and Kubernetes By: Chansung Park and Sayak Paul This project shows how to serve a TensorFlow ima

Chansung Park 104 Dec 28, 2022