Cloud migration is the process of moving data, applications or other business elements to a cloud computing environment. This topic is still of great relevance for companies that want to sustain a constant growth of their activities, while keeping up with the times. Cloud Computing benefits are countless, including: flexibility, cost reduction, data security, availability, and mobile access. These premises encourage the use of Cloud Databases to manage information in an efficient and secure way. In this background, the use case addressed in this thesis is introduced. The purpose is to develop a Python Client able to create a user-database interaction and all the functionality to manage data. In addition, it must comply with all the requirements of a high performance non-relational database, based on the key-value paradigm. The development alternatives are: use an existing solution (e.g. Requests module in Python) or implement it internally. After collecting information about the database, the requests and the services to be supported, the second choice was decided, since none of the other options had the appropriate features. In the design and development phases, the structure and the capabilities of our solution are described. The testing aims to support our implementation choice. Finally, we made some comparisons with clients adopted by other existing databases.
Cloud migration è il processo di spostamento di dati, applicazioni e altri elementi di business in un ambiente Cloud. Questo tema è tuttora di grande rilevanza per le imprese che vogliono sostenere una crescita costante delle loro attività, rimanendo al passo con i tempi. Negli ultimi anni tutto ciò che era svolto internamente ed in infrastrutture di proprietà subisce un lento processo di migrazione verso le risorse in cloud. I benefici del Cloud Computing sono innumerevoli, tra cui: flessibilità, riduzione dei costi, sicurezza dei dati, disponibilità e accesso in mobilità. Queste premesse incentivano l’utilizzo di Cloud Database per gestire in modo efficiente e sicuro le proprie informazioni. In tale contesto si inserisce il caso d’uso preso in esame in questa tesi. Viene presentato un database non relazionale ad alte prestazioni, basato sul paradigma key-value. L’obiettivo è quello di sviluppare un Client in Python che sia in grado di fornire tutte le funzionalità necessarie per creare un’interazione tra utenti e database e di gestire i dati. Inoltre, devono essere rispettate tutte richieste imposte dal sistema. Le alternative di sviluppo prevedono: di utilizzare una soluzione già esistente (es. modulo Requests in Python) oppure di implementarla internamente. Dopo aver raccolto le informazioni relative al database, le richieste e i servizi da supportare, si è deciso di optare per la seconda scelta, in quanto nessuna delle altre opzioni aveva le caratteristiche adeguate. Nella fase di design e sviluppo viene descritta la struttura e il funzionamento della nostra soluzione. Successivamente, tramite il testing, si è voluto giustificare la nostra scelta implementativa. Infine, sono stati svolti dei confronti con Client adottati da altri database in commercio.
Development of a high performance Python Client for a key-value NoSQL database
Paura, Gianluca
2020/2021
Abstract
Cloud migration is the process of moving data, applications or other business elements to a cloud computing environment. This topic is still of great relevance for companies that want to sustain a constant growth of their activities, while keeping up with the times. Cloud Computing benefits are countless, including: flexibility, cost reduction, data security, availability, and mobile access. These premises encourage the use of Cloud Databases to manage information in an efficient and secure way. In this background, the use case addressed in this thesis is introduced. The purpose is to develop a Python Client able to create a user-database interaction and all the functionality to manage data. In addition, it must comply with all the requirements of a high performance non-relational database, based on the key-value paradigm. The development alternatives are: use an existing solution (e.g. Requests module in Python) or implement it internally. After collecting information about the database, the requests and the services to be supported, the second choice was decided, since none of the other options had the appropriate features. In the design and development phases, the structure and the capabilities of our solution are described. The testing aims to support our implementation choice. Finally, we made some comparisons with clients adopted by other existing databases.File | Dimensione | Formato | |
---|---|---|---|
Thesis - Gianluca Paura.pdf
accessibile in internet solo dagli utenti autorizzati
Dimensione
2.24 MB
Formato
Adobe PDF
|
2.24 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/182985