Copy Rights
Copyright 2019 by Wajid Hassan
All rights reserved. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, including photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the publisher, except in the case of brief quotations embodied in critical reviews and certain other non-commercial uses permitted by copyright law. For permission requests, write to the publisher, addressed Attention: Permissions Coordinator, at the address below.
About the Author
Wajid Hassan technical expertise spawns several years in building new Products and Solutions for IT Services, Telecommunications and Network Infrastructure verticals. He has been a forceful proponent of Network Automation.
In the past he has worked at Tier 1 Telecommunication companies including AT&T as a Solution Architect and at US Government (USDA) developing and deploying innovative mobility and networking solutions. He has command on Mobility, Software Defined Networking, Virtualization, OpenStack, Linux Containers and VMware technologies. Having sound knowledge on the evolution of Cloud and market directions, on a day to day basis he provides technical solutions with practical approach.
Highly motivated in research, he has developed experimental Networking, Virtualization and Cloud Computing lab, provides guidance and mentors researchers in Networking, Cloud and Virtualization domains. He is a great proponent of Research & Development and is considered to be an excellent mentor in nurturing the new talent and building a high performing team. He has hands on experience in Python Scripting and Cisco, Juniper, Ericsson and Nokia equipment.
He has a Master of Science degree in Electrical Engineering with emphasis on Digital Communication and Networking from Wichita State University. He is currently a PhD fellow at Indiana State University with specialization in Digital Communication. His PhD Dissertation is in Software Defined Networking, Machine Learning, Network Automation and Analytics,
He is an author of a research-oriented book. He has several technical research papers published to his credit. He has dual Cisco Certified Internetwork Expert (CCIE) in Service Provider and Data Centre. He has also served as a visiting faculty member at Bellevue College and taught at Indiana State University and Wichita State University. His undergraduate work on communication satellites earned him the 2008 IEEE-P Gold Medal Award. He has published several research papers. His two patents are pending approval.
Contacting the Author
Id be very interested to hear your comments and get your feedback on this book. Feel free to let me know what you think about the book or what additional items you would like to see in the next version of this book by sending me an email at wajid@logicfinder.net .
Customer feedback is critical to the success of this book; If you think you have found a technical error in this book, please send an email to wajid@logicfinder.net
Acknowledgements
I would like to acknowledge the support or my associates and friends and family who have helped in making this book successful.
I would like to thank my wife Aiman, son Humza, My parents Khalid and Shahnaz, my brother Samad and sister Amber in their continuous support and for their encouragement.
Many of my associates have tested the code, read the manuscript and guided in helping to develop a network engineering better book. In no order the following individuals have been a great support as Python script testers, motivators and active contributors Debashish Dash, Rakesh Kumar, Dr. Patrick Appiah-Kubi, Pooja Thacker, Omar Azeemi, Larry Vongkhamchanh , Trung Vu, Hina Mumtaz, Fiza Khaliq, Ammara Siddiqui, Muhamad Naeem, Qamar Mahmood.
Contents at a Glance
Preface Chapter 1: Introduction Chapter 2: Elements of Programming Chapter 3: Collections and Sequences Chapter 4: Conditional Statements Chapter 5: Loops (FOR loop, WHILE loop, DO-WHILE loop) Chapter 6: Functions (Classes and Object Oriented Programming) Chapter 7: Errors and Exceptions Chapter 8: Well Known Python Network Libraries Chapter 9: Practice Programs for Python Network Scripting Chapter 10: Network Automation Tools Appendix 1: Online Courses and Books in Python Appendix 2: Selected Bibliography
Preface
Network Automation addresses some of the most urgent, critical and complex network challenges. In the past the tedious process of network configuration and management has resulted in slowed growth and slowed fixing of the networks. Similar to the prevalent server automation which helps systems administrators diminish configuration issues and spares their time to focus on more strategic projects, network automation improves the efficiency of network engineers. Most of the enterprises still administer networks manually, even though manual network administration is cost inefficient and requires a lot of time. When easy accessibility to open source tools is available, network automation becomes easier to run an organization easily. It is high time for network teams to focus on becoming more agile. To stay competitive network management teams need to quickly fold novel advancements into organizations. This is possible by using Python Scripting for Automation.
Today Network Automation can be used for provisioning, configurations, identifying rogue devices, mitigating security attacks, compliance, audits, capacity planning, and scores of other activities. It has helped in enhancing network visibility and have empowered the network engineers to make faster, smarter network decisions, optimize uptime, efficiency, and performance, enhance security, and enable innovation instead of spending endless cycles in bringing the network
Automation has introduced faster and easier methods to achieve productivity goals, in a similar way if the network is not fully automated then it remains vulnerable to unplanned outages, traffic spikes, slow performance, and security risks.
Proprietary vendor automation solutions are becoming better but do not support a multi-vendor environment. Python Scripting has come to rescue and has deploy the blazing fast, high-availability, agile network was always wanted by the Network Administrators and Managers.
With Python Scripting, network engineers can reduce the likelihood of human error while configuring network devices, resulting in not only better-functioning networks, but more secure ones as well. Network automation has been difficult because networks are not usually the same, they are designed and evolve based on the need of the organization. The complex nature of business results in various needs of the users resulting in even complex networks, to manage such networks, network automation is needed
Programming was not much used in Network Engineering uphill 5 years ago however long and complicated lines of Network Configuration and with the advent of Software Defined Networking, it has become imperative to use scripting.
This book has been written for Network Engineers who are starting to explore network automation to build better computer Networks. This book is a good starting point for Network Engineers who learnt Programming in their earlier academic or work career and havent used it in a long time or those Network Engineers who are learning Programming and Automation for the first time. The book has example Python Scripts which readers can practice and improve their job potential and make the networks more resilient and scalable.
What does this book cover?