Welcome back to the second of this two-part piece on DevOps for AI Apps. In part one, we explored the differences between regular apps and AI apps, drilled into some of the added complexity and thought about the benefits of adopting a DevOps methodology for enterprise AI app projects. In this part, let’s take a look at some further justification for DevOps, the importance of automation, and suggest places to start and how VMware can help.
A core concept of DevOps is that it is continual. You set up the pipe and keep sending things down it, from the developer’s laptop, into production. Looking back at the DevOps approach for a traditional app, or even a container based/micro-services app, we know that it’s really the app itself that’s important (and things like the DBs it might connect to). Using DevOps can be a great way to iterate through the development lifecycle quickly, so that when there is a patch required, or a new feature needs to be released, the important code is updated and integrated, the change gets automatically propagated through the test environment and finally, it’s released into production very quickly.
This process changes in the AI App scenario. In this scenario, we have more than just the code to worry about. We have three equally important pillars, continually changing, for potentially different reasons:
The data is our source of all truth, but it will change for various reasons. The sample rate might change, there could be a jump in the sheer volume or there might be a schema update. All of these things will likely change and could require changes to our AI App.
Over time, your data scientists will likely update the algorithms, the training approach might be altered, you might even try different experiments on the model to see if you can improve it. The model is the part which brings the most value, so it’s the one which will take a lot of attention and inevitably go through many iterations. All of these will likely affect the AI App in one way or another.
On top of the data and the model changes, the app code itself will change because of the typical non-AI reasons we remember from before, a change in business needs, feature additions, bug fixes and patches, changes in configuration, the list goes on.
From my perspective, exploring a DevOps style methodology becomes even more compelling here, due to the massive increase in complexity.
Tool-chains & the importance of CI/CD
I want top be clear, DevOps, is not just about technology. At its core, its about people, teams and process. You cant ignore the people and process piece, but leveraging a DevOps tool-chain is still a big part of winning at DevOps.
It’s also important to note that it is not a single tool, but a number of areas to consider tooling for:
- Code – Development tools, source code repositories.
- Build – Continuous integration tools
- Test – Automated testing tools
- Package – Artifact repositories and pre-staging
- Release – Change management automation
- Configuration – Infrastructure as Code
- Monitoring – Applications performance monitoring
There are many tools that fit into these areas and can be implemented in almost infinite variations, but one thing is sure:
Automation is a core principle for achieving success with DevOps and CI/CD is a critical component of that.
Whilst DevOps is focused on the organizational and process changes to collaborate more effectively, CI/CD focuses on the automation itself.
CI/CD consists of continuous integration (CI) and continuous delivery (CD). Used together, they automate the build, testing, and deployment of an application, so that DevOps teams can ship code changes faster and more reliably.
Combining the two can lead to some significant benefits to the business:
- Improving time to market, giving the opportunity to leapfrog the slower competition.
- Increased service stability, with less risk of an outage potentially damaging the company brand.
- Increased use of automation allowing teams more time to focus on innovation.
- Improved collaboration across teams, leading to more effective teams as a whole.
Where to start?
Well, if you’re looking to move further into developing AI/ML based apps, or even just want to get started on some CI/CD tooling for your current non/AI apps, in preparation for what’s to come, what better approach than to familiarize yourself with some of the tooling available from VMware!
There are many areas to look at when considering AI based apps. At VMware, our focus is on helping to build, run and manage those apps efficiently and securely.
We have a couple of areas to start, first, a platform for developing Machine Learning Based workloads, the second is for adopting DevOps through the use of Automation.
A great lab to help you on your way with setting up a platform to run machine learning based workloads is:
Accelerate Machine Learning in vSphere Using GPUs
(Search for “HOL-2247-01-ISM” on VMware Hands On Labs)
In this lab, you will learn how you can accelerate Machine Learning Workloads on vSphere using GPUs. Authors: Brad Bentley, Lan Vu.
To get started with on the automation and CI/CD journey, check out our other free VMware hands on labs, such as:
Advanced Topics in vRealize Automation
(Search for “HOL-2201-10-CMP” on VMware Hands On Labs)
This lab demonstrates how to implement more complex use cases in vRealize Automation, such as advanced cloud templates, using extensibility with ABX actions and vRealize Orchestrator workflows, custom day-2 actions, Anything-as-a-Service (XaaS), Active Directory integration, the Terraform Service and the Terraform Provider, ITSM integration with ServiceNow, using vRealize Code Stream for DevOps, and managing VMware NSX network topologies. Authors: Benoit Serratrice, Scott Bowe, Trisha Navarro, Tony Welsh
Thanks for reading!