For well over a decade now, we’ve seen Microsoft, Google and Amazon competing fiercely in a cloud services war, with serverless computing being one of the biggest battlefields. We have been talking about various serverless technologies on numerous occasions here at Hentsu. For the most part, the term ‘serverless’ actually relates to a variety of topics, from public cloud technology in general, to ephemeral computing and grid computing. Now, let’s take a step back first to understand how things work.
Serverless Computing Explained
With the utilization of serverless computing, any company can essentially devote all efforts towards the core business without worrying about the underlying infrastructure that supports it. The business is charged by the serverless vendor based on computation. The benefit, of course, is not reserving and paying for any fixed bandwidth or servers being used. In short, serverless computing removes infrastructure management tasks like server or cluster provisioning, patching, OS maintenance, and so on.
Misconception About Serverless
The name ‘serverless’ can actually sound confusing to those who are unfamiliar with its purpose. So, serverless does not involve the exclusion of servers when running workloads, distributing applications, etc. Using serverless or rather serverless architecture is a reference to the basic notion of developers utilizing software that’s hosted within the public cloud space. Software developers use serverless tech to compose code and then run that code on a cloud platform, and then directing that code towards a specific task or goal.
AWS – Pros, Cons and Tools
Amazon is a powerful force in the realm of public cloud. The sheer amount of operations, services and tools that are being handled and delivered via AWS is staggering. All these services are pushed through a strong network of data centers. This unlocks an array of capabilities, massive resources and being able to handle a large number of users. AWS continues to grow at a breath-taking pace. It successfully outmatches its chief competitors (MS and Google) on various aspects.
AWS features next-generation tooling, and they are very good at pushing it forward. SageMaker, for instance, is a powerful service used to label, build, train, fine-tune and deploy machine learning models. Amazon also uses Lex, to power its Alexa services, its Greengrass IoT messaging service as well as Lambda (used for serverless computing). Lex unlocks a cutting-edge deep learning facets involving automatic speech recognition (ASR). It converts speech to text, and natural language understanding (NLU) to understand the point of the text. Building applications with these tools allows businesses to engage with users better than ever before. On the DevOps side, AWS also has a variety of in-house offerings. For developing and implementing code, you can opt for CodeCommit, CodePipeline, CodeDeploy, and more.
Lambda as a Business Model
Lambda is AWS’s main feature when it comes to serverless. With Lambda customers use a unit of code for a function or a task, to achieve certain results. The customer leases this piece of code for a certain amount of time until the required tasks are carried out. AWS then charges for the memory that’s used to carry out the function, and for the time this function or service is active. Simple and highly effective. To give you a bit more perspective on this, Lambda is tool that powers the biggest internet TV network, Netflix. Remember, this is a network that boasts over 190 million subscribers as of Q2, 2020.
Machine Learning and AI
In addition to SageMaker, and other AI-based tools and services, AWS also delivers something called DeepLens. This is AI powered camera is utilized for developing and deploying machine learning algorithms for optical character recognition, object recognition, image recognition, and so on. AWS also uncovered Gluon, which was created as an open-source deep learning library for both developers and non-developers. It’s used to build and quickly train neural networks, but without requiring any knowledge of complex AI programming.
Amazon does have a disadvantage and a lot of enterprises working with this particular public cloud provider will know it. AWS’s cost structure can be a bit difficult to understand. If a business runs complex and heavy workloads via AWS, managing costs effectively will not be easy. Such a drawback tends to ward off enterprises from using AWS services. To be fair though, Amazon’s vast array of tech, cloud-based services and tools, usually counterweighs these drawbacks.
Microsoft Azure – Pros, Cons and Tools
Serverless computing is a very hot topic on today’s tech market. There is a common misconception that Microsoft came late to the party. What Microsoft did is simply give itself a powerful kickstart by repurposing its own valuable software for the cloud. This includes Office, SQL Server, Windows Server, Dynamics Active Directory, .Net, Sharepoint, and more. Microsoft’s solutions and software have remained in use over the years. All these solutions are neatly integrated into the Azure suite, which remains the chief benefit of this provider. So, when users jump into Azure, they are usually quite familiar with the surroundings. Such characteristics build loyalty, especially from existing MS users and enterprises. For instance, Microsoft offers discounts for enterprises who are already using their software and this gives them a huge advantage over the competition.
On the serverless computing front, Microsoft has quite a few things on offer. Their services include powerful DevOps and helpful tools. These allow developers to build serverless applications from their own developer environment. Therefore, you can easily build, test and deploy functions, containers, and Kubernetes-based apps. Another benefit is getting cloud-hosted private git repos utilizing Azure DevOps. Setting up continuous integration/continuous delivery (CI/CD) is straightforward as well. Other advantages denote automatic package management, automatically triggering builds, and deploying to Kubernetes, Azure Web Apps, and so on. All of this is massively valuable for DevOps purposes. In response to AWS’s Lambda, Microsoft launched Azure Functions, their own powerful serverless computing tool. It is now used across the globe for simplifying complex orchestration challenges, faster solutions development, swift code deployment across multiple targets, and more.
ML for Serverless
That’s right, MS has its own way of employing AI and ML (Machine Learning) to improve your productivity. It’s possible to build, train, and deploy models on Azure Machine Learning. What’s more, Microsoft’s DevOps for machine learning lets you imbue your serverless apps with highly effective AI and machine learning algorithms. They’ve also introduced cognitive computing, which enables your serverless application to “see, hear, speak, understand and interpret” the needs of users via natural methods of communication. The complex process is accomplished with Azure Cognitive Services and using an API. MS also utilizes chat bots. The Azure Bot Service interacts intelligently with users via Skype, Microsoft Teams, Slack, Office 365, and Twitter.
On the negative side, huge traffic during the COVID-19 crisis has taken a toll on Microsoft’s communication apps such as MS Teams. However, the company strives to improve this with each passing month by adding a variety of features and functionalities. Of course, a major disadvantage that comes to mind with Azure is vendor lock-in (to be fair, that’s a problem for any PaaS solution). Over the years, Microsoft’s Azure Functions was said to have downsides. Deploying, authoring, testing, and executing a function was often too hard in any environment outside of Azure and the Azure portal. Mind you, it’s already being stated that MS has made efforts to improve this.
Google Cloud Platform – Pros, Cons and Tools
Experienced users instantly know the biggest benefits of Google Cloud Platform (GCP). Google is known for creating the Kubernetes standard. Their specialty involves high compute offerings. As a provider, they are known for featuring significant scale and load balancing. While Google Cloud competes on the market with powerful resources, they have hit the cloud market much later than AWS or Azure. They are not focused on enterprise, albeit they did launch cutting-edge tooling for DevOps. When it comes to machine learning, the company has presented some ground-breaking solutions as well.
Cloud Functions, App Engine, Cloud Run
Using the provider’s Cloud Functions gives you a chance to spin up code on demand, responding to events that originate from anywhere. It’s simple to create applications that scale from zero to global-scale. This is accomplished without provisioning or managing a single server. With App Engine, you can utilize well-known dev languages and tools. With zero server management or configuration deployments, developers can focus on building highly scalable applications without large management overhead. Furthermore, Google’s Cloud Run allows you to Run stateless HTTP containers on a fully managed platform or on Anthos. Also, another option is to utilize an open API and runtime environment built on Kubernetes – Knative. This enables you to run workloads anywhere.
Google’s huge advantage is its proprietary tools. For example, BigQuery and BigTable are based on Google’s ‘Colossus’ structure. The company utilizes Colossus for its own search architecture. Other providers can’t quite match that scale. Furthermore, another cool addition to G suite is Spanner. This product features atomic clocks to keep SQL databases synchronised between their data centres.
In all fairness, Google Compute is more the equivalent of AWS EC2 or Azure VMs, but it’s still a solid benefit of this provider. Google highlights this as their services and their basic compute platform. Supporting Windows and Linux, users can custom configure their platform or a get pre-defined machine type. As you’d expect, GCP concentrates on Kubernetes deployment, since this is the provider’s area of expertise.
As we mentioned earlier, Google has arrived a bit late to the cloud market. Consequently, the offerings aren’t as rich and varied as that of its Amazon and MS counterparts. Google doesn’t boast the number of global data centers like Amazon or MC – although it’s been noted that they are expanding in that area. Historically, in terms of moving to the cloud spaces, large businesses do not opt for Google too often. Google proved to be more of an DevOps focused and open-source focused provider. In terms of storage solutions, Google is a bit lacking, with poor backup options. Mind you, the provider does offer SQL and NoSQL support.
Anchoring Your Business to the Right Serverless Strategy
An enterprise may choose to rest its entire business process on the shoulders of any of the three public cloud providers. But in terms of serverless development and serverless technologies, it’s fundamentally about setting up the right strategy for your own business. To point is to anchor your business with a strong value to push it forward. In some instances, serverless tech is an improvement, especially given the powerful cloud resources that become available at the push of a button.
When we are talking about applications that are custom-tailored for serverless, that’s usually the best way to go considering some of the massive benefits of serverless tech.
Many businesses are still worried about how and when they should change cloud providers, or if they should do that at all. The key factor to remember is that with serverless technology, you are not necessarily making radical changes to your business. What you are doing is modernizing your business and letting it evolve and grow.