Forum Discussion
F5 network automation: Python vs Golang
- Aug 23, 2022
IMHO, if you are early in your career, I would caution against specialising in either language - build a working understanding of both and make sure you are at least conversant in them and every other language you can get your hands on..
Speaking to current BIG-IP products (LTM, ASM and so on), Python is an easily accessible route to automation - as xuwen says, it makes it very easy to talk to iControl REST. It's also a great language for quick & dirty pentest tools, doing analysis on datasets, knocking together quick web apps for testing or internal use etc. What it's not so great at (IMHO) is talking directly to the network stack..
Moving forward into cloud orchestration then Go can be a useful tool. It's also better (again, IMHO) at dealing with the network stack and more easily extensible if you need to put together a tool to test out very specific corner cases (like hunting for SSL stack vulnerabilities). It helps that Kubernetes is mostly Go, of course.
While I'm here, though, I'd say more important than thinking about language use is thinking about where you want to go in your career.
If you want to focus on automation (network automation, F5 automation etc) then I would lean toward Python. Make sure you have a strong understanding of bash scripting as well!
If you want to focus on security and look toward penetration testing then the deeper you want to go into this topic, the more languages you're probably going to want to be familiar with - at least until/if you pick a specialty. A lot of people are never going to be in a position to specialise in a single language, however, so get famliar with at least the big guns: C, C++, Java. Having an understanding of assembly language will also take you a long way as you get deeper into pentesting and exploit development (x86 is relatively easy to learn, ARM is coming on strong of course).
Finally.. Rust is starting to gain some significant traction, so keep your eye on that one, too!
When it comes to security, it pays to be a polyglot 🙂
The GO language seems to be strong in the automation of docker containers and k8s cloud platforms. F5's energy seems to be transferred to a multi-cloud environment, instead of the original LTM, GTM traditional concept modules, F5 automation, using go and python languages, nothing more than the main Generate an http uri request from icontrol rest and push it to the device, or parse the properties of the json data returned by the device
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com