Tag

architecture

Browsing

The mindset for start-ups is to keep the costs down and develop fast with quality. Therefore the idea is to have continuous improvement loops and publish the most viable product (MVP) version as soon as possible. Microsoft Azure provides services which are essential to the Software as a Service (SaaS) products. Most importantly and fortunately, most of these services have a free plan to kick start the development project. In this blog post, I’ll have a review of these free Azure essential services in SaaS architecture.

During 14 years of my career, I have worked with customers from different industry sectors and various project types. Most of them were Enterprise-grade business-to-business (b2b) solutions, and my experience with business-to.customer (b2c) products is quite narrow. As explained in my previous blog post, recent Azure certification exams are demanding, and studying requires a lot of reading and hands-on training. During my studies, the outcome product has taken my attention and interest to develop the product further. Let’s have a look at the SaaS high-level architecture in it’s purest form.

Simple SaaS Architecture

The illustration represents free azure services in Service-oriented SaaS architecture. These services are:

  1. App Service is a Platform as a Service which is the best solution to host the front-end layer and the UI of the product. Developing the UI by any best-of-breed front-end framework like Angular or React can be up and running on Azure with few clicks. The app service can be scaled as the demand grows, but you can kick start the project with the free plan.
  2. App API is based on App Service platform and will act as the service layer of the product. The API can also be developed with any popular back-end language like .net core, Node.js or Go lang. The service can be scaled up by demand, and it has many other useful features like hosting Docker containers to serve the API. The app service environment can be hosted either on Windows or Linux environment.
  3. Azure SQL is also a Platform as a service product which should not be confused with the self-hosted Microsoft SQL Server. The Azure SQL database does not require a SQL server licence, and you pay based on the Database Throughput Unit or DTU. Developers can have SQL relational database so serve the API layer. The Azure SQL does not have a free tire, but the Basic tire with 5 DTU costs under five euro per month.
  4. The Storage Account is a package of four different services, and you pay only for the use. The following services are essential for the SaaS product:
    • Blob Storage is the solution to host images, videos and binary files.
    • Table Storage is the part of the storage account to host non-relational data in a table format where the schema can scale based on needs.
    • Storage Queue is a simple service bus solution to enable event-based operations.
  5. Azure functions are server-less PaaS product which is hosted on the App Services environment and is a perfect solution for handling the background processes. To read more about Azure Functions in cation and hosting plans, please refer to my previous blog posts.

The services above are the perfect initial parts of a SaaS application. The architecture can be extended with other services to provide an industry lead solution which can be topics for my next blog posts.

Over a decade of being a part of Microsoft ecosystem and solving customer’s needs, one of the most challenging tasks has been the engagement of customers and providing self-service systems to the end-users. In the old days and even currently some enterprises refer to the system as an “Extranet”. The cloud era and especially Microsoft’s Azure and the seamless integration between services has eventually changed the world.

Few years ago to have an environment where customers could authenticate, update their personal and professional information, interact with the enterprise and provide documents could cost hundreds of thousands euros. In most cases SharePoint was acting as the extranet platform, secondary Active Directory as the identity management system and Dynamics CRM as customer management system to hold customer information. Not to mention the integration platforms to solve the needs of communication between systems. For the risk, reliability, stability and usage load management all the platforms and systems had to be in a farm and at least duplicated for testing purposes. In most cases the capacity provided for the environments was frequently in the idle mode. The drawing below demonstrates a simple architecture of an on-premises server farm environment.

The minimal architecture

The costs mentioned above were only the hardware costs for the start.  The other costs for the project were the development and the maintenance fees which were much greater than budgets planned for the “Extranet” projects these days. The main reason for the bigger expenses was the custom made code created for platforms. Nowadays the need of custom coding is much smaller and most of the custom features are a part of the platforms.

Last fall Microsoft acquired a company called Adxstudio Inc. Since then I have been following the main cloud-based portal product of Adxstudio. The product is built on-top of Microsoft Dynamics CRM/XRM which is nowadays under the Dynamics 365 brand. User authentication is handled by the Azure Active Directory but user profiles are stored in the XRM as a contact record which can  interact with other entities in the CRM context. CRM entities and actions are extended to the web and information gathering is made amazingly easy. The product provides Content Management capabilities and search to create richer information management in the portal. As the technical perspective the UI is created by modern HTML 5 and CSS3 web technologies by using the Bootstrap framework to provide responsive mobile web pages.

But what concepts and features can be provided by the Dynamics 365 Portal to the end-users?
Here is a list of some concepts and ideas:

  • Customer service: help desk, account management and knowledge base
  • Communities and information sharing: discussion forums, idea management, polls and surveys
  • E-commerce: Transactions, invoice and order management, product and quotes management
  • Government: Services provided to citizens or emergency management
  • Marketing: Branding and design, conference and event management and lead generation forms

Each portal instance is hosted on Microsoft Azure and has some integration support for other Microsoft cloud based products like SharePoint. To keep integrations in mind, the product supports fully REST API and JavaScript can be used for the AJAX calls.

Currently the portal costs $500/year/instance but with each Dynamics 365 subscription the customer will get one instance of Dynamics Portals for free!
To refresh our memory each instance requires a Dynamics 365 CRM instance to which the portal will be attached during the installation/deployment phase. Corporate staff should have a CRM licence to be able use the portal but there can be unlimited amount of  external users for free!

In my next blog posts related to Dynamics 365 Portals I’ll go through the deployment process and features available in the product. My goal is to evaluate the product and give the business and technical staff better understanding of the product.