
Cisco says 90% of internet traffic goes through Erlang-controlled nodes - okket
https://twitter.com/guieevc/status/1002494428748140544
======
dingo_bat
"Controlled" is the key word here. It means the network controller is running
erlang. The actual switches and routers run C.

~~~
bostik
In core routers and switches, CPU is the slow path.

Brunt of the work is done in ASICs.

~~~
Ologn
You are correct that on core routers, the brunt of the work is done in ASICs,
and CPU is a slower path.

People should know that Cisco takes this discrete fact and then extends and
over-hypes it. The differentials between ASICs and CPU are not to the extent
that Cisco make it out to be, where it seems like CPU is not even an option at
all on most of the network. Also, Cisco has an overbroad notion of how
necessary their particular routers and switches are in your network, when in
many places in the network, off-the-shelf hardware, CPUs and software would do
fine (for much cheaper).

For the past few years, people have been developing software solutions like
quagga, BIRD, XORP and OpenBGPD/OpenOSPFD. They have seen some heavy
production use (
[http://www.openbgpd.org/users.html](http://www.openbgpd.org/users.html) ).
OpenBGPD even teased out problems in Cisco routers - some standards-compliant
packets OpenBGPD sent out would crash Cisco routers.

People appreciate the openness, the flexibility and the extensibility and the
price of these solutions.

ASICs are faster than CPU in the core of the core, but don't let that fact get
you ensnared in Cisco marketing hype and FUD. People are paying a lot of money
to Cisco on the low and medium end for equipment that could be replaced much
cheaper with off-the-shelf hardware and free and open software.

~~~
RyanZAG
It's more about forecasts and assurances. If you're financing the network that
is currently doing X traffic, but expect it to grow by quite a bit soon,
you're going to ask "is this solution going to cover everything?"

The Cisco guy is going to sure 'Sure! We can cover everything!'

The OSS off the shelf guy is going to ask 'Well that depends on the growth.'

At that point, most of the businesses just throw some money at Cisco so they
don't have to worry about anything.

~~~
dozzie
> The OSS off the shelf guy is going to ask 'Well that depends on the growth.'

Though this "depends" is a quite high bar in reality. I know a regional
internet provider that runs purely on software routers on commodity x86_64
servers. You need to be a quite large company (or operate in a very specific
domain) to ever hit this level of traffic.

~~~
dsign
The point is that the OSS off the shell guy is far inferior as a peddler than
the Cisco guy... hmm.... I need to redo that sales presentation tomorrow....

------
eb0la
It is used on the control plane.

Netconf (rfc6241) operations un most routers (not just Cisco) are handled from
an Erlang application.

Some years ago the best netconf implementation was from tail-f systems. Cisco
and Juniper licensed the software from them...

... And Cisco bought the company for the Netconf and orchestation/automation
part.

------
Maro
"1.5B people rely on Hack every day [because Facebook runs on Hack]."

[http://hacklang.org/](http://hacklang.org/)

~~~
nudpiedo
Even if I get your point, I think your comment is still an unfair
comparison:the kind of processing activity is different in both processes,
also the system and platform requirements etc also the requirements on the
data, if some Facebook page is not loading it is okay to just reload but if an
internet node collapses might have more consequences (all them are already
foreseen and have alternative paths)

~~~
jauer
It’s about the same, really, both in severity and impact to users.

Routers fall over pretty regularly if you have enough of them so you already
have things like MPLS FRR to deal with that.

Sounds like this is for netconf, which is a provisioning system. It failing is
more akin to chef crashing on a server from a cosmic ray. Kinda sucks, but you
restart it and probably no harm done.

------
zxcvhjkl
Cisco IOS, NXOS, IOS-XE and IOS-XR are C/C++.

~~~
Yizahi
I wager there are some small python/bash/perl etc. scripts in use in Cisco
firmware, tomorrow headlines - "World runs on Bash! Apocalypse is nigh!"

~~~
jwbensley
Yeah, if you drop in a Linux shell on their various platforms you can find
shell scripts dotted around. The boxes run Linux so that isn't surprising
really.

~~~
topranks
Linux runs the control plane.

The programmed routes go into hardware on the bigger systems, and either way
there is no Linux kernel routing involved at all.

~~~
jwbensley
I didn't say that Linux was involed in the forwarding plane or any routing. I
was responding to Yihazi's comment that shell scripts are likely in use
somewhere. This entire thread is in relation to the control-plane as that is
where Cisco use Erlang. Scroll up much?

Edit: If I'm not mistaken I think Linux is actually used in some platforms for
routing the out of band management interface, but not transit traffic.

------
_Codemonkeyism
100% of internet traffic goes through drivers written in C.

~~~
zxcvhjkl
Traffic doesn’t even reach the driver. It’s all ASIC.

~~~
uniformlyrandom
It does on the endpoints.

~~~
topranks
Both of these statements are 100% true.

------
maltalex
This isn’t very surprising, this is exactly the kind if stuff Erlang was
created for. It’s the right tool for this particular job.

~~~
clarus
The fact that Erlang was created for this job does not imply it is the right
tool.

~~~
lostcolony
Well, sure. The fact it was created for this job, by some really intelligent
people, who understood the domain space very well, and has proven itself over
the past 30 years, is what implies it's the right tool.

The parent's point was simply that it's not that surprising that it's
effective in this space, when it was targeting that space to begin with.

------
amaccuish
How does Go compare to Erlang these days? When would you choose one over the
other?

~~~
amelius
I believe GoLang supports efficient sharing of large data-structures between
cores of the same processor, whereas ErlangLang does not.

~~~
masklinn
> I believe GoLang supports efficient sharing of large data-structures between
> cores of the same processor, whereas ErlangLang does not.

AKA Go does shared-memory multitasking, while Erlang does shared-nothing
multitasking.

~~~
amelius
Yes, and when used in an immutable way, the GoLang approach is very powerful
and efficient, because it allows one to pass large (parts of) immutable data-
structures without copying.

~~~
jeremyjh
How do I declare an immutable data structure in Go?

~~~
jerf
An unexported value type provided through an interface is immutable. The
"context" object uses this. But it isn't really a solution for immutable value
programming.

~~~
jeremyjh
Its immutable everywhere, or just outside the package that declares it?

~~~
jerf
Outside the package that declares it, though if you have it as an interface
value you'd have to do work to penetrate it.

Since it's not like I'm trying to sell this as a solution to all immutable
data requirements, I didn't worry too much about that detail. In the end it's
all about effort, anyhow; with the right invocations in Haskell I can mutate
"immutable" data just fine. So even an interface in the package that declared
it is still nontrivial protection against accidentally mutating it.

~~~
jeremyjh
I don't think thats really true about Haskell, unless you are talking about C
code you've invoked through FFI in which case all bets are off in every
language.

Isn't it a lot simpler to just say that Go has no feature support for
immutable data? The fact that you can hide accessors in a package is small
comfort if I have to read all the source code in that package to know the
actual semantics.

------
scottLobster
So now that we've established that massive chunks of the internet run on every
significant language/platform, is everyone properly validated in their choice
of language?

------
jacksmith21006
Wow! Major kudos to Erlang. Have found it an enjoyable language to code. Well
Erlang and have been also enjoying learning Rust.

------
tambre
Meanwhile official Erlang website's certificate is invalid.

~~~
striking
It's an old certificate no longer trusted by browsers. Feel free to email them
and let them know. It's probably a better use of your time than leaving snarky
HN comments on unrelated stories.

------
keithnz
and erlangs BEAM is written in C? so... it all doesn't mean much. Though the
wording here sort of implies erlang is playing a supervisory role?

~~~
pdimitar
Everything eventually gets executed in the form of a machine code, what's your
point exactly?

Erlang / Elixir give you a ton of safety guarantees inside the VM. Something
many other languages were never bothered to offer.

------
stunt
Another pointless discussion about programming-languages. Can't believe people
still don't understand that it is not about language. It is about the product.

The only thing that powers internet is smart people. specially those that
don't spend their time on pointless discussions and instead they can focus on
analyzing the problem and finding the right tools and solution for it.

Please don't call yourself software engineer or developer if you have a
programming language bias.

~~~
jack9
What do you mean by bias here? Some languages are practical, some more/less
efficient. The BEAM was BAD in 2005. The language is ugly and this has
hindered adoption in a myriad of applicable areas for decades. Elixir was a
wrapper for people who already knew Erlang. Languages don't live in a vacuum,
they are for people and organizations (where decisions are made about non-
existent people) to use. Erlang could be done without being so horribly ugly
and with more syntactic specificity (give atoms an identifying symbol). You
have to consider the pareto distribution when thinking about design, not just
how intelligent some programmers naturally are.

~~~
cpursley
Really? I'm writing Elixir just fine coming from Ruby...

~~~
jack9
I can use it just fine too. It's not unusable, it's a barrier. The defense of
arbitrary syntax as no-consequence is misguided and ultimately irresponsible
(in a lazy sense).

------
yaleman
Given the experience I've had with Cisco's SDN nightmare in recent times, this
is not a great advertisement. :(

------
oblong
I guess something has to move packets from interface A to interface B.

~~~
jethro_tell
Ha! yeah that's done in hardware. They are talking about the controller that
sets the route tabels for the asics.

~~~
kazen44
forwarding tables to be correct.

Routing tables are in the control plane.

ASIC's really only do "layer 2" forwarding. (this is not an entirely proper
abstract, but close enough anyway.

