A not Distant Future of Cloud Computing

Nelu Mihai
18 min readAug 19, 2019

--

Series: A Venture Capitalist and an Entrepreneur in Clouds

Nelu Mihai, Tiffine Wang

Prolog

This article has the goal of providing some personal perspective about what may be the next developments in the cloud, what we consider it needs to be fixed, and what may be future trends. We try to address topics, such as the missing theoretical model of cloud computing, cloud computing as a programming paradigm, time and timing of applications, security, quantum computing in cloud, edge computing, multicloud networking, social implications of cloud, the functional model of cloud, data, information and knowledge, artificial intelligence and future of open source.

The intention is to have short paragraphs, which are a catalyst for new ideas, proposed improvements of current trends. We intend to express a thought not to exhaust or ultimately justify a theory.

On some topics, we take a contrarian approach with well-established trends and famed people. This is not because we want to have a different opinion, but we consider that they deserve a robust debate. The history of humankind and science shows that, in some cases, the conclusion of the majority is based on superficiality, inertia, fame, and power. By analyzing the data in-depth, we may conclude that these opinions are incorrect and not backed by reality or at least statistical probability. We do not claim that we are always right, but we consider that a dialectic approach is the best avenue to truth.

Introduction

Almost all server software used in the cloud was built some time ago and was designed for a single or cluster of servers. All cloud providers use Linux as the primary software/compute quantum. Linux is a technology built on principles described almost 40 years ago. Is Linux the right compute operating system for multi-cloud? Can it run applications designed for hyper distributed cloud computing or cloud native computing? How about containers or virtual machines? Are they the “quantum mechanics” for multi-cloud? How will we be able to schedule applications using millions of containers running simultaneously on different clouds by using linear schedulers capable of scheduling just several containers or pods (Kubernetes) at a time? We will perhaps need new technologies. What about data? The problem with data is not that we will not have enough space to store it, but how we can securely make sense of it, without necessarily processing every byte. Does it make sense to store all the data we acquire? We tend to neglect the carbon footprint of our data centers, but it is significant, especially for video streaming. The training of a single AI model can generate as much carbon as 5 cars in their lifetime. Can we build data centers, which are more efficient but also generating more processing power?

And above all, do we have in place the right abstractions for cloud, multi-cloud or inter-cloud? Why do we need correct concepts? They will allow us to build more efficient data centers and applications. At the same time, it will have a significant contribution to saving our planet from climate change by limiting the CO2 emissions on Earth’s atmosphere.

A Theoretical Model of Cloud Computing?

A researcher noticed that though much computing today has become cloud computing, a search on “theoretical cloud computing” returns only nine results, whereas “theoretical computing” returns more than 22,000. A search on “theory of cloud computing” returned only 200 results, whereas “theory of computing” returned 7,000,000 (searches conducted 10 September 2018).

We need a mathematical model for the cloud. We need a model that satisfies the rigors of computer science, not just customer requirements.

We view cloud today as a distributed set of computers. A more elaborated model should consider the cloud as a generalized computing system. Going further, we should observe that processing of data, and inter-relationships or dependencies among processing engines and data are equally important in the cloud. This observation brings us to the conclusion that by using in conjunction the theory of field and theory of computing, we could describe the cloud as a computing field or computational field. Using a similar mathematical methodology, we can make an analogy of cloud computing with the gravitational field and the electromagnetic field.

We conjecture that modeling cloud as a computing field provides significant advantages by comparison to other paradigms.

Furthermore, it is possible to describe the cloud by an extension of the Turing machine applied to a distributed knowledge graph state machine with N-dimensional attributes allocated to every node or edge (such as costs, resources, data). This approach will take us into a computational-complexity space with scheduling and resource allocation problems being NP-complete.

Cloud computing needs an open architecture based on comprehensive and straightforward architecture.

Theoretically, we can describe cloud computing as a computing field.

Cloud computing is a programming paradigm

Cloud computing should be perceived as a programming paradigm, not as the phenomenon of transitioning of all enterprise local hardware and software to public cloud providers. It is not about running applications on third-party infrastructure. It is not about to stop buying hardware for our data centers and letting them decaying or disaffecting them. It is about how we program our applications to run natively on top of distributed processing and data. In this context, Cloud Native is a concept that looks more profound by comparison to terms such as public and private clouds, hybrid and multi-cloud. The location of resources should be irrelevant, and applications should be agnostic of them. The next generation of services or applications should be designed with native support for grid computing and grid data. The elasticity of scaling should be naturally supported at the software infrastructure level.

