3 Building Applications on Kubernetes

 

This chapter covers

  • Setting up the DevOps side of the Machine Learning Platform
  • Dev Ops tooling for containerizing applications
  • Using a container orchestrator for deploying the applications
  • Automating container builds and deployment
  • Enabling monitoring of deployments to keep track of application performance

Setting up or interacting with a machine learning platform is one of a machine learning engineer's primary duties. Machine learning platforms may be of any shape or size depending on the organization where they are implemented, but most platforms share a large number of characteristics. The components of an ML platform have been thoroughly discussed in chapters one and two; in the next three chapters, we will concentrate on how to lay the foundation for such a platform.

If you have no prior exposure to this ubiquitous technology, you're in luck! We will start with the basics and gradually build up your knowledge. By the end of this chapter, you will be able to understand and use Docker, Kubernetes, and other DevOps tools to deploy and manage your applications.

3.1 Docker

3.1.1 Write application code

3.1.2 Write Dockerfile

3.1.3 Building And Pushing Docker Image

3.2 Kubernetes

3.2.1 Kubernetes Architecture Overview

3.2.2 Kubectl

3.2.3 Kubernetes Objects

3.2.4 Networking And Services

3.2.5 Other Objects

3.2.6 Helm charts

3.2.7 Conclusion

3.3 Continuous Integration And Deployment

3.3.1 Gitlab CI

3.3.2 Argo CD

3.4 Prometheus And Grafana

3.5 Summary