2020년 7월 2일 목요일

Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps Cycle

벌써 7개월 전 이군요.
지난 겨울 Tenosrflow-KR Offline 세미나에서 발표했던 내용을 슬라이드쉐어 에 공유 합니다.

Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 방법론 및 AI DevOps Cycle에 대하여 경험을 공유 했던 자료 입니다.

uvicorn + gunicorn + FastAPI + Tensorflow 의 구성으로, 저렴한 Auto Scale Out CPU Docker Serving 환경을 구성하고, 1만 TPS (초당 1만 Transaction Inference Serving by 10 CPU Docker) 까지, 500ms 이내 에러없이 inference 하는 AI Serving 환경을 구성하는 내용을 포함하고 있습니다. (해당 내용은 Azure App Service for linux Docker 환경에서 4 v-CPU 표준 Ubuntu 이미지 Docker 로 실험되었습니다.)

기타, 이를 Production 운영하고 관리하기 위한 DevOps 구축 사례를 공유 하였습니다.( DevOps 부분은 같은 팀의 Patrick(박찬엽님)께서 정리를 해주셨습니다. )



ps. (그로부터 7개월 후)

7개월이 지난 지금, 이 모든 것 또한, 많이 바뀌어 있네요. 새로운 2020년 버전의 New 경험에 대하여는 전혀 새로운 서술을 해 나아가야 할 듯 합니다. 작년에 경험한 것의 몇배 더 큰 경험을 해 나아가고 있습니다.

DevOps 및 MLOps 를 포함한 Production AI 를 Cloud 위에서, 특히 Kubernetes 환경하에서, 서비스하고 운영하는 데에는 기술도 중요하지만, 그에 걸맞는 DevOps/MLOps 문화와 개발조직의 성숙하고 합일된 서비스/개발 철학이 매우 중요하다는 것을 새삼 경험하고 있습니다.

이를 서비스 하기 위한, 극 난이도의 기술들은, 그 기술을 받아들이고 서비스 운영하기 위한, 프로세스와 성숙한 개발 문화가 조직에 보급되어 있지 않으면, 심한 내상으로 되돌아 올 수 있습니다. (기존 전통적인 Water Fall 의 실패 케이스 보다, 더 크게 실패할 수 있습니다.)

반대로, 이를 받아 들이기 위한 난이도 높은 경험을 견디고, 인고의 서비스 정착 경험을 견뎌 낸 경우, 그 기술적인 성숙 외에도, 개발 문화적인 성숙을 통해 얻어지는 잠재력은 훨씬 크지 않나 여겨집니다.

에니메이션 나루토가 막강한 9미의 힘을 내 뿜을때가 이와 유사한 순간인 듯 합니다.
자칫 폭주할 수 있고, 기술에 매몰될 수도 있습니다. 기술이 서비스로 안정적으로 표출되는 순간은 그 크고 파워풀한 힘과 가능성을 받아들일 성숙한 개발 문화와 프로세스가 정착 된 이후 비로서 가능합니다. 그 순간, 비로서 정상적으로 힘의 통제 및 운영이 가능해 집니다.

그 큰 힘의 가능성을 받아들일 준비가 된 개발조직은 나루토가 9미의 힘을 통제 할 수 있게 된 시점 처럼, 무한의 가능성을 갖은 시점으로 비로서 완성될 것 입니다. 그렇게 오픈 된 서비스는, 시작이 미약할 지라도, 유연하게, Continuous 하게 개선하고(DevOps), 실험하고(AB Test), 적용하며(CI/CD), 결국, 시장에서 차별화 된 서비스로 빛을 발할 것 입니다.

인고의 시간을 겪으며 조직이 성숙되고 있는 것이 느껴져서, 저희의 조직이 많이 자랑스러워 지기 시작했습니다. 많이 움츠리고, 많이 고생했던 만큼, 그 내공을 발판 삼아 빠르게 도약할 준비를 얼른 마무리 해야 되겠습니다.

나루토 질풍 전 - 우즈 마키 나루토, 쿠라마의 HD 벽지 다운로드