Network Engineer should Learn Python
Suppose you are a Network Administrator or Engineer in a company which has 20 - 30 Network devices like Cisco , Juniper or some other vendors devices. How would you manage these Devices ? Yes you do Telnet or SSH to these devices and do your configuration etc. This is a happy happy situation.
Now lets consider second scenario. Suppose you are handling multi-site company with different offices which are distributed geographically across country and world too. You have to manage around 1000 different network devices spread around different locations. One day your boss come to you and ask you to change or add new NTP server to these network devices. Aaahhh... Yes he actually means to these 1000 devices!!! Now what will be your first reaction ? How it is possible to Login to each network device and enter the NTP command ? Yes it is possible to just grab your chair and SSH to each and every device manually and put NTP command. What an idiotic and boring thing is this ? Just to enter one command over and over again to different devices, you have to sit all day long.
Here comes the roll of Programming skills which proves to be real life savior in such scenarios. You just have to make one program which automatically login to every device and put NTP command. Seriously Dude you just have to make one program instead of doing this boring task yourself for one complete day. And yes this program can be use to enter any number of commands to any number of devices. This is like you made it once and use forever.
OK. I think now you know what is the roll of programming skills in Networking. But second question which comes to your mind is that which programming language is best to learn for this. Today, there are hundreds of programming languages. Each language can do anything which other language can do using different syntax or logic. But Programming language are use to solve specific problem and they should be efficient in solving that same kind of problems.
There are Programming language which are popular and efficient for WEB Applications or website like you have heard of ASP , PHP , HTML etc. Some programming languages that are used to make desktop applications are C# , JAVA etc. Some are used in embedded systems or Chips etc like C or C++. Some programming language are used for scripting like Perl , BASH or PYTHON. Let me remind you once again that "Each language can do anything which other language can do using different syntax or logic. But Programming language are use to solve specific problem and they should be efficient in solving that same kind of problems".
Now Why to learn Python ?
I know most of the Network engineers do not have any or very less knowledge of programming languages. But Python can be your first programming language to learn. You can learn any language for networking but Python is best suited for Network engineer. Why ? Reasons are below :
- Python Learning curve is less. You can learn it easily.
- It is scripting language and can be very efficient to work with Network devices.
- Yes it is Free.
- Very large Community support which are behind Python development.
- You may get ready made plugins which can be use with your Python program.
- It can be run on Windows , Linux , Android , Mac or virtually any OS.
- Python Code is easy to read and it is very human friendly to read.
- Some Network Vendor devices come with built-in Python language Juniper, Cisco Nexus 9000 etc.
- Many many more.....
That's why Python can be used to manage all your Network devices whether they are less in numbers or in 1000 of numbers. Python can be used to automatically Login to your device via SSH or Telnet and run desired script or in network engineer language - Commands.
End Note: Friends You can google and find lots and lots of resources to learn Python. In near future I will post more regarding Python and how to use it to manage our Network Devices. Till than Enjoy. :)
Very nicely explained. Thanks for sharing the article Sam.
ReplyDeleteGood one ,,,,,,,,,, waiting for your Article
ReplyDeleteThanks for sharing about python
ReplyDeleteThanks for comment...!! Soon I will post one...!!
ReplyDeleteThanks for comment...!!!!
ReplyDeleteNice article...
ReplyDeleteThanks for comment…!!!! :)
ReplyDeletethanks for this explain
ReplyDeleteThanks for this :)
ReplyDeleteAny suggestions where to get good materials for Python ?