Internally, TeSLA is composed by a set of multiple heterogeneous components which are created by different development teams in different programming languages and using different technologies. And those components have to communicate between them to make TeSLA work, which is a quite big challenge provided that each of them may require different requirements and conditions to run, so making them work altogether in the same computer machine is like a kind of mission impossible.
Luckily, nowadays there are technologies commonly known as ‘containerization’ that help with this problem. The basic idea is to isolate each application or component into its own box (called container) and let communicate between them as if they were separated machines, each one with its own configuration and requirements. As we had to choose one specific technology among many, we decided to use Docker containers (https://www.docker.com/), and time has given us the reason because it had become one of the most popular and used platform in the market.
Furthermore, the decision to use containerization will help us to satisfy two of the main goals for the third TeSLA pilot, which are ‘scalability’ and ‘monitoring’. Scalability means to easily grow the system to support more learners (we expect tens of thousands in third pilot), while monitoring means be able to watch in real-time which is the status and performance of the components of the system, and even taking decisions or actions in order to improve that performance. Both goals will be satisfied through the use of ‘Docker Swarm’ and the provisioning of a TeSLA Portal.
Docker Swarm, at a very high level, is a technology that enables to manage Docker containers altogether as a ‘cluster’ (word used to describe a group of computers that work together for a common purpose). On the other hand, TeSLA Portal is a piece of the TeSLA system which will cover several transversal features like licence management or deployment, as well as the mentioned features of scalability and monitoring. It provides a web graphical interface to make those administration tasks easier.
Containerization and Docker in particular are great technologies that are showing they great potential and becoming widely adopted. In the TeSLA project, Docker simplifies the integration of the different elements of the ecosystem. TeSLA infrastructure system is based in container technology. Why? Because there are many people programming in this project and they code with different languages, packets and libraries.
In the third pilot, one of the main challenges is the scalability. We need the system to support a big number of learners (tens of thousands). This is the reason why we move to Docker Swarm, the cluster of docker containers. The responsibility of Swarm is to create a cluster and interconnect the different servers, starting or stopping containers depending on the needs of each institution.
Although for the current status of TeSLA the scalability will require administrator actions, the combination of a detailed monitoring system and an API based scalability system open the door for future versions to automatically adapt TeSLA resources to the actual needs at any moment.
FUNDED BY THE EUROPEAN UNION
TeSLA is not responsible for any contents linked or referred to from these pages. It does not associate or identify itself with the content of third parties to which it refers via a link. Furthermore TESLA is not liable for any postings or messages published by users of discussion boards, guest books or mailing lists provided on its page. We have no control over the nature, content and availability of any links that may appear on our site. The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed within them.
TeSLA is coordinated by Universitat Oberta de Catalunya (UOC) and funded by the European Commission’s Horizon 2020 ICT Programme. This website reflects the views only of the authors, and the Commission cannot be held responsible for any use which may be made of the information contained therein.