
Skipper – An HTTP router and reverse proxy for service composition - kiyanwang
https://github.com/zalando/skipper
======
gbrayut
Neat! We use a similar Go based proxy for our tier 1 ingress and routing at
Walmart Labs (global eCommerce), with Lua/Go plugins for edge/serverless style
backends. It is a custom/proprietary codebase but the tech stack has served us
very well. Great to see open source projects with similar use cases. I may
have to play with this for use in some personal/hobby projects.

------
lxe
How does this compare to nginx or haproxy in terms of features and
performance?

~~~
sszuecs
We skipper maintainers don't want to really comment on that, because it is
very likely that if you do your own benchmarks you show only the good parts
and not the bad parts.

From our benchmarks we can outperform nginx in the pure routing case, while
nginx will outperform skipper in the pure sendfile case. HAproxy we did not
tested, but I would bet it will be not different from the nginx case. IMO: in
general use skipper as microservice router and nginx as streaming router that
serves a lot of pictures or videos.

Feature wise we have a lot of things to add as HTTP router that you want to
run in front of your microservices, please also see our docs:
[https://opensource.zalando.com/skipper/](https://opensource.zalando.com/skipper/)
Additionally we build a lot of Kubernetes integrations,for example
[https://github.com/zalando-incubator/stackset-
controller](https://github.com/zalando-incubator/stackset-controller) which
reduces boilerplate and enables you to do automated blue-green deployments and
[https://github.com/zalando-incubator/kube-metrics-
adapter](https://github.com/zalando-incubator/kube-metrics-adapter) which
enables you to do HPAs with custom metrics, for example hpa based on skipper
route request per second.

------
org3432
We tried this out a year or so ago and found that it's performance wasn't
suitable for our use cases, it would increase costs too much.

~~~
doh
Care to share some details? What's your use case? How would it negatively
impact it?

~~~
org3432
The main use case we tested with was for a data analytics pipeline to ingest
telemetry events from video games, but would have been generally used across
all our services, target was about 1m/RPS for our load test. The CoreOS ALB
controller for K8s out performed it significantly (I don't have the exact
stats now), albeit it's not as feature rich as Skipper.

~~~
doh
Got it, very helpful.

We are looking at it to do dynamic routing from our system to the Internet and
back. That means terminate the request on a client (server), route it to an
exit node where it's more appropriate (for instance to bypass GEO restriction)
and then send the response back to the origin.

We are looking at some other alternatives, like envoy + istio + gloo, but
skipper seems more contained and less container depended.

~~~
rdli
Did you check out Ambassador by any chance?

~~~
doh
I did. Its not that far from Gloo. I would like something that doesn’t require
crazy amount of tooling and does require containers

------
hjacobs
Skipper is now also part of the CNCF Cloud Native Interactive Landscape
[https://landscape.cncf.io/category=service-
proxy&grouping=ca...](https://landscape.cncf.io/category=service-
proxy&grouping=category&selected=skipper)