Current cloud representations are linear while the cloud is functionally multidimensional. We are not able today to programmatically evaluate (without human intervention) the performance or efficiency of a service running on multiple nodes. We have to use complicated dashboards and histograms to approximate them qualitatively. Why do we need so many dashboards? They are annoying, confusing, and inefficient. We need precise quantitative methods to calculate basic multidimensional cloud metrics and programmatically feed them as input into appropriate functions. If the cloud is monitored programmatically, the control of it can be done by implementing automation loops. By implementing automation loops, we will be able to predict cloud behavior and dynamically change its behavior. We can learn from the theory of automation used so widely and efficiently to run our industrial processes. Processing data should become an industrial process, which does not need any human intervention to control it.

Time and timing in cloud

Do we measure correctly the time used by applications with components running simultaneously on several nodes located on different data centers across the globe? PTP is doing a decent job at the network level, but is NTP the correct timing protocol for cloud applications and services? Do we synchronize the myriads of containers, microVMs, and VMs efficiently? What is the standard multidimensional execution unit in the cloud? Should time become a natural semantics of cloud programming? This approach would allow us to write deterministic cloud software with predictable behavior and thus easier to control.

We are using cloud technologies, which are not suitable for multidimensional or cloud native applications, services, architectures, software, or hardware. What about time and its impact on processing; timing, and its implications on the synchronization of inter-processing and data dependencies? Maybe, in cloud computing, time is not absolute as we consider it today, but relative as in the theory of relativity?

Cloud security

Currently, security is an afterthought in the cloud. It is not built-in in its DNA. The zero-trust concept is the correct tactical step forward. However, diverting all traffic to a public cloud to check it for security breaches and resending it back to enterprise, after cleansing, cannot be the future, despite being now in fashion for functionalities such as firewalls, intrusion detection, etc. It will increase the Internet traffic, and the technology will fade away as the public cloud concept is evolving into the hyper distributed cloud. It will negatively contribute to climate change. The principle of least privilege is a well-accepted security concept in the cloud; we should adapt it to the processing as well. Over-processing of data does not make it more secure: this is the principle of less processing. We should focus on qualitative, not quantitative processing. We believe that the long-term solution is hardware-based with security processing done at the endpoints. Peer-to-peer secure transactions will become the norm. Blockchain technologies will play a significant role if cheap security processors support them. The future of cloud security is not in aggregating processing in public clouds but in (i) improving endpoints’ security capability, (ii) correlated with support from “mobile security agents” crawling the Internet and (iii) implementing unique identifiers for every API. APIs should be defended, not just users and applications: security at the microscopic level.

Current cryptography relies on a simple principle of asymmetry: it is easier to do some things than undo them. With symmetric cryptography this imbalance of asymmetry is exponential. Adding one bit to the key size increases the computational complexity with 1%, but doubles the cost to break it. With the cloud, we can naturally increase the size of the keys, split them into many parts, and stored them in different computes in different clouds. We should be able to change their locations like shuffling a deck of cards randomly. We are secure in the foreseeable future from the menace of quantum computing breaking current security mechanisms. However, hackers using quantum computing may be able to create new algorithms capable of overcoming our advances.

What about quantum computing?

Will quantum computing influence cloud computing? Many engineers, when talking about quantum computing, think about higher speed and processing power. But a significant value of quantum computing will be to help address and solve new types of problems in the class of TSP problem of Hamilton and The seven bridges in Konigsberg of Euler. Quantum computing will take graph theory to a new level and will allow us to use multidimensional optimization theory to run workloads more efficiently, predictably. Today, we are wasting many billions of dollars on the cloud bills and are destroying the world with carbon emissions of our data centers as multidimensional optimization is an afterthought, not part of the cloud DNA. Quantum computing will help increase, at a massive scale, the parallelism of applications and assume the control of interrelationships among them. Quantum computing can make optimization a modus vivendi of cloud computing. Can quantum computing extend superposition and entanglement at the macroscopic level, as well (i.e., at the application level)? That will be a game-changer. Quantum computing could scale exponentially if quantum chips could hold just one more qubit from one generation to the next or if qubits could be more precise from one generation to the next. Or maybe quantum computing is not even achievable, is a chimera as some researchers claim.

