Summary
Designing and maintaining enterprise networks and the associated hardware is a complex and time consuming task. Network automation tools allow network engineers to codify their workflows and make them repeatable. In this episode Antoine Fourmy describes his work on eNMS and how it can be used to automate enterprise grade networks. He explains how his background in telecom networking led him to build an open source platform for network engineers, how it is architected, and how you can use it for creating your own workflows. This is definitely worth listening to as a way to gain some appreciation for all of the work that goes on behind the scenes to make the internet possible.
Announcements
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
- You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.
- Your host as usual is Tobias Macey and today I’m interviewing Antoine Fourmy about eNMS, an enterprise-grade vendor-agnostic network automation platform.
Interview
- Introductions
- How did you get introduced to Python?
- Can you start by explaining what eNMS is
- What was your motivation for creating it?
- Who are the target users of eNMS and how much background knowledge of network management is required to be effective with it?
- What are some of the alternative tools that exist in this space and why might a network operator choose to use eNMS in their place?
- What are some of the most challenging aspects of network creation and maintenance and how does eNMS assist with them?
- What are some of the mundane and/or error-prone tasks that can be replaced or automated with eNMS?
- What are some of the additional features that come into play for more complex networking tasks?
- Can you describe the system architecture of eNMS and how it has evolved since you first began working on it?
- eNMS is an impressive project that looks to have a substantial amount of polish. How large is the overall community of users and contributors?
- For someone who wants to get involved in contributing to eNMS what are some of the types of skills and background that would be helpful?
- What are some of the most innovative/unexpected ways that you have seen eNMS used?
- When is eNMS the wrong choice?
- What do you have planned for the future of the project?
Keep In Touch
Picks
- Tobias
- Antoine
Closing Announcements
- Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
- Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
- If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@podcastinit.com) with your story.
- To help other people find the show please leave a review on iTunes and tell your friends and co-workers
- Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
Links
- eNMS
- Orange
- Netmiko
- NAPALM
- Paramiko
- Ansible
- Requests
- OpenNMS
- LibreNMS
- Ansible Tower
- Rundeck
- SaltStack
- StackStorm
- SaltStack Proxy Minions
- Hashicorp Vault
- VirtualBox
- Flask
- Django
- SQLAlchemy
- APScheduler
- Docker
- Redis
- Celery
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
Hello, and welcome to Podcast. Init, the podcast about Python and the people who make it great. When you're ready to launch your next app or you want to try a project you hear about on the show, you'll need somewhere to deploy it. So take a look at our friends over at Linode. With 200 gigabit private networking, scalable shared block storage, node balancers, and a 40 gigabit public network all controlled by a brand new API, you've got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to python podcast.com/linode, that's l I n o d e, today to get a $20 credit and launch a new server in under a minute. And don't forget to thank them for their continued support of this show.
And you listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers, you don't want to miss out on this year's conference season. We have partnered with organizations such as Dataversity, Corinium Global Intelligence, Alexio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit in Graph Forum, the Data Orchestration Summit, and Data Council in New York City. Go to python podcast.com/conferences today to learn more about these and other events and take advantage of our partner discounts to save money when you register. Your host as usual is Tobias Macy. And today, I'm interviewing Antoine Forme about eNMS,
[00:01:36] Unknown:
an enterprise grade vendor agnostic network automation platform. So, So, Antoine, can you start by introducing yourself? Yeah. Sure. So my name is, Antoine Forme. I started my career as a network engineer. So I worked for Alcatel Lucente, a company that sells network equipments to service providers. Then I worked for the 2 main, Internet service providers in France, Bouygues Telecom and Orange. And, I slowly made the shift to network automation. So using Python more and more for my day job day job and, libraries such as Netmico and napalm that we use in the in the network automation field. Last year, I decided to quit my job at, Orange and to focus on creating my own network automation platform called E NMS.
And that's what I've been doing, up until now. So I'm working as a full time, maintainer for the E NMS project on GitHub. And do you remember how you first got introduced to Python? Yeah. I started using Python when I was in, in high school. So that was, like, 15 years ago. I was using it for a website called, project, which I think still exists, where you can solve, mathematical challenges about, prime number prime numbers and so on. Yeah. I was using it mostly for fun back then, but, for the past 5 years, I've been using it basically every day, for work. And so you mentioned that you started working on e n m s fairly recently, and you're doing it full time. I'm wondering if you can start by giving an overview about what the project is. Yeah. So E NMS is a network automation platform. Basically, a network works with, many different types of devices, such as routers, switches, firewall, load balancers.
And, all these devices are very different from each other. And they are very different from, a traditional Windows or unique server. They have, like, a custom operating system and different requirements in terms of, memory and security. So the process of, automating them is, is very different from standard, server automation. So that's what network automation is all about, about, automating these, network devices. This can mean, like, very different thing like, configuration management. The NMS can keep track of, all your configurations, but also automates configuration life cycle like, pushing changes in in an automated fashion, storing configurations in in Git and CERN. It can be used to perform automatic device upgrade. It can be used for event driven automation as well. So, yeah, like I said, it's it's a web platform. So it uses a number of of libraries, Netmico.
Netmico is like a Python library that is built on Paramico and that we use to SSH to a network device. It uses Ansible, so it can detect, your playbooks on your computer and lets you run them from the from the graphical interface. It uses, requests as well if you want to send calls to a remote REST API. And, it can turn any any Python script into into a graphical form. So if you have, like, a Python script that you would like to use, and this, Python script can take, input parameters, NMS can take care of, converting this, this, script into an HTML form with a drop down list, checkbox, and so on, for you to use it in the in the GUI. And, yeah, this is all done graphically so you don't have to you don't have to cut anything by yourself if you don't if you don't want to. And, yeah, it it lets you create these, these different bricks and, assembles them into into a workflow.
So this is, a workflow creation
[00:05:27] Unknown:
platform. That's So I'm wondering what your motivation was for creating it and particularly since you decided to leave your previous employer to focus on it full time? Well, there's there's been like a long standing disconnect between, between the network engineering world
[00:05:44] Unknown:
and the software engineering world. So network engineers are usually not, software savvy and, well, software engineers are not very network savvy as well. So I guess the main idea behind the NMS is to is to try bridging that gap by, allowing network engineers to automate, a network without having to be an expert at, programming. So, making automation graphical and bridging the gap between software engineering and network engineering. That was the main motivation. Plus the fact that, well, I was working as, as a network, automation engineer at my previous job. So I had to well, I had to use, tools like E NMS.
But, I felt like they were not, doing the job properly. They were very, very cumbersome to use. So I decided to to fill a void, by creating a different application.
[00:06:41] Unknown:
And for people who are working in that space, I know that there are a number of other tools that serve to do things such as monitoring the network or manage the inventory. So tools like open NMS is 1 that I've used and I'm familiar with. And I noticed in the documentation that you have some integration for being able to cooperate with that. So I'm just curious, what are some of the other tools that exist in this space and why you thought it was necessary to create a new 1 in terms of what might have been lacking in those tools and ways that eNMS fits into the broader ecosystem?
[00:07:15] Unknown:
Well, I would say there aren't many tools like eNMS because, the main focus is network automation. And in the network automation field, there isn't, many tools like that. So you you just mentioned OpenNMS, but OpenNMS and LibreNMS are more like network monitoring tools. So they are tools that, you can import your network topology and then let let the application monitor them and draw graphs about, how much traffic there is. But they are not used for, network automation. So I'm basically just interfacing with them because, some of some well, the the people who use E NMS, are also using these tools, and they have, imported the the topology into these tools. So I'm basically just using the REST API to to retrieve the topology.
So there are a bunch of tools that, well, are similar to NMS, but not quite. So you have, Ansible Tower and, RunDeck that you can use to to run Ansible playbook. But the downside is that it's, it's limited to Ansible. So you'll have to use Ansible if you want to use Ansible tower. You have also tools like, SoulStack and StackStone. But, they were created mainly for server automation as opposed to network automation. So, basically, the fact that, network devices have custom operating system and work differently, makes tools such as, Solstag very difficult to use for network automation.
In the case, in in Solstag case, they are basically installing, what they call a minion. And for that, they need access to the to the machines. They need to be able to install something on the device, which you cannot do on a on a traditional network device. So they came up with, well, a solution called salt, proximunion, but that's, that's basically just a hack to make network automation possible. And that's not what they were designed to do in the 1st place. So you do have, some solutions to automate network like, open source solution. But, usually, it wasn't, created, like, as a first intent. It was, created for server automation, And then they tried network automation as well, but it doesn't always work very well. And, of course, you have, proprietary softwares as well. But then you have to pay for it. And, if you use, like, a Cisco software to automate network your network, you you will only be able to use it to automate Cisco, devices usually. So what what set, EMS apart is that it's a multi vendor tool. So it doesn't matter if if you're, like, using Cisco or Juniper or Arista. It doesn't matter what your network is, made of. It will be able to automate everything just the same. And you mentioned earlier that
[00:10:18] Unknown:
the community of network engineers isn't generally very well versed in software engineering and software engineers aren't very generally very well versed in network management. So I'm curious who the target users are for e n m s and what sorts of design elements you're incorporating to make it easier for them to be able to achieve the goal of managing these distributed networks? So the target users are, service providers.
[00:10:44] Unknown:
So companies with, a very big network and thousands of network devices, routers, switches. The more network devices you have, the more automation you need to to manage your network. So this is, the scale that I'm, targeting, like, when you when you have thousands of devices. And, well, what NMS is doing to make automation easier for network engineers is that it's so, graphical. So you have this, Python libraries, Netmico and APAM. You have Ansible as well. You don't need to cut anything anything by by yourself. You just need to create, like, what we call a a service in the NMS.
It's basically just an HTML form that you have to fill and to tell E NMS what you want to do. And E NMS will take care of, interfacing with, with the libraries, Netmiko and APAN. It will take care of connecting to the network device. It will take care of, storing the credentials as well because you don't want to have, well, credentials out there in the open. So NMS, well, we store credentials in a in a HashiCorp vault. So this is, the kind of thing that, would be difficult for most network engineers and that, EMS can take care of.
So all graphical creating workflows like from, from the graphical interface and creating, automation task, again, by just filling an HTML form.
[00:12:16] Unknown:
And networking in large part has become mostly invisible to end users and even software engineers because of things like the accessibility of cloud environments and things such as, software defined networking. So I'm curious what your perspective is on the current state of the industry, and how broad the requirement is for people to be able to have a good understanding of networking and network management.
[00:12:42] Unknown:
I don't think software defined networking is such a big thing. Like, I mean, it's a it's a term that you would have to define because it's it's used like, it's mostly a marketing term, I'd say. It's not clear what software defined marketing refers to. In a way, you could say that ENS, what ENS does and what, the Python libraries, such as Netmigo and APAM do is, is a kind of software defined marketing, networking.
[00:13:11] Unknown:
I I think you got it right. It's definitely more of a marketing term and 1 that has sort of fallen out of general use. I think it was more popular when OpenStack was starting to rise in prominence because that's what they were trying to use as far as being able to define the interconnects between the different resources and the cloud environment that they were building. And now that OpenStack is starting to fall by the wayside, people aren't really using that terminology much anymore. Yeah.
[00:13:37] Unknown:
Software defined networking could mean something like, you have some solution where you don't have to manage your network anymore. Like, you have a you take a software and this software will take care of, managing your network for you. But what this means is that you're basically outsourcing your network to, a third party software that you don't have, control over. So, this is something that can be, that can be useful for a small company when, like, when network engineering is not, like, the main business. And, it's just like, something that you want, you you can afford to outsource.
But, if we're talking about service providers, this is just not something that you can do. Like, a service provider who cannot outsource, the network because that's, that's what they do as a business. So, I don't think SDN, applies to, service provider's network.
[00:14:37] Unknown:
And so in terms of E NMS itself, I'm wondering what are some of the most challenging aspects of network creation and maintenance and some of the ways that e n m s helps with making those more accessible and more maintainable in the long run? Some
[00:14:54] Unknown:
most challenging, automation tasks that I've seen so far is, upgrading, a network device, because upgrading a router, or an optical switch is much more difficult than upgrading a a server. It can take it can take from 6 to 8 hours for just 1 device. So it can even span several days. And you need engineers to work basically, full time on upgrading your device. So this is, 1 of the very challenging aspect of, network, well, network maintenance. And this is something that you can definitely model as a workflow because an upgrade is usually well, always the same, the same serial of steps. It will start with, like, prechecks, and then you will have to transfer a file to the device.
That file will be like the the version you want to upgrade to. Then you will do the upgrade and you will reboot the device and you will do a bunch of post checks to make sure everything's fine. And this is, this is, something that you can you can model with a workflow and, some things that NMS can help you with. Then once you once you have the workflow all set up, you can just, you can just run it, like, schedule it to run-in the middle of the night, and that's it. You don't need, you don't need an engineer anymore to to make this, all this, manual pre check, post check, and upgrade. So yeah.
And, well, something else that you could do with CMS as well is, some event driven automation. Like, for instance, you have, all these, DDoS attack. And so you have to you have to use, DDoS, auto remediation mechanism to, to remediate it. And, this is something that NMS can, can do for you as well. You could have a workflow that would take care of, the DDoS, auto remediation process. And when, when the attack starts, you can make a rest call to E and M's, REST API and the welfare will start and it will start creating an access list on a bunch of device or this kind of, of,
[00:17:17] Unknown:
automated task. And having the workflow defined like that, I'm sure reduces the overall error rate for these types of operations, particularly since if something does fail at some point, you can incorporate that back into the workflow so that you can account for it next time. And so I'm curious too how you approach things like testing or validation of those workflows without necessarily having a a negative impact on a live network. Well, you test them in a lab. Like,
[00:17:49] Unknown:
every service provider has, like, a a lab dedicated to testing upgrades. It doesn't even matter that you're, like, using in MS or not that you are you as that you are trying to automate it or not. Even when you're not trying to automate the upgrade, you have, like, a map and, you will first, well, you will first try the upgrade on on the lab device and you will try it, like, a lot of times until you you show that it works well. And only when only when it when it works, you will start, doing any production. So in E and M, it would be exactly the same. Like, you would have, you would have a lab instance and you would have a production instance.
You would first create a workflow, on the lab. You would test it on the lab. And when you feel it's ready, then you would, well, try it in production. From that perspective, there is no difference between making it, like, in an automated fashion or not. It's like first lab environment and then
[00:18:52] Unknown:
then production environment. I'm also curious how you approach testing of ENMS itself in order to remove that as a potential failure point for who are running these mission critical networks?
[00:19:04] Unknown:
I've got, like, many, regression workflow. So, well, I've got regression test as well and, regression workflow. So every time I, implement something new, like a new feature for the workflow system, I create a workflow in NMS. And, this workflow, runs as part of, Travis c Travis CICD. So every time I push, a commit to to GitHub, it will start running all my, regression test workflow and, make sure that everything works, as intended. I'm also testing NMS on, virtual devices. So I've got, like, a virtual box and I'm using, a virtual Arista router because Arista is 1 of the few companies, that, well, where you can download the the virtual operating system.
And that's very useful for automated testing. So I've got this this virtual, Arista device. And, every time I make a new release, all the workflow will run against it. And, if anything goes wrong, it will fail and I will fix it. Yeah. Given that you're targeting
[00:20:14] Unknown:
physical devices and hardware environments, I'm sure that that introduces a lot of complexity in terms of your development cycle, and also the fact that there is the potential for hardware faults in the overall deployment and maintenance of these networks, that introduces another layer of complexity that you wouldn't necessarily be able to handle with eNMS. And so I'm curious if that's where other tools such as openNMS and things like that would come into play as far as being able to identify instances and switches that need to have some sort of preventive maintenance done to avoid those types of switches and these large networks?
[00:20:49] Unknown:
I'm not sure. I'm not an open NMS user myself, so I'm not sure it would do that. Yeah. What's true is that if you if you're, like, if you are, running a workflow and it has an impact into production network, you have tools, monitoring tools that they would see it. You would see a drop in traffic or something like that. But, I guess, the idea is that, this this would also be part of the post checks of, of the workflow in EMAs. So if you run a workflow, you have a bunch of post check. And, 1 of them would be to check that, the traffic is coming back up after the upgrade or after whatever you did.
So this is something that ideally, if something goes wrong, you should see in EMS as well. Because a workflow would usually, include a rollback procedure. So if something goes wrong, it would you would have, like, a failure edge to, some other part of the workflow that would take care of, reverting, whatever change you made. So, yeah, if something goes wrong, it's definitely something that you want to detect, in NMS because it is up to NMS to take care of the world back.
[00:21:59] Unknown:
And in terms of NMS s itself, you mentioned a number of the different libraries and frameworks that it relies on. And I'm curious how you've approached architecting it to make it easy to use and also easier for you to develop it and just any of the ways that it has evolved since you first began working on it. Do you want to talk about, like, the overall system architecture of NMS or specifically regarding, yeah? Yes.
[00:22:26] Unknown:
Okay. Well, so NMS basically uses, it uses a Flask web framework. It has evolved a lot since I first, started working on it. I started I started using Flask to develop it. And then I switched to Django because I didn't like Flask. And after a while, I switched from Django back to Flask. So, yeah, it it has evolved a lot. It's very different from most, Flask projects because Flask is basically completely isolated from the main application. This is something that, well, that you won't see in many Flask project because, it's an unusual architecture. But, basically, you have this, this, controller application that takes care of all the business logic. And Flask is just used in NMS as a way to, process HTTP request and nothing else.
So I'm not using, like, many Flask extensions. I'm just using Flask itself and Flask login for the authentication, but, that's about it. So Flask is used for the web framework. For the database, I'm using SQLAlchemy. So for creating the the tables and for all the SQL requests. SQL actually means like database agnostic, so you can you can use SQLite, Postgres, or MySQL. For scheduling task, I'm using AP scheduler, which is the main well, 1 of the main Python, library to to schedule, tasks. And, I'm using, HashiCorp Vault to store credentials. So the typical NMS architecture would be the NMS application itself, my my SQL database, and the vault.
[00:24:10] Unknown:
So for somebody who wants to run it on their own, there are a few different moving pieces. I'm curious if you have packaged up some deployment automation for that, or if that's part of the service that you're providing to support your overall development of the NMS.
[00:24:24] Unknown:
I did use, I have a Docker file in NMS, to, well, deploy NMS with, a database and as well, I have a Docker Compose file as well. So you can run it and it will start NMS, with a postcode with a postcode database. But it doesn't, it doesn't, create the vault itself. So this is not something that I, yeah, it's not it's something that you have to do yourself. I'm not a big fan of Docu myself, so I did it just, just as a test. But, I wouldn't recommend deploying in a mess with Docker. I would recommend, creating the the database yourself and setting up the vault yourself. So this is not something that is done, automatically, but, if you look at the documentation, I explained with a lot of details how to set up, a postcode as a postcode database, a MySQL database,
[00:25:21] Unknown:
and, how to set up as a vault as well. And then I'm also curious how you approach sustainability of the project and, some of your motivation for creating it as an open source project, particularly given that you're targeting large enterprise organizations as the end users and how that factors into their overall view of the project and any sort of, sales cycles that you go through to, start working with them.
[00:25:48] Unknown:
Yeah. So that's the kind of, well, business related questions that I guess you have to start thinking about, well, when you create a project. But that's that's not exactly what I did. I was just fed up with my job at some point, and I just decided to to leave and work full time of in on in a mess. And I I didn't have a a clear plan in mind about, how to make it, sustainable. And, I guess I was very lucky because I just started to have more and more users, users willing to to pay for, for my maintaining the project. So, yeah, I I didn't have to do much, I guess. Yeah. Again, I was lucky because user just came to me, service providers, and they, were willing to to contribute and to support the project, financially. So
[00:26:41] Unknown:
And what have you found to be some of the most interesting or unexpected or challenging aspects of building and maintaining the eNMS project?
[00:26:50] Unknown:
I guess the most challenging aspect is to is to build a community around the project. It's very hard to, to get people, interested in in what you're doing. So, yeah, it's very strange because open source is basically like, you're like, offering a tool for free, and you would expect people to to just care about it, but that's not what happens. And the most challenging part is to to build that community and to to make people interested in not just, using it, but also contributing. That's definitely the most challenging part. Because, well, when it comes to just programming and implementing new features, this is something I can do.
But, at some point, as the project starts growing, you want to have, well, more people, more contributors, and, more feedbacks. And that's
[00:27:48] Unknown:
that's the challenging part, I'd say. And for anybody who does want to get involved, what are some of the types of skill sets and backgrounds that would be helpful both to you and also for them to be able to get up to speed and be effective at it?
[00:28:03] Unknown:
NMS is like 50% Python, 50% JavaScript. So, if you want to contribute to the code base, the skill set you would need is like, full stack, programming. So knowledge of, both Python and JavaScript. It's hard to do just back end or just front end. You usually need both. So I guess this is what makes, attracting new new contributors difficult because it's a it's a very rare skill sets. So, yeah, Python JavaScript, if you want to contribute to the code base. But, there are many other ways to to contribute and to well, 1 of them is the documentation.
It also takes a lot of time, probably just, as much time as it does, programming. So, and you don't need any particular skill set to contribute to the documentation. You just need to use it and be willing to improve it. It it just takes time. But, yeah, anyone could, contribute to the documentation or, yeah, or to the readme.
[00:29:17] Unknown:
And how much background knowledge of network infrastructure and network automation is
[00:29:31] Unknown:
you want to to work on. You would need some knowledge about, network automation, especially if you want to contribute something, that has to do with Netmigo, Nepal, or Ansible. So you would need to have access to to, network device so that you can test what you're doing. You need some network, well, network networking knowledge as well if you want to contribute because, you need to to test, the code on actual devices.
[00:30:03] Unknown:
And when is E NMS the wrong choice and you'd be better suited reaching for some of the underlying projects such as napalm directly?
[00:30:11] Unknown:
It depends a lot on your use case. EMS is very focused on network automation. So, if your use case is more like a network monitoring, you would be, better off with, OpenNMS or LibreNMS. It's also not a network inventory tool. So if what you need is a tool to, document your network very precisely down to the, well, cable level, then you would need to use, a tool like NetBox, which is a a tool for IP address management and data center, infrastructure management. So EMS is the, like, the right choice when you need, network automation.
[00:30:56] Unknown:
And what are some of the new features or improvements that you have planned for the future of the project?
[00:31:01] Unknown:
I'm basically focusing right now on, scalability because I have more and more users with, huge networks, like more than 10, 000 devices. So the main issue right now with these, big networks is to just make the project, scalable. So that's just 2 kind of, scalability of vertical what I'd say vertical scalability, like you want to, you want a single instance to scale up to 50, 000 devices, and that means, relying on the server side processing. So trying to not do everything in the front end, but rely more on the back end and the database. And you have, like, a horizontal scalability, which is, when you deploy multiple instances of NMS, you want to make sure they don't, they don't step on each other. You want to use you want to use a radius database on something like Celery.
So that's what I intend to to add, like, a a task processing library, along with the Redis database
[00:32:05] Unknown:
so that, multiple instances of NMS can work together and share the load. And are there any other aspects of the NMS project or network automation in general that we didn't discuss yet that you would like to cover before we close out the show? I think, I don't know. I think that's it. I didn't add, any any other questions. So, yeah, I think that's, that's all. Alright. Well, for anybody who wants to follow along with the work that you're doing and get in touch, I'll have you add your preferred contact information to the show notes. And so with that, I'll move us into the picks. And this week, I'm going to choose the Tedeschi Trucks Band. It's a group that I've been enjoying listening to that is actually the, marriage of 2 different musicians who have their own bands, and they now developed a new group that's actually a 15 piece band. So definitely worth checking out if you're looking for something new to listen to. And so with that, I'll pass it to you, Antoine. Do you have any picks this week?
[00:33:01] Unknown:
I would just like to talk about, Check IO. It's like a Python project, to to learn Python. It's a website where when you where where you can solve, Python challenges online. And it's a very good website, that I'm always advising to people who want to get better at Python. So I advise you to check it out. It's Cheggio.
[00:33:24] Unknown:
Yeah. I definitely will second that 1. And I actually had 1 of the founders of the company on a while back. So I'll I'll add a link to that episode as well. So definitely a great place to practice your Python skills. Well, thank you very much for taking the time today to join me and discuss the work that you've been doing with e n m s. It's a interesting project and 1 that has a lot of polish, so I'm sure that there's a lot of value that people are getting out of it. So thank you for all of your work on that, and I hope you enjoy the rest of your day. Yeah. Thanks. You
[00:33:53] Unknown:
too.
[00:33:55] Unknown:
Thank you for listening. Don't forget to check out our other show, the Data Engineering Podcast at data engineering podcast dot com for the latest on modern data management. And visit the site of python podcast dotcom to subscribe to the show, sign up for the mailing list, and read the show notes. And if you've learned something or tried out a project from the show, then tell us about it. Email host at podcastinitdot com with your story. To help other people find the show, please leave a review on Itunes and tell your friends and coworkers.
Introduction and Sponsor Message
Interview with Antoine Forme: Introduction and Background
Overview of eNMS
Motivation Behind eNMS
Comparison with Other Tools
Target Users and Design Elements
Current State of Networking Industry
Challenges in Network Creation and Maintenance
Testing and Validation of Workflows
Testing eNMS and Handling Hardware Complexity
System Architecture and Evolution of eNMS
Sustainability and Open Source Motivation
Challenges and Community Building
Contributing to eNMS
When eNMS is the Wrong Choice
Future Features and Improvements
Closing Remarks and Picks