{"id":590,"date":"2022-08-06T10:21:06","date_gmt":"2022-08-06T02:21:06","guid":{"rendered":"https:\/\/www.lcettsg.cn\/code\/?p=590"},"modified":"2022-08-08T00:26:23","modified_gmt":"2022-08-07T16:26:23","slug":"10-predictions-for-the-future-of-computing-or-the-inane-ramblings-of-our-chief-scientist","status":"publish","type":"post","link":"https:\/\/www.lcettsg.cn\/code\/?p=590","title":{"rendered":"10 Predictions for the Future of Computing or; the Inane Ramblings of our Chief Scientist"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">TLDR;<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>WASM will be everywhere: compile target, deploy target, IoT, plug-in ecosystems. This is already happening! (1-5 years)<\/li><li>Rust will continue to grow in popularity and will overtake Go in the next few years by the RedMonk index. (2 &#8211; 4 years)<\/li><li>A serious rival to Kubernetes will emerge. Bonus points if it uses WASM and encourages a GitOps style paradigm. (2-5 years)<\/li><li>The Blockchain ecosystem will implode, but who knows when. Possibly it will happen quietly and years later we\u2019ll talk about \u201c<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/AI_winter\" target=\"_blank\">the block-chain winter<\/a>\u201d. Who knows? (1-10 years)<\/li><li>Supply chain security will be big. There will be more hacks on the scale of SolarWinds (there probably have been already, we just don\u2019t know) in the next ~2 years. Supply chain tooling (I hesitate to say \u201csolutions\u201d) will be a big growth area, but the industry will still be slow to achieve widespread uptake (e.g. getting everyone to use SBOMs). (~2-10 years)<\/li><li>Barely a prediction, but serverless will continue to grow and will slowly become the dominant paradigm. (10 years? There\u2019s a lot of steam in Kubernetes.) However, it will also experience more <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">backlash<\/mark><\/strong> and \u201cfailure\u201d stories as people struggle to figure out how to architect systems for the new paradigm. (next 2 years)<\/li><li>We will start to see companies moving partially back to<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> on-prem<\/mark><\/strong> for cost savings. (2-5 years) This might be the most controversial\/unlikely idea here.<\/li><li>There\u2019s an<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> outside chance <\/mark><\/strong>of an AI building a multi-billion company<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> leveraging<\/mark><\/strong> smart contracts which <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">enslaves<\/mark><\/strong> the whole of humanity. (10-20 years)<\/li><li>OK, hopefully not, but there\u2019s the possibility of <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">mass disruption<\/mark><\/strong> across multiple industries from AI\/ML advances. I don\u2019t believe we will develop a general artificial intelligence, but instead will make big jumps in specific fields. This may involve jobs being wiped out <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">en masse<\/mark><\/strong> e.g. truck driving. It may surprise us what sectors are affected. (2-20 years) (I don\u2019t have a clue when, but changes will be sudden.)<\/li><li>On the same topic, GPT3 style helpers &#8211; effectively autocomplete for everything &#8211; will be widespread. Artists, writers, developers, operations, composers will all be using them. (1-4 years)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Programming Languages<\/h2>\n\n\n\n<p>I\u2019ll preface this by saying that I\u2019m not a programming language expert. It\u2019s one of those areas I feel I should know more about and would love to play more with!In recent years there seems to have been a swing towards typed languages &#8211; perhaps most notably TypeScript and Rust. TypeScript is now used in the majority of JavaScript frameworks and is one of the top 10 languages according to a recent&nbsp;<a href=\"https:\/\/octoverse.github.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Octoverse report<\/a>.&nbsp; Rust in particular I think will see a lot of growth, with more and more low-level software being written in, and in&nbsp;<a href=\"https:\/\/deprogrammaticaipsum.com\/the-great-rewriting-in-rust\/)\" target=\"_blank\" rel=\"noreferrer noopener\">some cases ported to<\/a>, Rust in order to achieve safety and speed. It also fits very nicely in the WebAssembly (WASM) ecosystem, as it can compile to a small WASM binary, mainly due to the lack of a runtime or garbage collection (GC). Having no GC is almost an oddity in modern languages and is due to Rust\u2019s unusual memory model and&nbsp;<a href=\"https:\/\/doc.rust-lang.org\/stable\/book\/ch04-00-understanding-ownership.html\" target=\"_blank\" rel=\"noreferrer noopener\">concepts of ownership and borrowing<\/a>. Looking at the&nbsp;<a href=\"https:\/\/redmonk.com\/sogrady\/2021\/03\/01\/language-rankings-1-21\/\" target=\"_blank\" rel=\"noreferrer noopener\">RedMonk index<\/a>, and considering the factors pushing Rust forward, Rust is likely to overtake Go in popularity within the next few years.<\/p>\n\n\n\n<p>Longer-term I think we will see new languages which build on concepts in Rust (primarily the memory model &amp; borrow-check) with higher-level features becoming popular. Taking the type-system to the next level, I believe a language with dependent-types (such as&nbsp;<a href=\"https:\/\/www.idris-lang.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Idris<\/a>) will make the jump from academia (or hobby language) to become a popular language used within industry.<\/p>\n\n\n\n<p>When developing microservices, especially for Kubernetes, it\u2019s beneficial to use a language that can produce small stand-alone binaries. Languages that compile to WASM are likely to also become more important, as they will provide access to various PaaS and edge platforms. Both these factors may limit the growth of languages such as&nbsp;<a href=\"https:\/\/elixir-lang.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elixir<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/gleam.run\/\" target=\"_blank\" rel=\"noreferrer noopener\">Gleam<\/a>, which rely on the Erlang VM. (Note that projects like&nbsp;<a href=\"https:\/\/github.com\/lumen\/lumen\" target=\"_blank\" rel=\"noreferrer noopener\">LUMEN<\/a>&nbsp;may prove me entirely wrong here.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes and Deployment Platforms<\/h2>\n\n\n\n<p>Over the next 5 years Kubernetes (also known as k8s) will continue to grow. But unless it does something to address the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">burgeoning<\/mark><\/strong> complexity, we will start seeing serious competitors. We are getting to the stage where running and maintaining Kubernetes is complicated enough that users are turning to managed services like GKE or employing specialist companies like Giant Swarm and Container Solutions to take care of Kubernetes. Even companies on managed services will be looking to specialist companies for support. This isn\u2019t necessarily a bad thing &#8211; these services empower organisations to focus on the core business &#8211; but it does mean that users who are reluctant to pay for these services will be attracted to simpler alternatives.<\/p>\n\n\n\n<p>It\u2019s worth noting that the complexity isn\u2019t just hidden under the hood. It\u2019s spilling out into the interface and impacting users. It\u2019s still fairly easy to hack at `kubectl run` and get a demo up and running. But running production apps and figuring out how to expose them securely requires understanding a wealth of different features that inevitably result in YAML files longer than most microservice source code.<\/p>\n\n\n\n<p>Why is there such complexity? A lot of it is evolution. We start with something simple (well, comparatively simple in the case of Kubernetes) and then add support for use case x. Then we realise it would be better if we did z and rewrite things but have to maintain backwards compatibility. This results in complexity that isn\u2019t inherent to the problem (accidental complexity). Meaning a new competitor can come along and replace it, as they don\u2019t have all the historical<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> baggage<\/mark><\/strong> and can learn from the achievements and mistakes of the past.<\/p>\n\n\n\n<p>To put it another way, increasing the number of supported use cases has led to the&nbsp;<a href=\"https:\/\/www.joelonsoftware.com\/2001\/03\/23\/strategy-letter-iv-bloatware-and-the-8020-myth\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u201c80\/20\u201d problem<\/a>&nbsp;&#8211; 80% of users only use 20% of the features, but everyone uses a different 20%. Taking away features is difficult. New competitors don\u2019t have this problem and can build a new offering around a smaller core set of features and potentially fix\/avoid other issues (\u00a3100 says it doesn\u2019t use&nbsp;<a href=\"https:\/\/www.youtube.com\/watch?v=8PpgqEqkQWA\" target=\"_blank\" rel=\"noreferrer noopener\">YAML<\/a>).<\/p>\n\n\n\n<p>As ever, we will see changes first at the smaller scale. Small companies and individuals will avoid k8s in favour of simpler solutions, probably some sort of open-source PaaS and probably utilising WASM. <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">Nomad <\/mark><\/strong>may start to gain significant uptake over the next few years. To begin with people will say \u201cyes but you can\u2019t use x at scale\u201d, but slowly the problems will be addressed and another sea-change in the industry will be upon us.<\/p>\n\n\n\n<p>The other possibility is that Kubernetes becomes an underlying infrastructure layer that is built on-top of by everything else. So small projects might use what appears to be a simple, streamlined PaaS (or FaaS like Knative), but that PaaS will be k8s under the hood. I\u2019m somewhat sceptical that this will achieve mass adoption due to the amount of resources required by Kubernetes and the tendency for Kubernetes complexities to \u201cshow through\u201d. It may be simpler and far more efficient to<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> distill<\/mark><\/strong> the best bits of k8s into a new system &#8211; we are seeing a lot of<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> exploratory<\/mark><\/strong> work here like\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/k3s.io\/\" target=\"_blank\">k3s<\/a>,\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/kcp-dev\/kcp\" target=\"_blank\">KCP<\/a>\u00a0and\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/thetirefire\/badidea\" target=\"_blank\">badidea<\/a>. On a side-note, internal platforms and tooling like\u00a0<a href=\"https:\/\/humanitec.com\/\">Humanitec<\/a>,\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/backstage.io\/\" target=\"_blank\">Backstage<\/a>\u00a0and\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/crossplane.io\/\" target=\"_blank\">Crossplane<\/a>\u00a0will become commonplace at large organisations, and this won\u2019t go away even if Kubernetes does.<\/p>\n\n\n\n<p>(For those of you interested in building a Kubernetes killer, it might be worth taking a look at Prolog and&nbsp;<a href=\"https:\/\/twitter.com\/adrianmouat\/status\/1097967361691394055\" target=\"_blank\" rel=\"noreferrer noopener\">this discussion<\/a>.)<\/p>\n\n\n\n<p>Whatever happens, Kubernetes is staying with us in some form for a long time. It\u2019s still evolving at a fast rate and we can see the technologies that are likely to influence the next few years. Custom operators and GitOps will become commonplace. Some innovative Kublet implementations like Krustlet (which supports running WebAssembly modules as pods) may start to get traction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WASM<\/h2>\n\n\n\n<p>WebAssembly has been around for a few years, but may now be <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">poised<\/mark><\/strong> to become <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">ubiquitous<\/mark><\/strong>. To understand why, it\u2019s probably easiest to think back (assuming you\u2019re of a certain vintage!) to the original slogan of Java: &#8220;<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Write_once,_run_anywhere\" target=\"_blank\">Write Once, Run Anywhere<\/a>&#8220;. We were told that Java would run everywhere and be completely portable. It was a big success, but nowhere near the levels claimed. Why not? Well:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>It was (or at least was perceived to be) slow and memory hungry. This pretty much killed it at the edge in particular.<\/li><li>You needed to learn Java (there are now a lot more JVM languages, but the choice was limited before).<\/li><li>Writing JVM implementations was not trivial and differences between them led to the curse of \u201cWrite Once, Debug Everywhere\u201d.<\/li><li>Running in the browser (applets) required installation of a plug-in.<\/li><\/ul>\n\n\n\n<p>Well, WASM addresses all of these points. It\u2019s relatively simple, efficient and small.&nbsp;<a href=\"https:\/\/github.com\/appcypher\/awesome-wasm-langs\" target=\"_blank\" rel=\"noreferrer noopener\">Many languages can be compiled to WASM<\/a>. The major browsers already have mature implementations. The security story is compelling &#8211; the WASI project lets you control exactly what WASM is allowed to do, what input it can read from, what it can write to and what kernel calls it can make.<\/p>\n\n\n\n<p>We\u2019re already seeing multiple projects adopt WASM for their plug-in system including&nbsp;<a href=\"https:\/\/www.solo.io\/blog\/the-state-of-webassembly-in-envoy-proxy\/\" target=\"_blank\" rel=\"noreferrer noopener\">Envoy<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/ewasm.readthedocs.io\/en\/mkdocs\/\" target=\"_blank\" rel=\"noreferrer noopener\">Ethereum<\/a>. This will only expand, as it makes so much sense; you can control what the plug-in is allowed to access at a granular level while allowing users to write the plug-in in whatever language they like.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.businessinsider.com\/webassembly-explained-developers-love-wasm-2019-5?IR=T\" target=\"_blank\" rel=\"noreferrer noopener\">WASM replaces containers<\/a>&nbsp;for a lot of use cases, and I expect to see more integrations with Kubernetes, building on the promise already shown by&nbsp;<a href=\"https:\/\/github.com\/deislabs\/krustlet\" rel=\"noreferrer noopener\" target=\"_blank\">Krustlet<\/a>. More interesting is the use of WASM to power new PaaS and FaaS platforms, including Fastly&nbsp;<a href=\"https:\/\/www.fastly.com\/products\/edge-compute\/serverless\" target=\"_blank\" rel=\"noreferrer noopener\">compute@edge<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/workers.cloudflare.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudflare workers<\/a>.&nbsp;<\/p>\n\n\n\n<p>We\u2019ll also see it used at the edge, primarily due to portability and disk size.<\/p>\n\n\n\n<p>That being said, there are still challenges. I wrote above about there being support for compiling multiple languages to WASM. This is true, but support is not equal. Rust seems to be the number one language <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">by a distance<\/mark><\/strong>, because it has good support and creates relatively small files (due to the previously mentioned lack of GC and runtime). AssemblyScript &#8211; a version of TypeScript adapted for WebAssembly &#8211; is also popular.\u00a0<\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Whilst<\/mark><\/strong> there is good support for other languages including Go, file sizes tend to be bloated by\u00a0 garbage collector implementations or runtime features. Other language implementations tend to be <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">in their infancy.\u00a0<\/mark><\/strong><\/p>\n\n\n\n<p>The same can be said for a lot of important infrastructure projects like&nbsp;<a href=\"https:\/\/wasi.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">WASI<\/a>, which defines how WASM interacts with the host environment. The&nbsp;<a href=\"https:\/\/bytecodealliance.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">ByteCode Alliance<\/a>&nbsp;will need to play an important role in quickly building out the ecosystem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Supply Chain Security<\/h2>\n\n\n\n<p>We\u2019ve been awful as an industry at this (partially due to\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=PLJJY5UFtqY\" target=\"_blank\">broken incentives in the security industry<\/a>). What\u2019s surprising is that it hasn\u2019t led to more attacks. We will see more and more cases where organisations are accidentally running \u201cpoisoned\u201d versions of software, because an attacker has been able to inject their own software at some stage &#8211; whether it is during compilation, distribution or updating. In some cases this will result in embarrassing <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">crypto-ransoms<\/mark><\/strong>, but we will start seeing more and more \u201cintelligent\u201d attacks where one organisation is compromised as a stepping stone to another organisation (ala SolarWinds).<\/p>\n\n\n\n<p>The answer to this problem is to start thinking about how we prove the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">provenance<\/mark><\/strong> of components running in production. It is <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">imperative<\/mark><\/strong> that\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Software_bill_of_materials\" target=\"_blank\">SBOMs<\/a>\u00a0and similar metadata become standard practice, and tools such as\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/in-toto.io\/\" target=\"_blank\">in-toto<\/a>\u00a0and\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/notaryproject\/nv2\" target=\"_blank\">Notary v2<\/a>\u00a0become commonplace. The GitOps approach described below also\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/www.weave.works\/blog\/gitops-compliance-and-secure-cicd\" target=\"_blank\">has a part to play<\/a>, by cleanly separating privileges between CI and deployment, as well as providing a clear trail of who changed what and why.<\/p>\n\n\n\n<p>The potential impact of future attacks is severe enough that governments are starting to wake up and take notice &#8211; the White House has&nbsp;<a href=\"https:\/\/www.whitehouse.gov\/briefing-room\/presidential-actions\/2021\/02\/24\/executive-order-on-americas-supply-chains\/\" rel=\"noreferrer noopener\" target=\"_blank\">issued an order<\/a>&nbsp;to review the US government\u2019s software supply chain and the UK has issued a&nbsp;<a href=\"https:\/\/www.gov.uk\/government\/publications\/call-for-views-on-supply-chain-cyber-security\" target=\"_blank\" rel=\"noreferrer noopener\">call for views on supply chain cyber security<\/a>. Hopefully this is the start of a coordinated effort to improve standard practice and build an ecosystem of tooling that is effective in preventing attacks.<\/p>\n\n\n\n<p>The optimistic prediction here is that these projects and approaches (or equivalents) get significant uptake. The pessimistic one is they don\u2019t and we see increasingly frequent, increasingly devastating, supply chain attacks.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Blockchain and Cryptocurrency<\/h2>\n\n\n\n<p>I\u2019m sorry <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">bros<\/mark><\/strong>, but whilst I think blockchain has its uses, the vast majority of companies in the area will fail. There just aren\u2019t enough viable use cases to justify the amount of money in the ecosystem. If you\u2019re in that area, I hope you\u2019re selling spades.<\/p>\n\n\n\n<p>One area that could prove me wrong is&nbsp;<a href=\"https:\/\/www.investopedia.com\/terms\/s\/smart-contracts.asp\" target=\"_blank\" rel=\"noreferrer noopener\">smart contracts<\/a>. Perhaps this is only because it reminds me of&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Accelerando\" target=\"_blank\" rel=\"noreferrer noopener\">Accelerando<\/a>&nbsp;&#8211; could we have AIs building an empire on the back of smart contracts? (And what will smart contracts be written in? You guessed it &#8211; WASM.)<\/p>\n\n\n\n<p>Another potential use case is in the previously mentioned area of supply-chain security &#8211; could we use a blockchain to identify the provenance of software?<\/p>\n\n\n\n<p>On \u201ccrypto\u201d more generally, I would love to see a real way to do micropayments and cheap (near zero cost) international money transfers. I\u2019m sure this was one of the promises of cryptocurrency but it hasn\u2019t been delivered. It\u2019s so hard to assess the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">myriad<\/mark><\/strong> of projects in cryptocurrency that I have no idea if this is likely to be achieved. At the moment we have companies like Coinbase, who charge significantly higher percentages than stock brokers for similar services.<\/p>\n\n\n\n<p>We have to stop the ridiculous wastage of resources that&nbsp;<a href=\"https:\/\/cointelegraph.com\/explained\/proof-of-work-explained\" target=\"_blank\" rel=\"noreferrer noopener\">Proof-of-Work&nbsp;<\/a>entails. In the short term the only real alternative seems to be&nbsp;<a href=\"https:\/\/www.investopedia.com\/terms\/p\/proof-stake-pos.asp\" target=\"_blank\" rel=\"noreferrer noopener\">Proof-of-Stake<\/a>&nbsp;and it\u2019s imperative that we move to such a model. I honestly hope that Bitcoin comes to an end, but the amount of money and number of backers with money mean that\u2019s probably not going to happen in the short term.<\/p>\n\n\n\n<p>Regarding NFTs, I&#8217;m again sceptical but enjoyed&nbsp;<a href=\"https:\/\/society.robinsloan.com\/archive\/art-objects\/#\" target=\"_blank\" rel=\"noreferrer noopener\">this article<\/a>&nbsp;from earlier in the year.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GitOps and x-as-code<\/h2>\n\n\n\n<p>The idea of GitOps is fabulously clean and simple. Store the required state of the Kubernetes cluster in Git. If the actual state of the cluster <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">deviates<\/mark><\/strong>, reconcile (which hides a lot of different possibilities). When you need to change the state, the Git repo is updated and the cluster is \u201creconciled\u201d in turn. The beneficial side effects are fantastic: we should be able to bring up an identical cluster by just cloning the repo, we have a full log of all changes, and an established mechanism for discussing and approving changes (pull requests). Implementing GitOps isn\u2019t as easy as it sounds however, and there are already a number of competing technologies &#8211; including Kubestack, Flux and Argo CD.<\/p>\n\n\n\n<p>We are already applying GitOps to the stack below Kubernetes e.g. using Terraform to bring up the cluster. With the rise of microservices, serverless, service mesh and SaaS components like queues and DBs, what were once application concerns &#8211; eg wiring functions together &#8211; have to some extent been pushed into the cluster or infrastructure layer. The obvious<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> corollary <\/mark><\/strong>to this is that YAML files aren\u2019t enough to build and define clusters any more. Instead we need full-blown programming languages.\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/www.pulumi.com\/\" target=\"_blank\">Pulumi<\/a>\u00a0saw this early on and jumped on it, but I think we might see a lot more iterations and potential solutions. Again, WASM may have a part to play here in allowing users to bring their own programming languages. The next few years will <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">clarify<\/mark><\/strong> this, but I expect a lot of hand-written YAML will be replaced with\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/aws.amazon.com\/cdk\/\" target=\"_blank\">CDK<\/a>, Pulumi and the likes, which are simpler to read and reason about &#8211; YAML and CloudFormation will effectively become compilation targets.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Serverless and FaaS<\/h2>\n\n\n\n<p>The above point leads into the uptake of FaaS solutions such as Lambda. This will definitely happen, but it\u2019s not the clean and simple change that some proponents seem to believe it is. Effectively using FaaS requires a different style of architecting applications. Queues and messaging infrastructure become essential components whose interaction must be fundamentally understood before reliable services can be built. What could previously be handled with data structures and function calls must be remodelled and thought out as a distributed system with support for error handling. It will take some time for best practices and design patterns in this space to become standardised and common knowledge.<\/p>\n\n\n\n<p>At the same time, it\u2019s not clear to me that Lambda will take all here. The edge computing FaaS offerings from Cloudflare and Fastly are compelling, offering impressive performance and scaling as well as language flexibility through WASM. The downside is they lack the supporting infrastructure of the cloud providers, who at the same time are building out their own CDNs to neutralise their advantage. All of these offerings suffer from being proprietary, which scares many companies with thoughts of \u201clock-in\u201d. For this reason, open alternatives like&nbsp;<a href=\"https:\/\/knative.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Knative<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/www.openfaas.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenFaaS<\/a>&nbsp;are popular and further fragmenting the market.<\/p>\n\n\n\n<p>Serverless in the broad sense (both FaaS and SaaS apps like databases and queues) will&nbsp;<a href=\"https:\/\/www.ustream.tv\/recorded\/114861049\" target=\"_blank\" rel=\"noreferrer noopener\">become the dominant paradigm<\/a>, but the road there may be bumpier than we expect. The next few years will see both success stories (\u201cwe saved 10k a month by moving to serverless\u201d) and disaster stories (\u201cwe abandoned serverless after it cost us 10k a month\u201d).&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AI and Machine Learning<\/h2>\n\n\n\n<p>This is the joker in the pack that scares me. I touched on AI companies running smart contracts, but that\u2019s really the sci-fi fan in me rather than the<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> pragmatist<\/mark><\/strong>. We can get a better idea of what\u2019s happening by looking at what&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.forbes.com\/sites\/bernardmarr\/2020\/10\/05\/what-is-gpt-3-and-why-is-it-revolutionizing-artificial-intelligence\/\" target=\"_blank\">GPT3<\/a>&nbsp;(<a rel=\"noreferrer noopener\" href=\"https:\/\/arxiv.org\/abs\/2005.14165\" target=\"_blank\">original paper<\/a>) can do and where we are with self-driving trucks and cars. Will I be able to write a blog post with the quality of a George Orwell essay? Will all authors start using AI as a co-author and editor? Truck driving is one of the biggest sources of employment in the US &#8211; how many of them will be replaced with AIs in the decade? Just how many jobs in how many industries will be displaced? (For some more &#8211; and better researched &#8211; predictions take a look at Sam Altman\u2019s&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/moores.samaltman.com\/\" target=\"_blank\">articles<\/a>&nbsp;and&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.ted.com\/talks\/the_ted_interview_the_race_to_build_ai_that_benefits_humanity_with_sam_altman\" target=\"_blank\">interviews<\/a>.) Or is it just another <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">hype<\/mark><\/strong>-cycle?<\/p>\n\n\n\n<p>In the short term, the major change seems to be AI \u201chelpers\u201d and \u201cautocomplete\u201d based on&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/openai.com\/blog\/gpt-3-apps\/\" target=\"_blank\">GTP3<\/a>&nbsp;and its successors will be everywhere. If you\u2019re writing a blog, it will help complete your sentences. If you\u2019re developing a web app it will complete your methods. If you\u2019re writing a song, painting a picture, sketching an engineering plan, \u201chelp\u201d is at hand. Those of us that <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">eschew<\/mark><\/strong> such help are likely to be left behind.&nbsp;<\/p>\n\n\n\n<p>Bringing things back to concrete developments in cloud computing, this also mirrors the growth of&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.infoworld.com\/article\/3603953\/what-is-the-ai-in-aiops.html\" target=\"_blank\">AI Ops<\/a>&nbsp;&#8211; where machine learning is used to analyse logs and <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">telemetry<\/mark><\/strong> data from a running application in order to identify issues and areas of improvement.<\/p>\n\n\n\n<p>I don\u2019t believe we will develop a&nbsp;<a href=\"https:\/\/bdtechtalks.com\/2020\/05\/13\/what-is-artificial-general-intelligence-agi\/\">general artificial intelligence<\/a>&nbsp;<a href=\"https:\/\/bdtechtalks.com\/2019\/11\/11\/martin-ford-architects-of-intelligence-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">any time soon<\/a>, so drastic changes are likely to be limited to various industries and use-cases. But the changes to those sectors may still be a complete revolution. These changes are likely to happen suddenly and the benefits will go to a small number of companies that own the technology, furthering the economic splits in society.<\/p>\n\n\n\n<p>My fear stems from knowing that I haven\u2019t even imagined some of the possibilities, and with AI changes can happen almost overnight. Sci-fi authors often talk about the \u201csingularity\u201d &#8211; broadly speaking the idea that when AI crosses a certain point, change will accelerate and humans will be unable to predict or keep up with progress. Some views on this may be <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">hyperbolic<\/mark><\/strong>, but I absolutely believe that AI is going to have major societal impacts we haven\u2019t foreseen.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rise of the Hybrids<\/h2>\n\n\n\n<p>There seems to be a lot of activity in the on-<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">premise<\/mark><\/strong>, bare-metal and hybrid markets at the moment, from both new players and old. This isn\u2019t a sector I follow closely, so again this may be off-target, but I\u2019m going to continue <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">babbling<\/mark><\/strong> anyway.<\/p>\n\n\n\n<p>It might look from the outside that everything is moving inevitably towards the public cloud, but I believe we\u2019re at the start of a swing back towards on-prem and a hybrid mix. The traditional hardware companies like Dell and HPE may have made a lot of mistakes along the way, but they seem to all be moving towards a *aaS model, where consumers pay for what they use as they go. At first this sounds incompatible with having on-premise hardware, but presumably it means vendors will ship HW with excess capacity with guarantees of fast delivery of further HW if required. An interesting thing about this model is it allows a balancing of commitment, CAPEX and OPEX. Want a lower monthly per instance cost? Agree to a 5 year contract and\/or buy HW up front. Want a more flexible model as you figure out your business model? Take a 1 year contract but higher per-instance fees.<\/p>\n\n\n\n<p>This model is exemplified by HPE\u2019s GreenLake and Dell\u2019s Project Apex. Given IBM\u2019s recent acquisitions and existing products and solutions, it\u2019s a fair guess that they will make similar moves in the market.&nbsp;<a href=\"https:\/\/www.nutanix.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Nutanix<\/a>&nbsp;are also clearly in this area, providing a software control plane backing onto cloud resources and\/or on-prem HW. The importance of the control plane is hard to overstate &#8211; the model will only work if it\u2019s possible to easily integrate hybrid resources and maintain the infrastructure. Newcomer&nbsp;<a href=\"https:\/\/oxide.computer\/\" target=\"_blank\" rel=\"noreferrer noopener\">Oxide<\/a>&nbsp;presumably also have some&nbsp;<a href=\"https:\/\/www.datacenterknowledge.com\/hardware\/why-your-servers-suck-and-how-oxide-computer-plans-make-better\" target=\"_blank\" rel=\"noreferrer noopener\">innovations planned<\/a>&nbsp;in this area, through providing better integration between HW and the various software layers to the hypervisor. It\u2019s also worth pointing out that this isn\u2019t a million miles away from what bare metal and data centre companies like Equinix and Scaleway currently offer and are building out &#8211; the difference perhaps being what do we mean by \u201con premise\u201d? Is it stuff that runs in my own data centre, or can it also be my hardware in someone else&#8217;s data centre?&nbsp; Do I have to own the hardware, or can I rent it?&nbsp;<\/p>\n\n\n\n<p>In the background, we also have an interesting set of dynamics between the cloud providers and the chip manufacturers. Cloud providers want to commoditise chips so that they\u2019re cheap and fast to swap out every few years. Chip manufacturers want to make sure they sell as much as they can to the cloud providers whilst at the same time retaining control in the market. To retain a diverse customer base with varying needs, chip manufacturers are likely to be supportive of the HPE and Dell moves and anything which promotes diverse on-premise and edge computing platforms. In contrast, cloud providers have&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/finance.yahoo.com\/news\/intel-amd-vs-aws-liftr-140800571.html\" target=\"_blank\">started building their own custom chips<\/a>&nbsp;and pushing into the<a rel=\"noreferrer noopener\" href=\"https:\/\/aws.amazon.com\/outposts\/\" target=\"_blank\">&nbsp;<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">on-prem<\/mark><\/strong> market<\/a>.&nbsp;<\/p>\n\n\n\n<p>The cloud providers also have a fight with CDN providers such as Cloudflare and Fastly. Both these companies have&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.bizety.com\/2020\/08\/29\/cloudflare-vs-fastly-the-future-of-cdn-edge-computing\/\" target=\"_blank\">started providing serverless computing services&nbsp;<\/a>which <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">utilise<\/mark><\/strong> their data centres to operate as close to the customer as possible (a form of \u201cedge\u201d computing). By being so much closer to the end user, there are major advantages for speed and &#8211; it seems &#8211; cost. Their big disadvantage is that they don\u2019t have access to the massive range of functionality offered by AWS etc &#8211; typically you get a data store and compute services and little more. Whilst I expect these services to grow enormously, the cloud providers are fighting back by aggressively expanding into the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/azure.microsoft.com\/en-gb\/services\/cdn\/#overview\" target=\"_blank\">CDN<\/a>&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/aws.amazon.com\/cloudfront\/\" target=\"_blank\">space<\/a>.&nbsp;<\/p>\n\n\n\n<p>Given the&nbsp;<a href=\"https:\/\/a16z.com\/2021\/05\/27\/cost-of-cloud-paradox-market-cap-cloud-lifecycle-scale-growth-repatriation-optimization\/\" target=\"_blank\" rel=\"noreferrer noopener\">potential cost savings<\/a>&nbsp;and \u201clock-in\u201d avoidance, we will start to see some companies moving \u201cback\u201d to on-premise\/hybrid. The cloud will continue to be dominant, especially in the start-up space, but established companies will be looking to see if they can make significant OPEX savings. Perhaps the more difficult question is who will be the biggest winner from this movement &#8211; the traditional hardware vendors, the bare metal and data centre providers, edge computing providers, cloud providers or management plane software vendors?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Quantum Footnote<\/h2>\n\n\n\n<p>Quantum computing is another area where you could write everything I know on the head of a pin and <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">poke<\/mark><\/strong> it in my eye.&nbsp;<\/p>\n\n\n\n<p>Given quantum computing involves vacuums and temperatures near absolute zero, it seems unlikely that we will be getting quantum laptops anytime soon. In fact, the costs are so great, that only massive corporations and governments are able to afford their own quantum computers. This doesn\u2019t cut out the public from quantum computing however &#8211; the major cloud providers have all announced&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/blog.google\/technology\/ai\/unveiling-our-new-quantum-ai-campus\/\" target=\"_blank\">research into quantum<\/a>&nbsp;and&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/aws.amazon.com\/braket\/\" target=\"_blank\">services<\/a>&nbsp;for&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/azure.microsoft.com\/en-gb\/services\/quantum\/\" target=\"_blank\">rent<\/a>. They offer potentially large breakthroughs in&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/NP-completeness\" target=\"_blank\">NP Complete<\/a>&nbsp;problems, such as molecular simulations and optimising logistic problems. This may also mean that&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/blog.cloudflare.com\/towards-post-quantum-cryptography-in-tls\/\" target=\"_blank\">TLS is broken for those that can afford it<\/a>. At the moment it seems that quantum computing will provide important speed-ups for some classes of problem, but won\u2019t <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">upend <\/mark><\/strong>computing in the short term. The real impact may be in speeding up research in scientific fields (think physics, chemistry and biology simulations) which may in turn lead to breakthroughs elsewhere.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Quantum_teleportation\" target=\"_blank\">Quantum teleportation<\/a>&nbsp;seems more likely to lead to important breakthroughs that are fundamentally important to the public &#8211; could we have faster than light&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.wired.com\/story\/quantum-internet-is-13-years-away-wait-whats-quantum-internet\/\" target=\"_blank\">high-bandwith communication<\/a>&nbsp;between opposite ends of the earth (and beyond!)? Again, I think we are some way off the technology affecting <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Joe Public.<\/mark><\/strong><\/p>\n\n\n\n<p>inane[\u026a\u02c8ne\u026an]:adj. stupid or silly; with no meaning \u611a\u8822\u7684; \u65e0\u610f\u4e49\u7684\u3002<\/p>\n\n\n\n<p>ramble:1.\u6f2b\u6e38\uff0c\u6f2b\u6b65\uff08\u5c24\u6307\u5728\u4e61\u95f4\uff09;2.\u6f2b\u8c08; \u95f2\u804a; \u4e1c\u62c9\u897f\u626f\uff1b3.\u8513\u751f; \u6500\u9644\u751f\u957f<\/p>\n\n\n\n<p>premises: the building  and land near to it that a business owns or uses(\u4f01\u4e1a\u7684\uff09\u623f\u5c4b\u5efa\u7b51\u53ca\u9644\u5c5e\u573a\u5730\uff0c\u8425\u4e1a\u573a\u6240\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1981\" height=\"561\" src=\"https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0682.jpg\" alt=\"\" class=\"wp-image-604\" srcset=\"https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0682.jpg 1981w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0682-1000x283.jpg 1000w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0682-500x142.jpg 500w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0682-768x217.jpg 768w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0682-1536x435.jpg 1536w\" sizes=\"(max-width: 1981px) 100vw, 1981px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"2000\" height=\"874\" src=\"https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0683.jpg\" alt=\"\" class=\"wp-image-609\" srcset=\"https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0683.jpg 2000w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0683-1000x437.jpg 1000w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0683-500x219.jpg 500w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0683-768x336.jpg 768w, https:\/\/www.lcettsg.cn\/code\/wp-content\/uploads\/2022\/08\/img_0683-1536x671.jpg 1536w\" sizes=\"(max-width: 2000px) 100vw, 2000px\" \/><\/figure>\n\n\n\n<p>burgeon\u82f1[\u02c8b\u025c\u02d0d\u0292\u0259n]verb: tg begin to grow or develop rapidly \u6fc0\u589e\uff1b\u8fc5\u901f\u53d1\u5c55<\/p>\n\n\n\n<p>nomad[\u02c8n\u0259\u028am\u00e6d]:n. a member of a community that moves with its animals from place to place \u6e38\u7267\u90e8\u843d\u7684\u4eba<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TLDR; WASM will be everywhere: compile target, deploy t [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-590","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=\/wp\/v2\/posts\/590"}],"collection":[{"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=590"}],"version-history":[{"count":15,"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=\/wp\/v2\/posts\/590\/revisions"}],"predecessor-version":[{"id":615,"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=\/wp\/v2\/posts\/590\/revisions\/615"}],"wp:attachment":[{"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lcettsg.cn\/code\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}