Network Automation Ramblings
I keep hearing people talk about network automation. Working in a business space that is between small and medium, I have really wondered what i could automate. Interface level between two seperate systems from EMR to a vendor – I have done this in the past usually its pulling information from what is being pasted out of one system and formatting it for another. but this in the sense is not network automation.
Having 3 sites that I have to support automation of network seem really more than what I had time to do. Writing powershell scripts for automating task on the domain controllers counts only from a systems administration perspective.
One of the only tasks I look at daily is security related items. These could use some automation, however current firewall really does not have an API that can be used. This leaves me with something that will eat an hour or so of my time to look at items that may or may not need addressed. Which leaves me from a security standpoint should I learn more for scripting and orchestration to automate tasks. The short answer is yes.
Now for the long answer it could be awhile before I handle complete everything in this for automating on a security device. From not having budge to do so and not having an test environment that will handle this. More on the path of automation for network/security will come in the future.
In looking into this at high level, I did come to the realization that I am consuming a vendors network automation already for one of my sites. A recent Packet Pushers podcast episode and in particular Gregg Ferro for making me realize this. And this realization makes me think that Network Automation is here to stay for at least the moment. whether you build it internal within your organization or whether its a series of enterprise products from a vendor, or its just baked in to your cloud management platform…
I automate task with moving information between systems interfaces that require additional information from me that neither system provides, but the other requires.
After an update one of these systems was moved to a new server do to system requirements and the other stayed on server it was at because it has not been update to run on new windows server. The process for manipulating what was going through interfaces was pretty straight forward. Its when the interfaces are on two different servers things become interesting or head ache causing.
There are 2 data sets that travel through the interface, only one of them requires any manipulation. The manipulation adds a value based on zip code. A very poorly written C# console application takes care of this it works and is very easy to maintain. Power shell scripts are used in a few places, one gets al of the file names to be manipulated for the console application. The second moves the first data set to the other server. There was a third to move the second data set to the other server, this was replaced with another console application to move what was process.
Found the second power shell script which is a basically a move-item command would occasionally decide a network drive was not mapped when it ran in the schedule task, but if it was ran from bat file the schedule task used the it was fine. The network drive did not lose connection. the question is why is it doing this just with the schedule task.
It could be a quirky issue with task scheduler in Windows 2012.
After a tweet to the script to use UNC path instead of the network drive mapping, which works with executing bat file that contains the script. will have to wait for next schedule task to run to see, if it errors out or some other strange condition occurs.
The bottom line is testing and some more testing. The process steps are very straight forward. However you do not know when something will throw you a curve ball in production and operate very differently than what it has been. It looks like the scheduled task is not always running clean – the only error in event log of any uses was concerning the mapped drive that was being used. So make sure you can test every condition you can think of and then test some more.
My thoughts on the Cloud.
There are any number of things i would do in the Cloud.
Just because it has been moved to the Cloud its easier. There can be any number of management issues ot user learning curves because of the move or just how the cloud provider operates. Some of these issue will make it more difficult on those who are supporting it.
Then there is the app for the cloud application for a mobile device. If the cloud provider does not do any Q&A then you can see issues with the app. Until the app is fixed then you have no access to data from mobile device. Can also see other issues arise on web interface for those accessing the cloud from desktops or laptops.
My rambles on Cloud……
Over the holidays I got a Garmin swim watch. I have couple issues with it keeping track of laps correctly, as the accelerometer that is built into is not always registering changes when I do my turns. For freestyle it miss about 5% of my turns, but for breaststroke it is missing about 20% of my turns. I even went and looked at FAQ on topic about this and have no changes in results.
I am still pretty sure this can be a useful tool for a USMS swimmer.
November 6th I started reading Architecture of Network Systems, I finished it today. It was a most informative read.
If you are new to networking or want to have a better understand of network architecture from basic level. This is a must read book.
The amount of detail in Physical layer hardware, from switch fabrics and processors used in networking, makes this on of the best books I have read on Networking in a long time. Also the detail discussion of various layers in networking stack and their functions. The chapter dealing with QOS and security is very well worth the cost of the book.
In previous post I had mention the Author names, but here they are again: Dimitrios Serpanos and Tilman Wolf.
Just start reading Architecture of Network Systems, written by Dimintrios Serpanos and Tilman Wolf.
Looks like its going to be a wonderful read.
Wish this book had been published a few years earlier.
will revise this post after I finish the book.
Hacker rank is a very interesting site. If you like to code, there is a great deal of warm up problems ranging from algorithms, artificial intelligence, and SQL With a good range of programming languages to use. Looks like a good site to practice programming skills with and learn some new ones by solving warm up problems under a particular domain area.
So far the bulk of my effort on the site has been to sharpen my SQL skill set. They do not have test bed for Sybase SQL anywhere, so I have just default to MS SQL. A few SQL functions I have not had to use, I have put into practice. Most of what I have done so far here has been around select problems. Anybody working in the Systems Administrator or Network Administrator space that does not deal with Database on daily bases should use SQL domain on this site to learn SQL .
The other domain I have been doing the warm up problems has been Algorithms I have not fished working through problem set at this time. Current language of choice for me here is C#. I know a few people I know will give me some grief over using C#, but I tend to like it for what little programming I really do for work. One of the problems gave me a good dive into the different types of int’s from Int, Int32 and Int64. One problem was giving me fits as number size for the integer was causing a memory buffer over flow and causing answers to be completely wrong. Surprisingly between my person computer and Hacker Rank the over flow happen at same spot in code, and produce a very similar value. 3rd number read in to array and every time it was convert from string to an integer it would cause and overflow changing its value.
My main topics are generally on networking and system admin, with a few on scripting. However with all the talk I hear about SDN , I thought Hacker rank would be a good site to practice programming and be able to work on a set of problems to help with various programming skills.