A useful quantum computer needs 1000–100,000 logical qubits and to process a set of continuous parameters that is larger than the number of subatomic particles in the universe. How significant is this number? Well, it is 2^1000 or around 10^300. How are we going to keep errors under control, for 10^300 continuous parameters that must be processed?

The development of large scale quantum computing may end up being too difficult for one single company. This effort needs the resources of an entire country of the scale of the USA. An Apollo equivalent program for quantum computing may be necessary. In any case, quantum and cloud computing could exponentially amplify each other.

Edge computing

Edge computing is, in fact, an aspect of the evolution toward hyper distributed cloud computing. As we underscored above, cloud computing is a programming paradigm that will morph itself in time into native cloud computing. Applications implemented on the native cloud should run naturally on distributed computation and data grids designed with built-in elasticity of resources and data. All devices capable of computational processing should be able to participate latently in the universal cloud while, at the same time, be an access point for every user. The logic should be intelligently deployed close to the data acquisition points to minimize the amount of transferred data. Moving petabytes of data from the edge to core, to process it on a public cloud, does not make any sense. Increasing the wireless communication bandwidth with 5G and the next generation of wireless technology are making the edge more accessible to data-hungry applications.

5G will transform the Internet in a universal LAN where the bandwidth of connectivity will not be anymore a bottleneck. In conjunction with the continuous evolution of local memory technologies and processing power, 5G will make video streaming the modus vivendi of human-machine-human communication.

The evolution of edge cloud computing is happening in parallel with another transformational trend: the distributed generation of electrical power. We are deploying hundreds of millions (soon billions) of edge devices generating locally electrical energy from wind and solar. Every single wind generator or solar module can become not just a generator of energy but also a computing processing engine. The triad local energy producer-processing power producer-5G is the perfect technology combination needed for building edge micro-clouds, which do not require centrally generated energy. Every wind generator or solar installation can become a micro data center. The tremendous power of large numbers will be the development engine of edge computing.

Will software eat the world?

Marc Andreessen has successfully coined the phrase “Software will eat the world.” Let’s think about that. How about the billions of smartphones, trillions of IoT devices, and hardware chips needed for them? If we compare the semiconductor Wall Street Index with the software IT index, we notice that the former has grown significantly higher than the latter. We have to re-evaluate the importance of micro, nano, and pico hardware. A new generation of microchips based on quantum computing will allow us to run complicated algorithms closer and inside hardware. The current security problems on the Internet and cloud cannot be solved without a new generation of integrated chips. Software is not the solution of cyber-security because the software’s logic is easily accessible and will be penetrated sooner or later. The simpler the software, the more secure the Internet will be. How about robotics? What can software alone do without mechanical and electronics support? The duality software-hardware is as essential as the space-time concept in theory of relativity, wave-corpuscle in nuclear physics and electricity-magnetism in electromagnetic field theory.

How about networking?

Survivability and scalability are essential attributes for the architecture of the Internet. However, cloud infrastructure needs to be efficient from performance and cost standpoints. It should be designed differently than the Internet, by inserting in the system knowledge about the entire cloud topology and some of its state. To send a packet on the Internet, basically, three software objects are needed: source, destination, and the next hop. Only some distributed state is shared, and there is almost no global state.

Nevertheless, the design of modern hyper distributed clouds will include global state, and this will allow us to build efficient applications with minimum power consumption. Let’s make an analogy. The cloud information model should be designed using a model similar to federated countries: with a large enough local state but also a relevant global state. This architecture will make it more efficient. We call this the principles of maximum minimorum of global state and the minimum maximorum of the local state. The new generation of cloud architecture may drive a novel design of the Internet. AWS is already hinting at that. We also anticipate that a new generation of specialized integrated chips will contribute to more intelligent network elements. With the advances of NFV, networks will become as programmable and open as general-purpose computers. Hopefully, in the future, we will not use any more IP addresses (layer three abstractions) when working with applications and services (layer 6–7 abstractions). This new revolution of network design will transition the design from “assembly language” (IP address, subnet masks, port numbers) to a higher level of abstraction of the application interfaces. From the evolution point of view, networking is now in the era of numbers or arithmetic, to make an analogy. However, one day, some modern al-Khwarizmi and Leibnitz will define the algebra and differential/integral calculus of networking. Early pioneering work at Bell Labs and the University of Columbia are the foundation of open programmable networks and software defined networking, but we still work with numbers in networking. We believe that cloud computing will accelerate the revolution of networking, as we need to invent more efficient networks.

