Deployment pipeline development at scale: automating software as a service
Abstract
In recent years, adaptability has become the most important aspect of software. As technology companies grow, sustainable scalability and increased security become the main goals for developers, while the company's goals become increased scalability and decreased development time. In this overlap of goals, the delivery model of Software as a Service has gained particular notoriety. This model has inspired the development of new types of tools, such as Content Management Systems, Continuous Integration Continuous Deployment Pipelines, and Progressive Delivery Tools. These tools, while beneficial, offer persistent disadvantages to the development of Software as a Service applications, such as high costs or high initial development time. Many companies, in all size classifications, have decided to build multiple applications for multiple clients, despite a large aggregate of code and design shared between apps. Within this market, there is a need for tools that allow developers to automate the process of creating SaaS apps. In this thesis, a new tool has been developed that allows for the automatic style change and packaging of any web application for use by many companies at once. The tool, titled Banquet, is a command-line tool and API which will allow programmers to create CICD pipelines in a fraction of the time of normal development. This enables a low-cost, low development time solution for building Software as a Service that is abstract and multifaceted to fulfill as many use cases as possible. The tool utilizes some of the most prominent technologies of pipeline development and is open for customization to allow more technologies to be added. This makes Banquet essential for serving elaborate apps for many companies.
Degree
M.S.