This review focuses on the evolution of cloud computing and distributed ledger technologies (blockchains) over the last decade. Cloud computing relies mainly on a conceptually centralized service provisioning model, while blockchain technologies originate from a peer-to-peer and a completely distributed approach. Still, noteworthy commonalities between both approaches are often overlooked by researchers. Therefore, to the best of the authors knowledge, this paper reviews both domains in parallel for the first time. We conclude that both approaches have advantages and disadvantages. The advantages of centralized service provisioning approaches are often the disadvantages of distributed ledger approaches and vice versa. It is obviously an interesting question whether both approaches could be combined in a way that the advantages can be added while the disadvantages could be avoided. We derive a software stack that could build the foundation unifying the best of these two worlds and that would avoid existing shortcomings like vendor lock-in, some security problems, and inherent platform dependencies.
Over the last decade Cloud Service Providers (CSP) improved their infrastructures to host and operate cloud-native applications (CNA) in a pragmatic manner and a web-scale manner. This development has led to horizontally scalable system architectures such as microservices, corresponding deployment units like containers or unikernels, and recently serverless architecture approaches. The commonality in these designs is to make use of conceptually centralized computing, provided by public or private CSPs. This makes these kinds of architectures inherently prone to vendor lock-in [1]. Currently, a consideration for companies using CSP services is the implementation of multi-cloud hosted solutions, a design architecture were more than one CSP host a service. In this paper we consider a path forward and elaborate on a definition for distributed clouds and their service provision offerings in relation to incumbent solutions. The distributed cloud refers to a software architecture based on Distributed Ledger Technology (DLT), such as blockchains, to achieve an agnostic hosting medium for DApps. Our contribution is in the identification of a potential paradigm shift in the architectural design of the distributed cloud and the mechanisms enabling a shift towards distributed clouds.
The outline of this paper is structured as follows. We provide a short review of cloud-native designs over the last 10 years in Section II, to get a better understanding of the trends in current cloud engineering. One noteworthy consideration is the vendor lock-in dilemma [1], [2]. Once a cloud application is deployed to a cloud infrastructure it is often inherently bound to that (conceptually centralized) infrastructure [3]. This is the main downside of conceptually centralized service concepts and here distributed ledger technologies might provide new solutions. Therefore, Section III will investigate how distributed ledger technologies are maturing and categorizes three generational shifts that might provide solutions to overcome the lock-in aspect. Section IV illustrates how all this could be integrated into a consistent distributed cloud concept and how distributed ledger technologies could be used as software connectors for CSP independent and distributed services [4]. We will summarize our considerations in Section V to derive some conclusions regarding unifying opportunities and security implications.
Cloud computing emerged some 10 years ago to much chagrin of privacy conscious developers. In the first adoption phase it was likely that existing IT systems were simply transferred to cloud environments without changing the original design and architecture of these applications. Tiered applications have simply been migrated from dedicated hardware to virtualized hardware in the cloud. However, cloud environments are elastic. Elasticity is understood as the degree to which a system adapts to workload changes by provisioning and de-provisioning resources automatically. Over time, system engineers learned to understand the elasticity options of modern cloud environments better. Eventually, systems were designed for such elastic cloud infrastructures, which increased the utilization rates of underlying computing infrastructures via new design approaches like microservices or serverless architectures. This design intention is often expressed using the term cloud-native. Figure 1 shows an observable trend over the last decade.
It is often said that cloud-native applications are intentionally designed for the elastic cloud. Although this understanding can be broadly used, it does not guide and explain what a cloud-native application is exactly.
In case of dedicated servers applications (A, B) are deployed on physical servers. In consequence, the servers are often over dimensioned and have inefficient utilization rates.
Machine virtualization is mainly used to consolidate and isolate applications on virtual machine instead of dedicated servers. This increases the application density on bare metal servers but the virtual machine images (deployment unit) are very large.
Microservices can be seen as a “pragmatic” interpretation of SOA. In addition to SOA microservice architectures intentionally focus and compose small and independently replaceable horizontally scalable services that are “doing one thing well”. [5], [6] DevOps DevOps is a practice that emphasizes the collaboration of software developers and IT operators. It aims to build, test, and release software more rapidly, frequently, and more reliably using automated processes for software delivery.
Softwareization of infrastructure and network enables to automate the process of software delivery and infrastructure changes more rapidly.
Deployment units wrap a piece of software in a complete file system that contains everything needed to run: code, runtime, system tools, system libraries. This guarantees that the software will always run the same, regardless of its environment. Th
This content is AI-processed based on open access ArXiv data.