With software development and release cycles continually getting shorter and shorter, faster reactions are needed from the creators. The market’s rapid growth and entering of new sectors requires the products to provide varying load capacity and extra services, rivaling that of the competitors.
The solution for these challenges is standardization, scaling and automation. In the world of software, these are built on containerization. Containers are replaceable, cloneable, maintainable. They don’t have external dependencies, they can run anywhere. They are isolated from each other, they only see what we allow them to see.
However, a new layer always brings extra complexity. Network connectivity, persistent data storage, authorization questions need to be solved. We cannot entirely forget about the lower layers either. We need to take care of the storage and uninterrupted availability of the container image files. Kubernetes deals with these and other container management issues.
The topic of my master’s thesis is building and operating a Kubernetes cluster, which runs Docker containers, on Amazon Web Services infrastructure; deploying applications on it, that use machine learning algorithms; and letting these apps connect to services running on Cloud Foundry.