In these series of posts, we’re going to compare different ways of connecting to Azure. We’ll setup a web service and a client. We’re going to see which architecture is optimal in terms of latency, cost and effort. Despite results being very similar, the scenarios are very different between them. The Cloud has multiple ways of integrating your business. Some are cheaper, some are more expensive. We’re here to break the barrier between cost, effort and actual benefits of each scenario. This article was made by analyzing live results, repeating each test more than once, to ensure that no other variables interfere with our results.
“With Azure, we can rely on our own core competencies, and not have to build the underlying infrastructure.”
Nik Shroff, Director of Microsoft Solutions, Adobe
We live in a world that is managed by computers, and IT is improving every day. Humans are creating clever and autonomous ways to manage businesses and citizens private life. Social networks and Cloud storage (i.e. OneDrive) are examples of the huge power that’s available on Cloud nowadays.
Today, people rely on internet to their day-to-day life, from their personal agendas to a “like” on Facebook or a post on Instagram. Businesses rely on computing power that’s available outside, for a fee. This can be cheap if you are running a small business with few transactions. Consider this: Imagine the power requirements and bandwidth that you’ll need to run Facebook servers at home. Could you host billions of people seeing photos and reacting to posts each minute, or even each second? Imagine the huge processing power and data storage requirements… that’s right, you couldn’t!
Cloud. The thing that’s running behind the biggest companies and technologies. People sometimes think that cloud is an enormous computer with tons of processors, billions of TB of RAM and millions of hard-drives, and all connected to the internet. Wrong. Cloud is a set of multiple computers, replicated all-over the world. When you connect to a social network, in a second you could be connected to a server in Spain, and the next second you are connected to a server in Austria!
Cloud is a clever way to have your processing needs satisfied, without worrying with maintenance needs or millions of dollars in power bills. All inside a cloud is scalable. If your business grows, the cloud plan grows according to your needs, without much effort or services being offline.
In this article, we’re going to explain the technical details and real-world results. How long does it take to process information when all operations are hosted in the Cloud? How long does it take to process the same information when your operations are all on-premises? How can you have the best of both worlds (Hybrid Cloud)?
WAIT, WHAT?? Hybrid Cloud?
Hybrid Cloud? What’s that?
I’ll give you an example. Imagine that you run a start-up of wallet manufacturing. You have few of them and you’re ready to open a store.
Now you are with an open store and wallets to sell. You have a small database and a computer to register clients, to print receipts and to manage sales. In this situation, you have the on-premises solution. All is stored inside your facilities.
Now imagine that you have a boost of sales, you are becoming huge in selling wallets. You have a batch of millions in production plus more millions in stock. You also have wallets all-over the world, in stores, online selling companies like Amazon, etc. You are the Nº 1 in wallets worldwide. Would you still run all information on your computer inside your store? Seriously?
NO! Now, when your processing and data storage needs are huge and increasing every day, you can’t have all of this on-premises, it’s just too expensive and irrational. You feel the need to have a Cloud solution, that is available to all your employees and stores all-over the world. Here’s what you have now:
- You have software in a computer (per-store) that manages the employees and stock on that same store;
- You have a huge database stored in cloud;
- You have all client information in Cloud;
A full Cloud solution is when you have all the above stored in cloud. A hybrid-cloud solution is when you divide and share technologies between Cloud and on-premises. That’s it. Quite simple right?
Now that all concepts are known, we did some tests to have base numbers to find out if, in a certain scenario, it’s better to have your on-premises solution stored and running in a Hybrid Cloud solution.
We have a REST service, written in C#, that is hosted on-prem. This service returns a simple string (for now), with the number of clicks that were submitted by the client web app. This service is called “OnPremService” (for further reference).
We also have a Web App (Web application), also written in C#. This Web App is the client app, the one that calls the OnPremService with a request. This Web App is called “Azure Client App” (for further reference). This web app is running on Azure (West Europe) and available via any browser.
The Azure Client App we’ll be connected to OnPremService in multiple ways:
- Test #1 – Via TeamViewer VPN (with HTTP GET);
- Test #2 – Local On-Premises (LAN without VPN, using HTTP GET);
- Test #3 – Via HTTP request (without VPN);
- Test #4 – Via Azure Site-to-Site VPN (with HTTP GET);
- Test #5 – Via Azure Point-to-Site VPN (with HTTP GET);
- Test #6 – Via Azure Function Apps & Logic Apps (with HTTP GET);
Also, we’ll talk about another way of doing the migration, but is not recommended if latency is an important factor.
- Discussion #1 – Via Relay using Hybrid Connection (Topic) (with HTTP GET);
Read on to part one and start finding out which one’s faster for your needs!