파이콘 한국 2023

파이콘 한국
프로그램
후원 안내
행동 강령 (CoC)

Improving debuggability of complex asyncio applications

카테고리 : 파이썬 (Python core, library, ...)
난이도 :
발표 시간 : 20분
언어 : 한국어
발표 장소 : 101호

설명

디버깅에서 가장 중요한 것은 관찰 가능성과 재현 가능성입니다. asyncio 표준 라이브러리의 꾸준한 개선에도 불구하고, 실제 프로덕션 수준의 복잡한 asyncio 애플리케이션 내부에서 무슨 일이 일어나는지 들여다보는 것은 여전히 어려운 문제입니다. 특히 내가 제어할 수 없는 여러 3rd-party 라이브러리와 프레임워크가 혼용되어 돌아갈 때, 조용하게 삼켜진 cancalleation 신호나 어떤 외부 코드 내부에서 임의로 만들어진 콜백과 코루틴 작업들 때문에 발생하는 리소스 문제는 굉장히 디버깅하기 어렵습니다. 게다가 이런 문제들은 개발 환경보다는 실제 워크로드가 있는 프로덕션 환경에서만 발생하곤 합니다. 이 발표에서는 기존에 공개되어 있던 aiomonitor 라이브러리를 더욱 개선한 aiomonitor-ng 라이브러리를 선보입니다. 기존 라이브러리가 간단한 telnet 서버와 REPL을 기반으로 현재 실행 중인 asyncio 프로세스를 들여다보는 것을 도와주었고 실제 프로덕션 디버깅에서 도움을 받기도 합니다. 하지만 1년 이상 써오면서 부족한 기능들을 절감하게 되었고 직접 task 생성 및 취소·종료 스택 체인을 추적하는 기능을 포함하여 다양한 기능 추가를 직접 진행하게 되었습니다. 사용 편의를 위한 자동완성이 지원되는 터미널 UI도 추가하였죠. aiomonitor와 이렇게 개선한 aiomonitor-ng를 활용하여 실제로 다수의 프로덕션 이슈들을 발견하고 분석하는 데 활용할 수 있었습니다. 이 경험을 여러분들도 보다 안정적으로 동작하는 asyncio 애플리케이션을 만드는 데 활용할 수 있기를 바랍니다.

발표자 소개

김준기

김준기

현재 Lablup ("래블업") CTO를 맡아 Backend.AI를 개발하고 있으며, 다양한 규모의 백엔드 시스템에 대한 분석 및 구현 경험을 가지고 있습니다. 오픈소스 활동을 통해 Textcube, iPuTTY, CPython, DPDK, pyzmq, aiodocker, aiohttp 등의 프로젝트에 기여해왔습니다.

후원사 목록

사파이어

  • Google Cloud
  • Python Software Foundation

플래티넘

  • 페이히어
  • 현대자동차

루비

  • 래블업 주식회사
  • JetBrains
  • KREAM Corporation
  • 팀블랙버드 주식회사
  • KSTEC (Taipy)
  • 메가존클라우드

골드

  • Presto Labs Pte. Ltd.
  • 요기요

실버

  • 주식회사 에잇퍼센트
  • 코드박스

출판사

  • 이지스퍼블리싱
  • 도서출판 인사이트
  • 한빛미디어
  • 도서출판길벗

기술 후원

  • NHN 두레이

장소 후원

  • 모두의연구소
상호명사단법인 파이썬 사용자모임
사업자 등록 번호338-82-00046
대표자명배권한
사업장 주소서울시 강남구 강남대로84길 24-4