10 ms·
Cisco says 90% of internet traffic goes through Erlang-controlled nodes
- damm 8y agoYeah and? that's not news. Truth though
- yaleman 8y agoGiven the experience I've had with Cisco's SDN nightmare in recent times, this is not a great advertisement. :(
- zxcvhjkl 8y agoCisco IOS, NXOS, IOS-XE and IOS-XR are C/C++.
- Yizahi 8y agoI wager there are some small python/bash/perl etc. scripts in use in Cisco firmware, tomorrow headlines - "World runs on Bash! Apocalypse is nigh!"
- paulie_a 8y agoCisco gear has enough problems regardless of programming language. They could start with not hard coding passwords. I will never trust them again.
- technion 8y agoVersions of IOS had embedded scripting available via TCL. It's likely that's the language used internally too.
- jwbensley 8y agoYeah, 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.
- deleted 8y ago[deleted]
- topranks 8y agoLinux 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 8y agoI 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.
- deleted 8y ago[deleted]
- throwme_1980 8y agowhy is this important ...
- deleted 8y ago[deleted]
- Maro 8y ago"1.5B people rely on Hack every day [because Facebook runs on Hack]." http://hacklang.org/ http://hacklang.org/
- nudpiedo 8y agoEven 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 8y agoIt’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.
- keithnz 8y agoand 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?
- qaq 8y agoIt is used for control plane same as Ericsson
- pdimitar 8y agoEverything 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.
- pejrich 8y ago> and erlangs BEAM is written in C? so... it all doesn't mean much. Huh? That's an incredibly stupid comment.
- maltalex 8y agoThis 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 8y agoThe fact that Erlang was created for this job does not imply it is the right tool.
- lostcolony 8y agoWell, 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.
- dingo_bat 8y ago"Controlled" is the key word here. It means the network controller is running erlang. The actual switches and routers run C.
- bostik 8y agoIn core routers and switches, CPU is the slow path. Brunt of the work is done in ASICs.
- walrus01 8y agoPeople who've never worked with a chassis-based router might find the distinction between control engine and the linecards/fabric hard to understand in an abstract sense. It's more readily apparent if you've taken an empty Cisco ASR9010 and started from a blank slate configuration with a new pair of RSP440 route/service processors (the control plane) and then incrementally added linecards/interfaces. Mid to large sized routers are designed in such a way that everything is either N+1 or 1+1 redundant and hot swap, it's like having a four engined airplane you can replace an engine on in mid flight.
- Ologn 8y agoYou 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.
- eb0la 8y agoIt 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.
- amaccuish 8y agoHow does Go compare to Erlang these days? When would you choose one over the other?
- qaq 8y agoNot sure where I would choose Go, but Elixir + Rust is an extremely capable combo for BEAM (Erlang VM) projects.
- Thaxll 8y agoErlang is slower, and beam is not relevant anymore with kubernetes and the like which are much more powerful and language neutral.
- brightball 8y agoI keep hearing stuff like that but it’s not even close to accurate. BEAM and Erlang give you tooling that you can’t get from any other language, regardless of how it’s deployed. Using Kubernetes doesn’t make up for any of that...it just gives you a way to deploy containers.
- Thaxll 8y agoWhat tooling please give an example.
- oblong 8y agoI guess something has to move packets from interface A to interface B.
- jethro_tell 8y agoHa! yeah that's done in hardware. They are talking about the controller that sets the route tabels for the asics.
- kazen44 8y agoforwarding 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.
- jacksmith21006 8y agoWow! Major kudos to Erlang. Have found it an enjoyable language to code. Well Erlang and have been also enjoying learning Rust.
- tambre 8y agoMeanwhile official Erlang website's certificate is invalid.
- striking 8y agoIt'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.
- stunt 8y agoAnother 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 8y agoWhat 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 8y agoReally? I'm writing Elixir just fine coming from Ruby...
- jack9 8y agoI 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).
- stunt 8y agoJack, my comment was not against Erlang or Elixir, but SOME of these comments here. People start comparing different languages in different areas and use cases and instead of discussing about the main subject, keep saying oh no my language is more popular or that language is written in C so C is the best...
- _Codemonkeyism 8y ago100% of internet traffic goes through drivers written in C.
- pjmlp 8y agoTraffic going through mainframes or Apple devices surely isn't through drivers written in C. Mainframes, because they have saner systems programming languages than C. Apple devices, because part of the network stack requires their Embedded C++ dialect.
- skissane 8y ago> Mainframes, because they have saner systems programming languages than C. Are you claiming that PL/X is saner than C? What is your reasoning?
- pjmlp 8y agoLess UB, bounds checking, proper strings and arrays? The PL/8 papers related to IBM's RISC research are quite interesting, before they decided to go with UNIX on RISC instead, as the best way to recover their money, thus switching to C. Also not all mainframes were written in PL/X variants, there is also NEWP, which already had the notion of unsafe blocks in the late 60's.
- skissane 8y agoPL/X and PL.8 may have various technical advantages over other languages, but it is hard to judge given IBM's long-standing refusal (going back decades) to publicly release compilers and other tools for them. From a software engineering viewpoint, developing your software in proprietary/in-house/unreleased programming languages – much of z/OS is written in PL/X, while some of the firmware/millicode is in PL.8 – seems to me a rather bizarre decision – not to mention other secret dialects of PL/I IBM has cooked up over the years, such as the PL/MP and PL/MI that were used on the AS/400s, and PL/DS on the IBM 8100. Why not release the languages, try to build some sort of community around them – wouldn't that be good for their long-term health, and the long-term health of the platforms written in them? (Probably it is way too late for this, but if IBM had been willing to publicly release PL/S tools back in the 1970s, or at least not use their lawyers to stop others from independently doing that, PL/S and its descendants could have become much more significant systems programming languages.)
- scottLobster 8y agoSo 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?