Funny note: “A stateless application is a lifeless application.”

Many professionals talk about “stateless applications” and how different products address them. The claim that there are “stateless applications” borders ignorance. Containers are usually the main culprit for that. Each piece of code (even one single assembly instruction) has a state. A real application can have either a temporary or a persistent state, but it will always have a state.

The functional model of cloud

The launch of AWS Lambda has triggered the Serverless movement, which has propagated rapidly to all cloud providers and technologies. It is growing faster than other cloud technologies, but it is incomplete. Serverless is by far more straightforward than other techniques to implement cloud applications, but the user still has to handle the other resources explicitly: data, applications, databases, etc. We believe that a complete functional model of the cloud, agnostic from all resources perspective is achievable. This paradigm will have a tremendous impact on “builders” (as @Andy Jassy calls them). It will attract by far more implementers of cloud applications due to a new level of simplicity of working with the cloud. Serverless movement is just a temporary transition to a complete functional model of cloud.

Blockchain, the “quantum mechanics” of value management over space and time

We are using cloud technologies, which are not suitable for multidimensional cloud native applications, services, architectures, software, or hardware. Should all computers in the world have the ability to become, in an ad-hoc manner, part of multi-cloud processing? We have invested around $20B in Uber for promoting universal ride-sharing as a service. How about creating technologies, allowing all unused capacity of all computing capable devices (computes, smartphones, etc.) to create a universal cloud of clouds, available to everybody in an ad-hoc and on-demand manner. Blockchain can play an essential role in building a secure, peer-to-peer, and entirely distributed universal computing system. This approach could have almost infinite processing capacity (at the Earth scale), which guarantees the correctness and privacy of all transactions. Enterprise would be able to use this Internet Computer to run proprietary applications/services on it. Think about next Google or Facebook running on an open Internet. An Internet-scale computer will tremendously stimulate innovation and prosperity. We share these ideas with @Dominic Williams, the leading mind behind Difinity.org. We consider the Dfinity project one of the most revolutionary enterprises of our time.

Cloud computing and economics are intertwined. The physical outsourcing of software and hardware moves the center of gravity from capital expenses to operational expenses. “AWS is cheap as long as you do not use it too much.” Being able to account for and measure cloud activities at the “quantum” level is essential for the cloud economy. It is not about cents but micro, nano and pico cents. Blockchain allows the transition of microeconomics to quantum economics. By definition, the monetary system is based on discrete values. Well, blockchain creates a dualism discrete-continuum which enables us to “quantum-fy” (quantumfy) microscopic amounts almost at the continuum level. And that is essential for the management of micro-values at large scale, in space and time. It is as vital as the processing of error correction and noise elimination in micro and nanoelectronics. Without solving them, the integrated circuits industry would not have existed. Blockchain and cryptography will allow us to: (i) design viable business models for large scale cloud computing services that have a high rate of growth and (ii) also to quantify accurately small but impactful projects.

Artificial Intelligence

There is so much marketing about AI, but scientifically speaking nothing of high relevance happened in the last years. We need we make significant progress on fundamental research on unsupervised learning and AGI. The state-of-the-art intelligence of current systems is just mostly capable of approximating with high probability that a cat is a cat, and not a dog, and vice-versa (just kidding). Tremendous fundamental research is needed, not marketing hype! Many AI applications cannot function properly without a significant amount of curated data. The challenge of AI is to build systems that can operate with a limited amount of initial data, with the capability to acquire the needed data on their own and improve themselves without re-programming. AI should help us build applications without being required to be expert software engineers. AI software should be able to write software better than the vast majority of software engineers, similarly with how currently computers can play chess better than 99.99% of humankind. The human brain is our role model. If we can achieve 10% of its capability by using just 100 times more energy than our brain needs for that, well, that is progress. Data is not the correct “fuel” abstraction for AI. Our senses work with data, but the brain works with knowledge. The integrated circuits are made of sand, but they work with transistors and gates, not sand. Cloud computing provides AI with all the processing power needed to transition to unsupervised learning. On another side, AI can give cloud the engine for self-control and self-healing.

Cloud computing can help Artificial General Intelligence become a reality.

Data, Information, and Knowledge

