Today’s post will be on how I see the smoothest way to do prototyping & hobby projects in regards to IoT. What is my main principle in deciding this? I only want to spend time on “business logic” and not waste time on the nuts & bolts of the engine.
So what’s the architecture we’ll be using for this?
- Device : Particle Photon + Grove Expansion Board + Grove Sensors (Temperature & Air Quality )
- Particle Platform : Used for the development
- Azure IoT Hub : Basically a 1:1 link with Particle, which will take over once we go to a production grade setup.
- Azure Stream Analytics : Streaming the ingest data from our IoT Hub towards our various landing zones.
- Azure CosmosDB : For storing the data we’ll use in our reports.
- Azure Storage Account : Cheap storage where we keep all the data we collected, and which we could use for our analytics.
- PowerBI : The make nice reports of the data we collected. 😉
Now let’s delve into these parts one by one!
Continue reading “IoT Prototyping in Azure with Particle & Grove”
The concept of Service Endpoints has been around for a while now. Though for today’s post I would like to guide you through the typical process. Here we’ll take a glance of how they work and so that you know what to expect.
For this post we’ll be connecting the Azure PostgreSQL Service to a VNET by leveraging a Service Endpoint. Afterwards we’ll make a connection from a VM within that VNET, and see what route is being taken!
Continue reading “Taking a look at Azure Service Endpoints”
WordPress is probably the most popular CMS around. Though when I look at my home country, then I see a lot of Drupal deployments too. This might be due to the fact that the creation is of Belgian origin? Though for the region I live in, Drupal is amongst the most popular CMS systems.
That being said, Drupal is a very resource hungry system. When you enable the WebProfiler (part of the Devel module), then you can see that typical page will execute between 90 and 200 database queries. This puts a lot of stress on the underlying database system, but also on the local file system.
Due to this we see a lot of articles on how to improve the performance of Drupal. Most commonly seen is the implementation of ;
- Varnish on the front end side, as a web application accelerator / caching HTTP reverse proxy
- Redis or Memcache, as a way to cache data (in memory instead of hammering the database)
For today’s post, we’ll briefly discuss the various options and afterwards delve into a more advanced scenario where we leverage the Azure Linux App Service’s multi container capability.
What options do I have for running Drupal on Azure?
In essence there are various ways to run Drupal on Azure ;
Continue reading “Drupal on Azure – Leveraging the Linux App Service for a Managed Platform Experience”
For today I’ll show you two major cost optimizations for your Azure Virtual Machines ;
- Reserved Instances
- Windows Licensing
As the baseline for the cost projections, I’ll be using a commonly used “D2v3”-machine (deployed in West Europe & currency set to Euro) ;
For the Cost Optimization calculations, I’ll be using VMchooser, which returns the following results ;
So what to make of this? Let’s dive into those two topics!
Continue reading “Azure Virtual Machines – Two major cost optimizations everyone should know!”
Earlier this week I tweeted my excitement of using an Azure B-series machine for my Dev VM in Azure. And Jan was curious to know what type I used…
Which got a response from Sven that I would probably blog on it…
Continue reading “Using B-series for your Dev VM in Azure”
When you have an SPA (Single Page App), all your code is being run inside of your browser. This means that, from a network perspective, you’ll be talking to the APIs directly. It’s often (rightfully) said that SPAs are an untrusted client, where a typical server-side app is seen as a trusted client. Why is an SPA seen as untrusted? Because from the publisher side (the one providing the service/app), you do not control the device running the code. So this has a huge effect on the security risks involved and how you should mitigate them.
One of those mitigations is “CORS” ;
Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources (e.g. fonts) on a web page to be requested from another domain outside the domain from which the first resource was served. A web page may freely embed cross-origin images, stylesheets, scripts, iframes, and videos. Certain “cross-domain” requests, notably Ajax requests, are forbidden by default by the same-origin security policy. (Source : Wikipedia)
With CORS, the request will indicate from which domain the calls would originate (and what actions / headers it would like to do). Therefore, the backend can check if the call is warranted or not…
Continue reading “When your Single Page App needs CORS and meets Azure API Management with a Function Backend”
Today’s post will cover three more advanced topics that I’ve seen surfacing on a regular basis ;
- Transferring a Subscription versus Changing the Directory of a Subscription
- Moving resources between subscriptions with different AAD (Azure Active Directory tenants
- Understanding the relationships between components when leveraging an Enterprise Agreement (EA)
- Various advanced scenarios on how AAD in intertwined between subscriptions & the EA
Transfer vs Change Directory
Apparently there is a bit of confusion between the “Transfer” and the “Change Directory” buttons for a subscription ;
In essence ;
Transfer Subscription = Change the Owner AND Change the Directory
What does that mean?
- If you want to transfer the billing of a subscription, you do a “Transfer“.
(Do note: Transferring a subscription will also change the directory to the one linked to the new owner. If this is a different one, then you’ll be linked to a new AAD Tenant.)
- If you do not want to transfer the billing, and just change the directory, you do a “Change directory“.
(Do note: Changing a directory will not remove the account owner. And (s)he’ll still have owner rights on it! Also be aware that all rights set linked to the previous tenant will disappear. So you’ll have to reinstate IAM. For which you can easily leverage management groups...)
Continue reading “Azure Subscription Management – Beyond the 101… aka The Advanced Topics”