Основа это DevOps, приложение может быть максимально простым
MissionYour goal for the project is to build application that's scalable and reliable. You're going to use Kubernetes to achieve that.
What kind of applicationYou'll need to come up with an application that's has just one meaningful function. Good examples of those are:
· Machine learning application that's accepts new examples and returns predictions for them
· Application that solves one of the leetcode problems
Please note that the application itself does not have to be hard to implement because we're focusing on the DevOps part hereThe main function of your application is going to be exposed as web application such as it clients are able to use it with curl or requests Python library.
You must have two implementations of the main function to your application. We're going to call the first one The Proper Solution and the second one The Fallback Solution
Proper solutionThis is the implementation where we're going to do our best in terms of the quality. For example, It might be the most sophisticated model with the full feature set and the best test score. This is what's supposedly running in our production.
Fallback solutionThis implementation isn't going to be used most of the time when everything is going fine. But whenever our proper solution implementation is not functioning, our setup is going have to resort to this fallback implementation. Therefore, it must satisfy different set of requirements: it must be much simpler and easier to implement than the proper solution. Because when things go wrong, we need our fallback to be reliable and performant, therefore we're ready to sacrifice some of the solution quality. For example when we're talking about machine learning models, this fallback implementation might be a simple Naive Bayes model or even rule-of-thumb solution.
Putting it all togetherYou're going to use Minikube cluster to run your application so you can use our Minikube Vagrant example as the starting point. Your application is to be exposed with Ingress Controller and we'll evaluate your project sending requests to your application and interacting with it with
kubectl. Both implementation are to be running with the proper one serving all the client requests. At some point we're going to break it and observe how your setup responds to it.
Сведения о критериях проверки *
The most critical part of the project is you managing to configure fault tolerant application. Extra credit will be awarded for being able to use what we've learned throughout the class like the following:
· Configuring CI/CD to build docker images
· Automated testing of your application
Please specify the URL to your project repository