Purpose-built databases are the new kid on the block. The complexity of cloud applications requires efficient handling and access to different types of data simultaneously. On another side, general-purpose databases can achieve that by having native cloud architecture. Soon, all databases: structured and unstructured, purpose-built, and general-purpose will become cloud native. In complex applications, it is difficult to apriori decide what type of databases we need for different kinds of data. Only after we start using the data and after some execution experience, we will be able to make the right association of a type of data with the correct database type. Here AI can help. We need to learn to work with knowledge. Let’s make an analogy: a picture is a data, a movie frame with associated sound is information, and a movie with its story is knowledge. By watching education movies, we accumulate knowledge, not data. A library of books is a universe of knowledge, not just data. AI should work directly with knowledge and let the system figure out how it can be decomposed in information and further in data. AI could latently decide how and where data should be stored: what type of databases. Databases may become an infrastructure commodity because AI will allow us to work directly with knowledge relieving us of the pain of discerning the correct kind of database needed. Cloud computing will provide the level of processing necessary to scale knowledge bases quasi infinitely.

Open source for cloud computing

“Unfortunately, we are seeing other examples where open source maintainers are muddying the waters between the open source community and the proprietary code they create to monetize the open source”, says @Adrian Cockcroft of # AWS in one of his blogs.

The current strategy of some entrepreneurs of using successful open source projects as a Trojan horse to raise venture capital and then transform them into a “muddied,” so-called “enterprise edition,” is a betrayal of open source principles. This “business plan” is a profitable “technique” to create quasi proprietary solutions for gigantic profits for some individuals, by taking advantage of thousands of great developers. In time, the initial open source project becomes inferior while the proprietary solution gets entrenched into customers, generating $100Ms in revenue. Some companies are faithful to open source principles and become successful, though. Maybe the open source community should do something about this deception by excluding from its ranks companies who are using the community as a jump-start toward proprietary solutions. The current open source model is very lucrative for some hundreds of “entrepreneurs” and unfair for millions of software engineers. Currently, open source movement has a bit of a moral crisis. Cloud infrastructure is an essential tool for open source communities to implement a fairer contribution-reward model and invent new business plans, which will benefit materially and morally all developers, not just a few.

The cloud can become a gigantic trading place, by ubiquitously making available the processing resources and by implementing platforms based on blockchain (capable of processing securely and accounting for micro-value). In this market, open source developers can trade their code, regardless of its size and complexity by using peer-to-peer transactions. Open source business should get inspiration from the music industry and help individual creators of software value to take advantage of their work.

Social implications of cloud

Can cloud computing stop the migration of brains from underdeveloped countries by making available to them the same computing capabilities as in the country they want to emigrate?

The Internet has provided access but not the means to make a living in many developing countries. Can a young Indian programmer work for Google in his village in India and generate high income, helping his country to evolve faster? Can a young kid in Central America study via the Internet in his town? Can he, after graduation, be later employed there by a company from South Africa to program robots for extracting the magic metal from goldmines?

And we need to talk about climate change. How many video adds are we forced to see without our consent? Every single one generates indirectly significant CO2, worse than cars running on gas! We are chasing the speed and performance of applications, but what about efficiency? The principle of least privilege allows cloud applications to run more securely with minimum restrictions. We should extrapolate this concept to the principle of least energy consumption to run high-performance applications with minimum use of energy. We learn in college that “optimization is the last step in software design”. Well, this may not be correct anymore. We have to design cloud software and infrastructure with optimization built-in from the beginning; we have to run services with optimization in mind, every millisecond!

Internet, cloud, and data centers are a significant negative contributor to climate change! The processing capacity of the cloud is essential to build systems generating energy with controlled thermonuclear fusion. Some exciting startups have been funded to tackle this crucial goal and help humankind create an infinite amount of clean energy at a low cost. Solar and wind energies are redefining the future of the distributed generation of electrical power. Controlled thermonuclear fusion will put the last nail into the coffin of coal usage and will become the primary centralized source of energy for data centers and clouds. We have to be smart enough to not stop it from happening based on the following prejudice: the presence of the word nuclear in its definition. By inertia, we often make the connotation between the words nuclear and bomb automatically. However, atomic physics was essential for cloud computing: electronics, integrated circuits, computers, the software would not have existed without it. “Nuclear” is a profound and transformational term.

Originally published at https://www.linkedin.com.

--

--

Nelu Mihai

Nelu is a computer scientist, technology visionary (as several venture capitalists describe him), Silicon Valley entrepreneur, and high tech executive