The Internet is my Application!
As you know I love my stickers, you can see I left some of
my Amazon/AWS stickers on my personal MacBook –as they are a large Microsoft
customer and re-seller!
When you think about it, the cloud that is – why is the
cloud called the cloud? Well back in the day the network/telecom engineers used
a “Cloud” to portray the internet in their engineering diagrams.
Fast forward a few years and we have X as a Service (IaaS,
PasS, SaaS, etc.aaS) . We are using the internet for what it was always meant
to be –a network of networks. Then I read this article in the NY Post about how
the term Multi-Cloud is banned from AWS’ reinvent conference –and I ask "um why"?
Competition drives innovation right?
When I was at CNCF’s Kubecon last year –I got to see the
demo god himself –@KelseyHightower
rock the house with a demo
on Google Cloud and AWS. As Kelsey
says it best “These (cloud tech) are just tools, focus on the big problem, the
most important tool is sitting in the chair, figure out which ones [tools]
makes sense, you leverage them [the tools], put your hands on the technology –you
are an Engineer, act like one!”
As a Microsoft Cloud Solution Architect, I most work with
folks closing datacenters and migrating to cloud (classic lift/Shift -yawn-),
moving clouds (interesting -yum-), or going multi-cloud (very interesting-very
yummy).
So why do I find the multi-cloud so yummy? Because it is an opportunity
to use the internet for what it was meant to be --a network of networks. We can
take an application and totally decouple it and spread it out globally.
So let’s take a microservices or a service approach for each component. There
is a web tier, an app tier, and a database tier.
Each component uses an underlying technology and is hosted on
a cloud. Build the front end in Raact or Angular and presto no web servers! Host it in S3
or Blob and serve it up via a CDN, Azure CDN, Google’s Cloud CDN, Amazon
CloudFront, Akamai, Version –whatever. Done right? Not exactly –we just serving
up the static content –what if I have a button to push? Hmmm how to execute a
command like a push to a database? Let’s
go serverless!
Enter Azure Functions, AWS Lambda, Google’s Cloud Functions,
IBM’s OpenWhisk, or maybe your own OpenFaaS stack running in a cloud (preferred)
or on-prem (it works). This approach can handle some of our application’s
workings –but let’s say we have jobs that must persist. Let’s use Kubernettes (K8s)and
I can run Kubernettes anywhere. Thanks to Azure’s ARC platform
– I can distribute my K8’s application on different clouds, on prem if needed,
and globally!
But what if I have some legacy code that needs to run all
day and persist like a bad habit? I’ll put it behind an API Gateway with EC2
instances, or API Management with backend VMs or maybe leave it on-prem and
build some Swagger APIs (lipstick on the pig).
Then we have the database layer. No biggie we can use Amazon
Dynamo DB, Azure Cosmos for NoSQL, local MongoDB. For complex joins we can use Azure’s
CosmosDB for SQL. Amazon’s Aurora for Postgres, or if it uses Oracle RAC –keep it
on-prem. Bottom line is that the API is the front door! That API can be a API
Gateway/API Management service in front of on-prem/cloud virtual machines, functions
and databases.
Let’s say we have an application and it needs to be multi-cloud. We can have a microservice for the front-end "Web Site" hosted in an Azure Blob container with Azure CDN service fronting it. It can have the Supplier Mgmt service living in Azure and Product Mgmt microservice running on AWS, Price Mgmt running on IBM, and the Finance Service's legacy application running on-prem in VMware and Oracle.
Let’s say we have an application and it needs to be multi-cloud. We can have a microservice for the front-end "Web Site" hosted in an Azure Blob container with Azure CDN service fronting it. It can have the Supplier Mgmt service living in Azure and Product Mgmt microservice running on AWS, Price Mgmt running on IBM, and the Finance Service's legacy application running on-prem in VMware and Oracle.
In today's modern applications, everything is an API. APIs are exposed to the internet. The
API front-ends need to be on the Cloud’s API Gateway solution (DDoS and autoscale).
Next blog, I'll talk about monitoring and securing it all with Azure Security Center!
So now our application is global (thankyou CDN), Multi-cloud
and hybrid (on-prem) for the stuff that just can’t move (yet) to the cloud.
Comments