Go (Golang) vs Python Performance Benchmark (Kubernetes - OpenTelemetry - Prometheus - S3/Postgres)

Поделиться
HTML-код
  • Опубликовано: 1 окт 2024

Комментарии • 83

  • @AntonPutra
    @AntonPutra  11 месяцев назад +7

    🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com

    • @MDFireX5
      @MDFireX5 10 дней назад

      Антон, тест говно, какой фласк, где и как ты подумал, что он топ 1 ? фаст апи

  • @099watcher
    @099watcher Месяц назад +5

    Really like your content!
    For suggestion in python's ecosystem django is the most dominant backend framework,
    I know It will get beaten by node, java and golang in performance but still we would love to see how slow it is compared to other languages.
    Tip: In django most of the people use DRF (Django Rest Framwork) for building REST APIs so combining django with DRF makes sense when doing benchmark.

    • @AntonPutra
      @AntonPutra  Месяц назад +2

      thanks for the tip. yeah, django is very popular.

  • @GabrielPozo
    @GabrielPozo 11 месяцев назад +13

    Your benchmark videos are always the best and most complete!

    • @AntonPutra
      @AntonPutra  11 месяцев назад +2

      Thanks, Gabriel! Any suggestions for the next benchmark?

    • @GabrielPozo
      @GabrielPozo 11 месяцев назад +1

      @@AntonPutra Now, I don't have anything in mind, but I will think of something.

    • @PikaChu-fz4ij
      @PikaChu-fz4ij 10 месяцев назад

      @@AntonPutra Really want python-sanic vs golang and node.js

  • @marknefedov
    @marknefedov 10 месяцев назад +2

    Hi, I love your videos! Would you consider making a video about GitOps strategies and best practices in a closed, bare metal environment (without using a cloud solution like GitHub)? Specifically, how do you host your infrastructure Git repo? Do you create a separate non-GitOps cluster to deploy HA-Git and CI/CD? Do you deploy Git to a plain VM? Or do you go through the "chicken and egg problem" and deploy Git and CI/CD into the same cluster that you manage with GitOps tools like Flux or Argo?

  • @funkindy
    @funkindy 10 месяцев назад +4

    In real world scenario add network roundtrip latency and the overall latency difference would dissappear, i guess

    • @AntonPutra
      @AntonPutra  10 месяцев назад +2

      But it would applied to both languages, interesting question if golang handle network requests better

    • @funkindy
      @funkindy 10 месяцев назад +2

      @@AntonPutra sure, add constant like 50-150ms for both languages and the difference would almost disappear. But CPU/MEM difference would not, for sure)

  • @duke007x3
    @duke007x3 10 месяцев назад +2

    Hello Anton, thanks for the video, great as always.
    If you have time and possibility can you please make videos a little bit longer with deeper explanations for such noobs like me?))
    Do you plan any videos on such topics as jenkins, ansible?
    Anyway thanks, you are doing great job.

  • @lohithvenkatesh4831
    @lohithvenkatesh4831 11 дней назад +1

    Can you compare gin vs Robyn the new python framework?

  • @nitishmalang4844
    @nitishmalang4844 11 месяцев назад +3

    awesome anton liked this quality content found rarely on internet
    thanks for this 😇

  • @RABWA333
    @RABWA333 11 месяцев назад +3

    that is really great , hope to see the same for Nodejs (express) with postgress or DBmongo db

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      Thanks, Ghubein! Will do at some point.

  • @tHe0nLyNeXuS
    @tHe0nLyNeXuS 11 месяцев назад +1

    I wonder how FastAPI would perform, compared to Flask. I am assuming that since it supports asynchronous processing of requests, contrary to Flask (ASGI vs WSGI), it should overall reduce latency.

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      Ok, I've just added it to my list.

  • @floriankapfenberger
    @floriankapfenberger 11 месяцев назад +2

    Great video Anton! I would be interested in an Elixir/Phoenix Benchmark if you be able to do that :)

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      Thanks Florian, I've just added it to my list.

    • @floriankapfenberger
      @floriankapfenberger 11 месяцев назад

      @@AntonPutra Awesome!

  • @valerikehayov2393
    @valerikehayov2393 11 месяцев назад +1

    Thanks Anton, amazing as always.
    I can see you are using Grfana stacks for these statistics and reports, what about Elastic stack do you think Grafana stack is better?
    Could you please compare both solutions: Elastic stack with metric beat and Opentelemetry Elasticsearch exporter and Grafana with tempo?

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      Grafana was one of the first to support Prometheus as a data source. For ELK, you need to use Elastic to store metrics, and the pipeline would be somewhat different and more complex, but, I will definitely create a comparison video at some point.

    • @valerikehayov2393
      @valerikehayov2393 11 месяцев назад

      @@AntonPutra Yep, completely agree. It’s kind a common use case to use Elastic or Opensearch in many companies, so I was wondering why.
      Thanks for the reply, awesome as always!

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      @@valerikehayov2393 initially it was only for logs, but ELK trying to create universal solution for metrics/traces/logs but it's expensive. Try out loki, it indexes only labels and much cheaper to host

    • @valerikehayov2393
      @valerikehayov2393 11 месяцев назад

      @@AntonPutra yes I will try it.

  • @RomaDeveloper
    @RomaDeveloper 11 месяцев назад

    I made the first video about my project in python, i will be happy to get your feedback ❤

  • @АртемШестаков-д9в
    @АртемШестаков-д9в 9 месяцев назад +1

    Please test FastApi framework with Go

  • @malikt7z
    @malikt7z Месяц назад +1

    Great Video 👍🏻

  • @horseinthesky
    @horseinthesky 11 месяцев назад +1

    Thank you for an amazing content.
    Could you one day make a tutorial about how to set up multiple node k8s cluster locally: ESXi or lxd if possible.
    It would help to learn k8s without AWS stuff so much.

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Thanks, Kirill! Well why not minikube? Just run "minikube start --nodes 2" or set to any number of nodes

    • @horseinthesky
      @horseinthesky 11 месяцев назад

      @@AntonPutra That is a good starting point to begin the journey but these nodes would be docker containers on the same host/VM. I consider building a k8s cluster manually on different nodes (physical hosts/VMs) to play with it.

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      @@horseinthesky got it, will do at some point (by the way you can use virtualbox as a driver and those nodes will be vms)

    • @horseinthesky
      @horseinthesky 11 месяцев назад

      @@AntonPutra Thank you!
      You used ESXi in this video and since I have a dedicated ESXi host where I build virtual network topologies and practice my programming skills I thought it would be great to have a small k8s lab there too to (you know) some kind of versatile IT experience =)

    • @AntonPutra
      @AntonPutra  11 месяцев назад +2

      @@horseinthesky take a look, I'll create a tutorial soon
      ## Control Plane
      ### Preparing the hosts
      sudo apt update && sudo apt -y upgrade
      sudo sed -i 's/ubuntu/control-plane-00/' /etc/hostname
      sudo sed -i 's/ubuntu/control-plane-00/' /etc/hosts
      sudo reboot
      sudo apt update && sudo apt -y upgrade
      sudo sed -i 's/ubuntu/node-00/' /etc/hostname
      sudo sed -i 's/ubuntu/node-00/' /etc/hosts
      sudo reboot
      sudo apt update && sudo apt -y upgrade
      sudo sed -i 's/ubuntu/node-01/' /etc/hostname
      sudo sed -i 's/ubuntu/node-01/' /etc/hosts
      sudo reboot
      sudo apt update && sudo apt -y upgrade
      sudo sed -i 's/ubuntu/node-02/' /etc/hostname
      sudo sed -i 's/ubuntu/node-02/' /etc/hosts
      sudo reboot
      sudo apt update && sudo apt -y upgrade
      sudo sed -i 's/ubuntu/node-03/' /etc/hostname
      sudo sed -i 's/ubuntu/node-03/' /etc/hosts
      sudo reboot
      sudo apt update && sudo apt -y upgrade
      sudo sed -i 's/ubuntu/node-04/' /etc/hostname
      sudo sed -i 's/ubuntu/node-04/' /etc/hosts
      sudo reboot
      sudo apt update && sudo apt -y upgrade
      sudo sed -i 's/ubuntu/node-05/' /etc/hostname
      sudo sed -i 's/ubuntu/node-05/' /etc/hosts
      sudo reboot
      ### Disable swap
      sudo swapoff -a
      sudo sed -i 's/\/swap.img/#\/swap.img/' /etc/fstab
      free -h
      ### Installing a container runtime (containerd)
      curl -L github.com/containerd/containerd/releases/download/v1.7.3/containerd-1.7.3-linux-amd64.tar.gz -o containerd-1.7.3-linux-amd64.tar.gz
      sudo tar Cxzvf /usr/local containerd-1.7.3-linux-amd64.tar.gz
      sudo curl -L raw.githubusercontent.com/containerd/containerd/main/containerd.service -o /lib/systemd/system/containerd.service
      sudo systemctl daemon-reload
      sudo systemctl enable --now containerd
      #### Installing runc
      curl -L github.com/opencontainers/runc/releases/download/v1.1.8/runc.amd64 -o runc.amd64
      sudo install -m 755 runc.amd64 /usr/local/sbin/runc
      #### Installing CNI plugins
      curl -L github.com/containernetworking/plugins/releases/download/v1.3.0/cni-plugins-linux-amd64-v1.3.0.tgz -o cni-plugins-linux-amd64-v1.3.0.tgz
      sudo mkdir -p /opt/cni/bin
      sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.3.0.tgz
      sudo mkdir /etc/containerd/
      sudo sh -c 'containerd config default > /etc/containerd/config.toml'
      sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
      sudo systemctl restart containerd
      stat -fc %T /sys/fs/cgroup/
      ### Install and configure prerequisites
      cat

  • @lipin007
    @lipin007 Месяц назад +1

    Kindly consider benchmarking ruby on rails vs go gin!

    • @AntonPutra
      @AntonPutra  Месяц назад +1

      ah ruby on rails, it's been a while❤️
      yes will do

    • @lipin007
      @lipin007 Месяц назад

      @@AntonPutra Thank you!

  • @LukaLočičnik-v2k
    @LukaLočičnik-v2k 11 месяцев назад +2

    Great video! Can you do .NET vs Go next?

    • @az6876
      @az6876 11 месяцев назад +2

      I agree. But, if possible, with version 8 using AOT compilation.

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Thanks Luka, I've just added it to my list.

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      ok, I'll check

  • @DataPastor
    @DataPastor 5 месяцев назад

    Could you please make a similar benchmark with FastAPI+asyncpg+gunicorn on the Python side?

    • @AntonPutra
      @AntonPutra  5 месяцев назад +1

      sure, added to my list

  • @uday4717
    @uday4717 День назад

    Can you do the same thing for fastapi

    • @AntonPutra
      @AntonPutra  14 часов назад

      yes i'll do more python soon

  • @yuksgas
    @yuksgas 11 месяцев назад

    Please benchmark rust actix vs cpp drogon 😬

  • @pietraderdetective8953
    @pietraderdetective8953 8 месяцев назад

    Do the performance benchmark for Quart please! It's the async version for Flask so you can use your Flask code and modify it a lil bit.
    Plenty of Flask extensions are working in Quart too!
    Cheers!

    • @AntonPutra
      @AntonPutra  8 месяцев назад

      thanks for the feedback, i'll see what i can do

  • @CsAlchemy-eg6ch
    @CsAlchemy-eg6ch 6 месяцев назад +1

    Very great content , thanks

  • @Antonio-ib6ii
    @Antonio-ib6ii 11 месяцев назад +1

    Very interesting video. Thank

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Thanks, Antonio! Any suggestions for the next benchmark?

  • @aimericsorindev253
    @aimericsorindev253 5 месяцев назад

    I just discovered your channel, really great content ! What tools do you use to make your diagrams ?

    • @AntonPutra
      @AntonPutra  5 месяцев назад +1

      thanks, i use adobe suite

  • @denisgr1
    @denisgr1 10 месяцев назад

    спасибо, ваши видео помогают мне правильно стартовать и развиваться в новых технологиях, выкладывайте еще!

  • @kittipongpiyawanno315
    @kittipongpiyawanno315 2 месяца назад

    It surprises me a little bit that both have more or less equivalent request rate. I expect more from Go.

    • @AntonPutra
      @AntonPutra  2 месяца назад

      maybe not the fastest framework

  • @kamurashev
    @kamurashev 11 месяцев назад +1

    Great 👍

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Thanks, Kyrylo! Any suggestions for the next benchmark?

  • @mariusmuller4340
    @mariusmuller4340 11 месяцев назад

    Nice video, what tool do you use to make your graphics like minute 1:50?

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Thanks! Adobe Suite

  • @sombiri9147
    @sombiri9147 11 месяцев назад +1

    This is good

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Thanks, Sombiri! Any suggestions for the next benchmark?

  • @VitaliiAkhmetzianov
    @VitaliiAkhmetzianov 10 месяцев назад

    Yo man you are super

  • @ievgenmajor3301
    @ievgenmajor3301 11 месяцев назад +1

    great content!

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      Thanks, Ievgen! Any suggestions for the next benchmark?

  • @yunyang6267
    @yunyang6267 11 месяцев назад

    make a firebase vs supabase benchmark

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Ok, added to my list

  • @clintonndi1308
    @clintonndi1308 11 месяцев назад

    You got courses on udemy or something? Thanks

    • @AntonPutra
      @AntonPutra  11 месяцев назад +1

      Not yet, still a full time employee...

    • @clintonndi1308
      @clintonndi1308 11 месяцев назад

      @@AntonPutra It will make sense if you put up a course on Linux/system engineering or DevOps. Think about it. Thanks

  • @Antonio-yy2ec
    @Antonio-yy2ec 11 месяцев назад

    Thanks Anton!!!

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Thanks, Antonio! Any suggestions for the next benchmark?

  • @alberkhan
    @alberkhan 11 месяцев назад +1

    Boss please do golang vs php swoole

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Ok, I've just added it to my list.