# name
CoreOs per a aplicacions robustes i escalables

# metadata.dc.description[].value
Treballs Finals de Grau d'Enginyeria Informàtica, Facultat de Matemàtiques, Universitat de Barcelona, Any: 2015, Director: Jesús Cerquides Bueno

# metadata.dc.description.abstract[].value
This project starts by researching the current software and architecture design trends to develop applications for the cloud. The main goal we want to achieve is to define both a system and an application architecture that enables small to mid-sized businesses to develop cloud-based scalable and resilient applications. Furthermore, the proposed architecture should not rely on the specific services provided by any of the big providers (e.g.: Amazon AWS, Google Cloud), to avoid tying the company's fate to those.
We reach this goal first researching about the different cloud-oriented software paradigms, and identifying the Operating System as a Service (OSaaS) offerings as a promising foundation on which to build our system. OSaaS is a very recent paradigm that lies between the more well-stablished Platform as a Service (PaaS) and an Infrastructure as a Service (IaaS) offerings. We pick OSaaS because it offers more portability than PaaS systems (that tie your system to the specific vendor platform) while still providing useful coordination and orchestration tools (whereas you must develop those yourself in IaaS
offerings).
We then compare two similar technologies in that space: MesOS and CoreOs. CoreOS is more strict in its approaches and offers a unified experience, whereas MesOS employs several semi-independent tools to provide a similar experience. After comparing these platforms we choose CoreOs to develop our
proposed architecture. Essentially, CoreOS is a minimal linux distribution specifically designed to run as a containerization host, plus a number of orchestration services to coordinate multiples CoreOS nodes in a cluster. As a result, it allows for the design of resilient and consistent services and applications (the two main things we want).
Next we analyze the requirements that our software must fulfill to exploit the capabilities of such clusters. We explore the 12 factor app concept, that describes a number of aspects to consider when developing software for the cloud. In doing so, we adapt some of these aspects and relate the general
guidelines to how these will affect the application performance within our CoreOS cluster.
Finally we deploy a small virtual cluster implementing our proposed architecture and experiment with it. We deploy several services and test their functionality and resilience. These experiments demonstrate that certain kinds of services (such as web applications) are better suited for our architecture, whereas others (such as databases) still present some unsolved challenges.

# metadata.dc.rights[].value
memòria: cc-by-sa (c) Miquel Puigdomènech Poch, 2015

# metadata.dc.rights[].value
codi: GPL (c) Miquel Puigdomènech Poch, 2015

# metadata.dc.source[].value
Treballs Finals de Grau (TFG) - Enginyeria Informàtica

# metadata.dc.title[].value
CoreOs per a aplicacions robustes i escalables