Platform Independent Job Workload Management
Koskela, Lauri (2020)
Koskela, Lauri
2020
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-11-20
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202010267474
https://urn.fi/URN:NBN:fi:tuni-202010267474
Tiivistelmä
Short-lived job workloads running on cloud platforms can utilize the scalability in cloud computing. A job only requires computing resources for the time it is executing. The platforms can dynamically and automatically provision resources for jobs when needed. Similarly, the platforms can release the resources when there are no jobs running. This brings cost benefits: cloud consumers only pay for the time the jobs are running and use the computing infrastructure.
Managing jobs and the cloud infrastructure automatically in software applications can be challenging. Job management services on cloud platforms are complex, and using them requires a considerable amount of information about the jobs and the platform. Applications that do job management must handle this information, even though it is not necessarily their concern. Additionally, this information and the job management in general are platform-specific. The job management code only works with the explicitly supported platforms. This makes testing and developing the job management code locally difficult.
This thesis studies solutions for easier programmatic job management. The main contribution of this study is a new job management system that can be used to run and manage jobs independently of any single cloud platform job service. The new system decouples the specifications of the jobs from the applications that manage them. This decoupling significantly simplifies job management code and makes it work with multiple job management services. The platform-independence makes job management code easy to develop and test, as identical code works both in production cloud environments and local development hosts. The new system is evaluated by interviewing software developers who have used it. The interviews indicate that the system makes developing job functionality easier.
Managing jobs and the cloud infrastructure automatically in software applications can be challenging. Job management services on cloud platforms are complex, and using them requires a considerable amount of information about the jobs and the platform. Applications that do job management must handle this information, even though it is not necessarily their concern. Additionally, this information and the job management in general are platform-specific. The job management code only works with the explicitly supported platforms. This makes testing and developing the job management code locally difficult.
This thesis studies solutions for easier programmatic job management. The main contribution of this study is a new job management system that can be used to run and manage jobs independently of any single cloud platform job service. The new system decouples the specifications of the jobs from the applications that manage them. This decoupling significantly simplifies job management code and makes it work with multiple job management services. The platform-independence makes job management code easy to develop and test, as identical code works both in production cloud environments and local development hosts. The new system is evaluated by interviewing software developers who have used it. The interviews indicate that the system makes developing job functionality easier.