Modernization is a marathon when it comes to moving enterprise applications to the cloud. While cloud computing has been around for over a decade, most organizations and applications still run on-premises. Familiarity with old ways holds people back from taking a leap forward. Migrating to the cloud brings with it new challenges. Much of these challenges are to do with complexity. There is more complexity at every layer — infrastructure, networking, application logic, and frontend UI. While the past decade was about showing that cloud can do what on-prem can do — and do it better and cheaper — the next decade is going to be about why the cloud is way easier than on-prem. A key piece of this puzzle is to enable abstraction at every layer and make the complex simple. At the last KubeCon, Kelsey Hightower said that “serverless is about eliminating as much infrastructure as possible.” This is true not just of serverless but is true of the entire cloud computing industry right now. In this post, we take a look at the various ways that entire movements within the cloud computing space and individual vendors are striving toward this goal of eliminating infrastructure and simplifying cloud complexity.
1. Serverless computing
As mentioned above, serverless computing is one of the clearest indicators of this trend of lesser infrastructure. It went mainstream with the launch of AWS Lambda in 2014, which went on to become one of AWS’s fastest-growing products ever. Since then, there have been other competing vendor solutions from Azure and Google Cloud, and even open-source frameworks like the Serverless Framework, OpenWhisk, and OpenFaaS.
The idea behind serverless is to take server management out of the equation when it comes to application delivery. About a decade ago, this would have been a crazy idea. But today, the cloud has reached a level of maturity that enables this. An insightful post by Datadog shows that AWS Lambda has been adopted by most large enterprises and organizations that run container workloads. It is interesting to note that the rise of containers and Kubernetes has not inhibited the growth of serverless. In fact, they are complementary, often working together across a suite of applications.
AWS Lambda itself is being used in combination with other AWS services like SQS, DynamoDB, and API Gateway. By integrating these services, organizations can build new experiences that transcend traditional technical limitations. Rather than having to work around challenges with technology, organizations can now focus on their needs and let the technologies adapt to suit them.
2. Low code / no code / BaaS
Very closely related to the serverless movement, low code or no code — like the new AWS Honeycode — attacks the problem of complexity from a developer’s perspective. These solutions are also sometimes called backend-as-a-service (BaaS) as is the case with Google Firebase — a popular option for mobile app developers.
Programming languages have risen and fallen with the times. The list of top applications and platforms used by organizations keeps adapting and evolving every few years. This change means that organizations need to constantly break and rebuild from the ground up. However, going through this cycle of break-build-break slows down the pace of innovation. A better way would be to enable the quick building of applications and middleware integrations so that systems are more modular. That’s the challenge that low code is out to solve.
Low-code solutions provide an abstracted layer of application development tools that enable developers to quickly prototype and build production applications with minimal code. Low-code solutions come in different shapes and sizes. Some focus exclusively on simplifying the code while leaving the infrastructure open-ended. Others provide full-stack capabilities from development to middleware to cloud infrastructure.
By supporting multiple programming languages, low-code solutions enable polyglot programming where development teams can build applications with multiple programming languages. This is a big need in large organizations where there isn’t consensus across teams about which programming languages are to be used.
At the middleware level, low-code solutions have ready-made integrations with most commonly used enterprise applications and cloud services. This is a huge time saver and can help organizations go quickly from concept to prototype to production. As the organization’s needs change swapping out integrations and customizing them is easy.
At the infrastructure level, low-code platforms that provide their own cloud infrastructure act like serverless platforms that abstract away all the infrastructure management. Providing a tightly knit solution, low code can be the easiest and fastest path to application modernization and simplifying cloud complexity.
3. Platform-as-a-service (PaaS)
PaaS is a term that is less used these days with all the other competing alternatives around. However, PaaS platforms are still thriving in many segments of the cloud and should not be ignored.
The most widely used PaaS platforms are from the top cloud vendors. For example, Google App Engine was famously used by Snap until they decided to hedge their bets by having AWS as a backup as well.
Salesforce is one of the biggest PaaS vendors with its solutions like Force.com, Salesforce DX, and Heroku. These solutions enable developers to build applications quickly and with ease. They are not aimed at DevOps developers in general, but more specifically to Salesforce developers.
While the lines are blurring, the market has shifted more towards serverless and low code solutions than PaaS.
4. Kubernetes solutions
Kubernetes is the new Linux. It is the operating system of enterprise computing and is being adopted and embraced by every vendor alike. Kubernetes is by no means easy to manage and operate, but it began as a way to better manage containers in the cloud and simplifying cloud complexity. While running Kubernetes on your own is bold, especially when it comes to production applications, vendors have now made it much easier to operate Kubernetes clusters with ease.
The managed Kubernetes space, or Kubernetes as a service, has exploded in recent years with new vendors starting up every month and existing cloud vendors like Mirantis, Platform9, and D2iQ pivoting to shift their strategy to be fully Kubernetes-centric. CoreOS was acquired by Red Hat, which was in turn acquired by IBM — all in a bid for Kubernetes supremacy. Kubernetes has changed the playing field, and the game is now about who can deliver the best and easiest Kubernetes experience.
While these are more hands-on than the previous solutions, managed k8s services are drawing closer and closer to serverless solutions. Kelsey Hightower is a big believer in the future of serverless and has commented that Kubernetes and serverless will intersect at some point. He talks about MicroK8s from Canonical as an example of how Kubernetes deployments are being simplified.
It bears mentioning that vendor lock-in is something to be aware of. Going all-in with an opinionated platform means that you can’t easily move to another platform in the future. This is what holds organizations back from committing. However, the tech landscape of today is different and more open than ever. With governing bodies like the CNCF and open source tooling becoming more powerful than vendor tools, vendor lock-in is being addressed at every level. Vendors themselves are thinking of ways to be open and facilitate a way of operating that is multicloud by default. Microsoft has shed its anti-Linux stance of the past, and IBM is Red Hat’s parent organization.
When we look at the future of cloud computing, what’s certain is that the game has changed, the players have evolved, the playing field is wide open, and the opportunity is huge. And as it grows, simplifying cloud complexity becomes a must.
Featured image: Shutterstock