From Reactive to Proactive: Using AIOps to Predict and Prevent Software Failures