AsyncIO in production - War Stories

Michal Wysokinski

ASYNC / Concurreny Debugging Python 3 Use Case

My team has been running AsyncIO in production for over 2 years now and the only thing I can say about my experience with it is: "Oh boy, what a rollercoaster of feelings". I've experienced laughs and tears, sweat and blood but also sang songs of glory. AsyncIO is currently the biggest buzzword in the Python world advertised as a silver bullet capable of solving all Python's shortcomings in the field of performance. However, it also brings a burden of being a completely new approach with a fresh implementation which is not often mentioned and taken into consideration. In some of my team's projects we've achieved a great success thanks to AsyncIO, but there's been a few where we decided to get rid of it and replace it with a more traditional fork-join architecture. I'd like to share my experience with AsyncIO, tell some War Stories and discuss which projects it suits perfectly and which ones should avoid it.

Type: Talk (45 mins); Python level: Advanced; Domain level: Advanced

Michal Wysokinski

Akamai

Michal Wysokinski is a software engineer at Akamai's metadata team. Currently involved in a big undertaking of modernisation of Akamai's metadata systems.

He's been involved in numerous projects over the years, some of them being: a data quality monitoring system for CERN's LHCb experiment, a system for aiding Search and Rescue operations for the polish mountain rescue team GOPR and an automatic autoscaler and bidder for AWS EC2 spot market.

He's most recent work involves developing frameworks for monitoring and testing Akamai's vast CDN network of more than 250 000 servers and creating a tool for alerting and live analysis based on microservices logs produced by Akamai's internal cloud platform.