Asynchronous Monitor Agent using Python 3 and asyncio

Here you find the details for the internship named "Asynchronous Monitor Agent using Python 3 and asyncio" in the company Western Digital.

Name: Asynchronous Monitor Agent using Python 3 and asyncio
Company: Western Digital

In ActiveScale, there is a monitor agent process (MonA) running on each server. In its core, MonA is a framework to run chains of (Python) plugins to retrieve, verify and act on properties of the server. These chains are referred to as rules and are scheduled asynchronously using Twisted deferred threads. MonA is currently written in Python 2.7 and is hitting a few limitations in area’s that evolved a lot in the past decade.

The goal of this internship is to come up with a design and implementation of a replacement of MonA, using Python 3 and asyncio. This would include:

• Getting familiar with the current design of MonA and how it relies on Twisted combined with threads for asynchronous execution of plugins.
• Create a design of how to translate the current design to one that uses asyncio as the asynchronous framework.
• Implement a proof of concept MonA framework in Python 3 with asyncio.
• Implement a test framework for your proof of concept.
• Keep plugin developers in mind as a customer to this framework. It should be easy to develop plugins for the new MonA framework. This could include:
o Making plugins standalone executables. This could allow to support multiple programming languages and leverage teams with a flexible way to build the plugins as they like.
o Keeping plugins in Python and create a developer documentation and best practices guide on how to use asyncio in plugin development.

• Python 2.7 and 3.7
• Twisted
• Asyncio
• Linux/Ubuntu
• Sanic

Target profiles:
  • Burgerlijk Ingenieur - Computer Science Engineering
  • Computer Science
In industries:
  • Technologie
  • IT
Required special knowledge:

Duration: 6 weeks
Paid: No
Net wage: -
Foreign: No
Contact: Olivier Gustin (HR Manager)