Skip to main content

Posts

Featured Post

Intro to Python Flask Microframework

The ever growing internet of things provides expanding opportunities for software engineers to leverage their skills. If you are not writing software for the devices themselves there are still ample opportunities to build backend systems to capture and analyze the avalanche of data that these devices produce.  In this post we will be looking at creating a backend system for capturing connected device data for a hypothetical IOT device. We will be using Python and a lightweight framework called Flask to create a REST based endpoint that our device calls to submit location data. Our service will store its data in a NOSQL repository powered by Azure Cosmos DB. You can find the repository for this post here . One of the big trends in software engineering is the rising popularity of Python. This multipurpose language has a dominant position in the machine learning space. If you are looking to build some skills in Python but are not currently working on a machine learning project you may
Recent posts

Containerized Microservice Utilizing Azure Storage, Azure SQL, App Services, Application Insights, Container Registry

Background In many industries it necessary for a company to store and log documentation submitted from customers for example insurance claims often require documentation associated with a claim.   Other industries with similar requirements include Healthcare and Mortgage/Banking.     The document storage microservice presented here leverages several Azure platform technologies, Azure App Services and Azure Container Register, Azure Storage for document storage,   and Azure SQL for structured data storage.   Code for the service can be found here .  System Architecture The diagram below shows the major components of the service.   The microservice utilizes several design patterns in order to facilitate code maintainability and reuse.  The repository pattern is used to form the backbone of our data persistence layer.    The factory pattern is used in the microservice to further decouple the data layer model from the business layer model.   Utilizing this approach allows the bus

Azure App Insights

Sorry I haven’t added any content lately.  I ‘ve been working on Azure Architect Certifications.  App Insights Overview Thought I’d get back into the rhythm of making posts by posting about one of the most useful features of  Azure,  App Insights.  What's better is that this feature requires very little or no effort to tap into on the platform.  During the course of my development career I have integrated numerous logging frameworks into applications that I have developed.   I have spent numerous hours improving the logging capabilities of these applications.   Most of them even after several iterations were not close to the capabilities that App Insights gives you out of the box.   In this post I am going to highlight a few of these features. Adding App Insights to an application such as a web site deployed to App Services is a straightforward process. During the deployment process simply enable AppInsights.  Be aware that there is some cost associated with the st
Python Machine Learning In Azure ML Studio Just quick post to show you how easy it is to migrate Jupyter notebooks into azure machine learning studio.    For this walkthrough we will use the preview of the latest release of ML Studio ( https://ml.azure.com/ ).    Microsoft has been hard at work making their Machine Learning Studio easier to use and the preview release has simplified several processes. When you bring up Azure ML Studio Importing a Jupyter notebook is a straight forward process.    Once you’ve loaded studio select notebooks and then select the upload files link. Once you have uploaded the file you’ll be able to select it and view it but no run it yet. We can’t run the uploaded notebook yet because we need to setup a VM that will be used process our data. Allowing you to control the size of the VM that your notebook will run on lets you control costs associated with housing the notebook in Azure.  Additionally, you can shut down the VM when not in use to

Serverless Azure Functions

Introduction Azure function capabilities are fast evolving.   They have come a long way from their inception just a few years ago.    Originally conceived to be small functions with short execution.   There were no modern architecture capabilities like dependency injection. The functions were also originally limited in the number of parallel instances that were allowed.      From these somewhat humble beginnings Azure functions have quickly matured as a platform.   Today it is possible to run long running methods using durable functions.   Additionally, we now have support for dependency injection using an extension library. Azure Functions are event driven, that is they do not run continuously, but are called in response to an event such as a http request, timer, or an update to a blob storage account.    The function is triggered executes and is then shut down.   The billing for Azure Functions is based on consumption, you pay for the resources used.   If for example your fun

Azure SQL Setup

Now that we have our site being authenticated we need to create the rest of the login process for our new users.   When our users are logged in the first time we want to send them to the login page so that we can collect some additional customer information about them.    We will use the id that is passed back to us by Facebook to lookup our new user in the database we are going to create.     If we don’t find the Id we will redirect our user to the new login page.    Our first step will be to layout our database.   We have a lot options for databases that can be hosted in the cloud.    On one end of the spectrum we could create a VM to host our database.   This would require us to manage the VM as well as the database.   We would also need to setup the storage and manage backups directly.    This gives a fine level of control over the environment.    The downside of this approach is that you have taken many limits of on prem implementations with you into the cloud.   This implem

oAuth Authentication

For our new ecommerce site we need to create a authentication mechanism.   Since we have a cloud native application we are going to leverage third party authentication to validate our users.   The .Net core framework supports several third party authentication mechanisms out of the box.   Third parties that are supported include google, Facebook and twitter.   These third party libraries utilize industry standard oAuth   to provide authentication.    Using a third party authentication has two main advantages.   First your users can authenticate using an existing login.   This makes it more convenient for the end user.   Secondly,   it offloads the management of logins and passwords to a third party,   thereby reducing the amount of resources that the organization has to spend on end user security.      The code for our web site is located on git here .    For simplicity we will utilize Facebook as our provider.   It should be noted that each provider has different requirements