Cloud-native stories roundup 2023.4
Container
Kubernetes operations powered by AI, e.g. supported backend has OpenAI ChatGPT (need your openai API key), which is used to generate natural language explanations for Kubernetes issues.
wireshark (Linux, Windows, macOS, GUI), tcpdump (Linux, CLI), NetworkMiner (network forensic analysis tool, GUI), Kismet (packet sniffing, Windows and Linux), SolarWinds Network Monitoring Tool (multi-layered tool, bandwidth analysis, NetFlow, sFlow, NetStream, JFlow and IPFIX analyzer, GUI), ManageEngine NetFlow Analyzer (traffic analysis, Windows and Linux), Colasoft Capsa (packet sniffing, Windows, GUI), EtherApe (network sniffing analysis, Linux, GUI), Fiddler (HTTP and HTTPS traffic sniffing, GUI), Wifi Explorer (wireless network packet analysis, macOS, GUI)
K6 follows Load Testing Manifesto:
- Simple testing is better than no testing
- Load testing should be goal oriented
- Load testing by developers
- Developer experience is super important
- Load test in a pre-production environment
use cases include load testing, browser testing, chaos testing, performance monitoring
Script is to test HTTP endpoints, k6 test yaml file is to specify which script (in configmap) to run and parallelism
Robusta is both an automations engine for Kubernetes, and a multi-cluster observability platform. With Robusta integration, it is to get hint about crashing Pods, event correlation, remediate alerts and debug pods.
Robusta is integrated with Slack and K8s cluster, and can use ChatGPT for natural language guidance on K8S troubleshooting.
DevSecOps
DevSecOps tool landscape
terraform
pulumi
helm.sh
crossplane
Application management Kubernetes operators
knative.dev
crossplane.io
https://github.com/metacontroller/metacontroller
Google cloud run
Azure container run
AWS Lightsail
AWS Lambda containers
App App Runner
Development Environment
gitpod.io
Github Codespaces
okteto.com
devspace.sh
tilt.dev
Pipelines (CI/CD)
tekton.dev
Argo workflows
Jenkins
Github actions
GitOps
Flux
Argo CD
Rancher fleet
Policy management
OPA/Gatekeeper
Kyverno
datree.io
Monitoring
VictoriaMetrics
Advantage: VictoriaMetrics seems to take Prometheus Stack and break it into micro-services architecture using stronger and better new components. It has high availability built-in, as well as superior performance & data compression. Can run on spot nodes to save cost. Some eye-catching comparison with other Prometheus stack mentioned;
- It uses 10x less RAM than InfluxDB and up to 7x less RAM than Prometheus, Thanos or Cortex when dealing with millions of unique time series (aka high cardinality).
- It provides high data compression, so up to 70x more data points may be crammed into limited storage compared to TimescaleDB and up to 7x less storage space is required compared to Prometheus, Thanos, or Cortex.
- It implements PromQL-based query language — MetricsQL, which provides improved functionality on top of PromQL.
While manual instrumentation is good, modifying non-instrumented code takes quite a lot of effort. Opentelemetry auto instrumentation for Java and Python
environment:
- OTEL_TRACES_EXPORTER=otlp
- OTEL_SERVICE_NAME=server
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel:4317
Use opentelemetry-instrument to start Python application
RUN opentelemetry-bootstrap --action=install
CMD opentelemetry-instrument \
python \
server.py