End-to-end machine learning lifecycle