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
Find-Xss - Termux Kurulum Dosyası Eklendi Eğer Hata Alıyorsanız Lütfen Resmini Çekip İnstagramdan Bildiriniz

FindXss Waf Bypass Eklendi !!! PRODUCER: Saep UPDATER: Aser-Vant Download: git c

Aser 2 Apr 17, 2022
A charmed operator for running PGbouncer on kubernetes.

operator-template Description TODO: Describe your charm in a few paragraphs of Markdown Usage TODO: Provide high-level usage, such as required config

Canonical 1 Dec 01, 2022
A job launching library for docker, EC2, GCP, etc.

doodad A library for packaging dependencies and launching scripts (with a focus on python) on different platforms using Docker. Currently supported pl

Justin Fu 55 Aug 27, 2022
Emissary - open source Kubernetes-native API gateway for microservices built on the Envoy Proxy

Emissary-ingress Emissary-Ingress is an open-source Kubernetes-native API Gateway + Layer 7 load balancer + Kubernetes Ingress built on Envoy Proxy. E

Emissary Ingress 4k Dec 31, 2022
Autoscaling volumes for Kubernetes (with the help of Prometheus)

Kubernetes Volume Autoscaler (with Prometheus) This repository contains a service that automatically increases the size of a Persistent Volume Claim i

DevOps Nirvana 142 Dec 28, 2022
Simple, Pythonic remote execution and deployment.

Welcome to Fabric! Fabric is a high level Python (2.7, 3.4+) library designed to execute shell commands remotely over SSH, yielding useful Python obje

Fabric 13.8k Jan 06, 2023
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
Run Oracle on Kubernetes with El Carro

El Carro is a new project that offers a way to run Oracle databases in Kubernetes as a portable, open source, community driven, no vendor lock-in container orchestration system. El Carro provides a p

Google Cloud Platform 205 Dec 30, 2022
Python IMDB Docker - A docker tutorial to containerize a python script.

Python_IMDB_Docker A docker tutorial to containerize a python script. Build the docker in the current directory: docker build -t python-imdb . Run the

Sarthak Babbar 1 Dec 30, 2021
Travis CI testing a Dockerfile based on Palantir's remix of Apache Cassandra, testing IaC, and testing integration health of Debian

Testing Palantir's remix of Apache Cassandra with Snyk & Travis CI This repository is to show Travis CI testing a Dockerfile based on Palantir's remix

Montana Mendy 1 Dec 20, 2021
Learning and experimenting with Kubernetes

Kubernetes Experiments This repository contains code that I'm using to learn and experiment with Kubernetes. 1. Environment setup minikube kubectl doc

Richard To 10 Dec 02, 2022
This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase.

COA DevOps Training UseCase This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase. Demo environme

Cosmin Tudor 1 Jan 28, 2022
Tencent Yun tools with python

Tencent_Yun_tools 使用 python3.9 + 腾讯云 AccessKey 利用工具 使用之前请先填写config.ini配置文件 Usage python3 Tencent_rce.py -h Scanner python3 Tencent_rce.py -s 生成CSV

<img src="> 13 Dec 20, 2022
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:

Latest Salt Documentation Open an issue (bug report, feature request, etc.) Salt is the world’s fastest, most intelligent and scalable automation engi

SaltStack 12.9k Jan 04, 2023
Nagios status monitor for your desktop.

Nagstamon Nagstamon is a status monitor for the desktop. It connects to multiple Nagios, Icinga, Opsview, Centreon, Op5 Monitor/Ninja, Checkmk Multisi

Henri Wahl 361 Jan 05, 2023
A cron monitoring tool written in Python & Django

Healthchecks Healthchecks is a cron job monitoring service. It listens for HTTP requests and email messages ("pings") from your cron jobs and schedule

Healthchecks 5.8k Jan 02, 2023
DAMPP (gui) is a Python based program to run simple webservers using MySQL, Php, Apache and PhpMyAdmin inside of Docker containers.

DAMPP (gui) is a Python based program to run simple webservers using MySQL, Php, Apache and PhpMyAdmin inside of Docker containers.

Sehan Weerasekara 1 Feb 19, 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
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