1. Use Cases for DevOps
Before diving deeper into the technical aspects of DevOps, it is essential to differentiate between various use cases and implementations of the DevOps principles. Let's get to it.
2. DevOps
DevOps is a combination of tools, methods, and cultural aspects. DevOps sets a few main principles, like collaboration and MVP releases. But beyond these principles, DevOps is adaptable to various use cases and software management types.
The term DevOps is usually used concerning Software Development projects. Although there is a vast diversity of software types, we will divide them into two parts: Product Engineering and Infrastructure Engineering.
3. Infrastructure Engineering
Infrastructure, or infra engineers support the business by maintaining the information systems of an organization.
If the infrastructure is hosted by a cloud provider, the cloud vendors provide the resources over the internet and infra engineers access to these resources via a web browser and prepare them for their organizations use. Otherwise, they maintain organization's own hardware.
Infra engineers provide the systems that the rest of the company uses, secure them, and ensure they are aligned with the business's goals.
4. Product Engineering
On the other hand, Product Engineers design, develop and maintain the products using the infrastructure. They are the ones who come up with solutions that ease our lives like the banking apps or social media apps on our phones. As customers, we use online products daily but are often unaware of their infrastructure.
While Infra Engineering provides support to the rest of the business, Product Engineering serves the customer. They design the online products, create the Products, and provide a good user experience.
Both of these benefit from implementing DevOps by the use of MVPs and from the collaboration principle.
5. Data Engineering
Data Engineering is a part of the infrastructure engineering. Their primary role is to enable the collection and usage of data.
Once the product engineering builds a customer facing feature, data engineering creates the data pipelines to collect, store, and make data available for the organizations use.
6. DevOps vs. DataOps
There are various implementations of DevOps for particular types of Software Development outside of Infra and Product Engineering. Data Engineering and Machine Learning Engineering have very different job types, development processes, and outcomes than a regular software development project. DevOps's main principles apply to them as well. But they use other procedures and tools to enforce them. To emphasize their differences, the DevOps implementations they use are called DataOps and MLOps.
7. DataOps vs. MLOps
Data is the fuel for software. Most software ingest data, and make use with it. Data Engineers create pipelines to ingest and transform the data and pass it on to the Data Scientists and ML Engineers to analyze. DataOps tries to optimize the processes around creating and maintaining the data pipelines.
Machine Learning Engineering is a specialized form of software engineering that focuses on creating machine learning models. Machine learning models are used to make predictions for future, using the historical data. Creating ML models requires steps like data preparation, model training, and model testing. MLOps improves how machine learning models are trained, tested, deployed, and maintained.
8. No competition
When applied correctly, DevOps, DataOps, and MLOps are complementary to each other, and they could be used in sequence. Good code is absolutely necessary to achieve good data, which is vital for good Machine Learning models.
DevOps is the key to create good, high-quality code, as DataOps for successful Data Engineering, and MLOps to state-of-art Machine Learning.
9. Let's practice!
DevOps principles are applicable to almost all use cases, whether they are called DevOps, DataOps, or MLOps. Now let's practice what we covered in this lesson.