fbpx

Software Development Newsletter: Q2 2023

Director Message

kafka

Welcome to this new Mitrais Newsletter. Now that the trials that we all faced over the last few years have begun to subside, the World’s collective economies are beginning to normalise slightly. While there is no doubt that lingering economic stresses continue to be an important issue for us all, there is more and more evidence of businesses adapting to the new paradigms and, in many cases, reconstituting themselves and flourishing. At Mitrais, we are cautiously optimistic about the future, and we are excited to see many of our partners rising to the challenges.

This time we take a look at one such client, Ramesys Global Pty Ltd. Initially looking to make some relatively straight-forward structural changes to their software solutions, Sonya Preece (Ramesys Global’s Product Technical Manager) reached out to Mitrais to provide the technical team that she could not source within Australia. She was surprised to find that her senior Mitrais team members quickly identified some strategic technical roadblocks, and some creative solutions that added value to Ramesys’s technical strategy going forward. Seeing the initial improvements, Sonya quickly expanded the project well beyond the original scope, with great results.

One of the hot topics in software development over the past few years has been the move toward cloud-based solutions through the use of high-availability, scalable and secure software platforms. Microsoft’s Azure is one of the most popular, growing its international market share by 24% in 2022. So, what does it take to adopt Azure for your use case, and what are the key business advantages? Read about the myriad options that Azure offers, and how you can best leverage them in our latest White Paper.

Not every great software developer starts off wanting a career in software development. A perfect example is Felix Arya, one of Mitrais’ talented Engagement Managers. Felix experienced how sometimes your career can actually find you, and allow you to flourish. Learn more about his story in this edition’s Featured Employee article.

I hope that you enjoy this newsletter, and as always we wish you all continued health and prosperity for the rest of 2023 and beyond.

Navigating Advanced Solutions through Strong Partnership - Ramesys Global

“I am impressed with the team members at Mitrais. They have advanced technology expertise and communicate fluently in English. The Mitrais team excelled in responding to technical and design challenges while incorporating guidance and feedback consistently well. Their engagement with the Ramesys Internal team was awesome. I have no hesitation in both recommending them and in continuing to work with them on our current and future projects.”

Sonya Preece, Product Technical Manager

Ramesys Global Pty Ltd, Australia

The 1990s and early 2000s was a challenging time for the mining industry, and in that environment marginal mining operations were crying out for innovative tools. This was the genesis of Ramesys Global, formed with the sole purpose of creating smarter ways to help these ventures to stay in business. Whether it be in the field of Finance and Operations, Maintenance or Business Intelligence, Ramesys has evolved into a market leading developer of smart tools yielding shorter budgeting cycles, quicker month-end turnaround, greatly reduced effort in month end reporting and variance analysis, less errors and greater confidence in reported numbers. A win-win for the whole organisation.

The Background

In the spirit of continuous improvement that is the hallmark of Ramesys Global, the team led by Sonya Preece (Product Technical Manager) determined that it was time to further enhance their solution set by moving from their original client-server architecture to a web-based solution. This was seen as a natural evolution that would deliver massive benefits for not only the established user base and prospective clients, but also in terms of streamlining the ongoing support and enhancement of the product set.

The Challenge

As Sonya said, “We were looking to redevelop our windows-forms application modules as web applications and lacked the skillset internally to achieve that outcome. Looking to hire a permanent web developer/analyst programmer locally was proving difficult”. Adding to the challenge, Ramesys Global hoped to achieve this evolution without requiring any major changes to the data layer where much of the business process was housed.

The Solution

Sonya identified Mitrais as a potential partner in this redevelopment. “For not much more that the cost of a relatively inexperienced local resource, Mitrais suggested a team consisting of a .2 Tech Evangelist, .5 Designer and 1 Analyst/Programmer. This appealed to me immediately as an option worth pursuing and our initial engagement was a small proof of concept project” she says.

Initially looking at the React.js framework using the SyncFusion library as a basis for the rewrite, there was an issue. While React.js/SyncFusion was a full featured stack, it became apparent that it required the client to download relatively large pieces of data, resulting in slightly disappointing performance in this use case.

Mitrais was able to provide an alternative.The Mitrais team made technical recommendations for the application architecture based on real and extensive experience and have the background to investigate and resolve potential problems as they arise very quicklySonya says. “The opportunity to access the advanced skillset of the evangelist and designer has added incredible value and efficiency as we have been able to leverage their expertise to both reduce project risk and achieve a better result. As a small company we would not have been able to hire (or find or afford) the equivalent resources locally”.

Moving to the Next.js framework addressed the performance issues by pre-rendering pages for quick client download, and asynchronously reloading client-side scripts as needed. The results of the Proof or Concept were so successful that Sonya was delighted. “This quickly progressed to a bigger project, the web redevelopment of our Cost Modeller module” she says.

From the beginning the Mitrais team have meshed seamlessly with our internal Ramesys team. They take great care to incorporate feedback and are also proactive in making suggestions regarding improvements. The English language skills of the Mitrais team members are also excellent. The Agile approach they have used to manage the project has worked well.

I plan to be working with Mitrais ongoing into the future. I have confidence and trust in the team and the product they are producing for us. Mitrais management are also very flexible and accommodating.  I have no hesitation in recommending Mitrais (and have to a couple of peers already).”

 

Adopting Azure Cloud Platform

Abstract

This white paper aims to provide organisations with an insight to adopting the Azure cloud platform. While Azure and AWS are leading cloud platform providers offering comparable services, this document focuses on key features of Azure and assisting organisations in adopting Azure beyond just technical considerations, but also from different business perspectives such as cost, compliance and scalability. It assumes prior familiarity with cloud platform providers like AWS or GCP.

This paper is intended as guidance to implementing Azure focusing on its key features and how organisations can best leverage Azure’s capabilities. It does not cover the migration from another cloud provider to Azure.

1.     History of Azure

Azure was first introduced on October 28, 2008, under the name Windows Azure. The development of Azure began as an internal project known as “Project Red Dog” which aimed to create a cloud-based operating system.

Windows Azure was initially offered as a Platform as a Service (PaaS) solution, allowing developers to run their ASP.NET web applications and APIs.

1.1   First Generation – Red Dog and Windows OS for the Internet

In its initial release, Azure provided developers with the ability to run ASP.NET web applications and APIs, along with worker roles for background processing.

Azure also introduced SQL Azure, a relational database service that offered high availability, scalability, and security for mission-critical applications.

Azure’s first-generation offerings also included a content delivery network (CDN) for efficient distribution of web content, as well as a service bus for reliable messaging between distributed applications.

These initial services provided a solid foundation for Azure to grow into a complete cloud platform that offers a diverse range of tools and services suitable for businesses of any size.

1.2   Second Generation – Embracing OSS and The Shift to IaaS

Microsoft renamed Azure to Microsoft Azure to better reflect its focus on enterprise customers.

Microsoft transformed Azure from a primarily Platform-as-a-Service (PaaS) offering to a more flexible Infrastructure-as-a-Service (IaaS) model, providing customers with more control over their virtual machines (VMs) and networking.

With the introduction of Azure Virtual Machines, customers could now run Windows and Linux VMs in the cloud, providing greater flexibility and compatibility with their existing IT infrastructure.

The second generation of Azure introduced the building blocks for cloud-based applications and services. It allowed support for containerisation, serverless computing, and microservices architecture, which simplified the process of deploying and managing cloud applications.

1.3   Third Generation – Sailing the Big Data, Analytics and IoT Wave

Azure continued to evolve with more of a focus on big data, artificial intelligence, and the Internet of Things (IoT).

Azure introduced a range of big data services, including Azure HDInsight for Apache Hadoop and Spark clusters, and Azure Data Lake Storage for scalable data storage and analytics.

Azure Machine Learning (AML) was introduced, enabling users to build, train, and deploy machine learning models at scale.

The third generation of Azure also saw the introduction of Azure IoT Hub, a fully managed service for bi-directional communication between IoT devices and the cloud, and Azure Sphere, a comprehensive security solution for IoT devices.

1.4   Fourth Generation – Intelligent Cloud and Intelligent Edge

Azure made significant steps in machine learning (ML) and artificial intelligence (AI) capabilities, with the introduction of services like Azure Machine Learning and Cognitive Services.

Azure Machine Learning offers a cloud-based platform for building, training, and deploying machine learning models, while Azure Cognitive Services offers ready-to-use application programming interfaces (APIs) that cater to various tasks such as processing natural language and computer vision, as well as recognizing speech.

1.5   The Present and Beyond

Azure’s strength is its support for Kubernetes through AKS, providing a scalable platform for containerised apps.

Azure’s success is due to its flexible and scalable cloud platform, offering a range of services from PaaS, Infrastructure as a Service (IaaS) to Software as a Service (SaaS) to help businesses modernise their IT and drive innovation.

2.     What is IaaS, PaaS, SaaS

2.1   IaaS

Infrastructure as a Service is a cloud computing model that offers infrastructure resources such as compute, networking, and storage on a pay-as-you-go basis.

IaaS allows businesses to scale up or down resources as needed and pay only for what they use, without having to invest in physical hardware.

2.2   PaaS

Platform as a Service is a cloud computing model that provides a complete stack for developing, testing, deploying, and managing applications on a pay-as-you-go basis.

PaaS includes infrastructure resources, such as computing and storage, as well as development tools, databases, middleware, and other components needed to build and run applications.

With PaaS, businesses can avoid managing complex architecture and focus on building applications, as the platform takes care of the underlying infrastructure while providing the flexibility to pay for resources only as they are used.

2.3   SaaS

Software as a Service is a cloud computing model that provides complete software solutions over the internet.

SaaS is pay-as-you-go, allowing businesses to access software on a subscription basis without having to purchase or manage hardware and software.

The cloud platform manages the hardware and software, ensuring that businesses always have access to the latest software and updates.

3.    Cloud Platform Market Share

AWS and Azure are the two leading cloud platforms, having 55% combined market share. AWS has a 33% market share in 2022 and has been growing 34% annually over last 2 years. Azure has a 22% market share in 2022, growing by 24% in 2022. The other main player, GCP, has a 10% market share in 20227.

 

4.     Azure Services

4.1   Azure Region

Azure regions and availability zones are designed to ensure reliability for business-critical workloads. Azure operates in various geographical locations, each with its own distinct boundaries. These boundaries play a crucial role in defining disaster recovery strategies and ensuring compliance with data residency requirements in one or more Azure regions. By maintaining multiple regions, Azure ensures that customers receive comprehensive support and coverage across the globe.

As of February 2023, there are around 80 Azure regions listed below:

DisplayName Name RegionalDisplayName
East US eastus (US) East US
East US 2 eastus2 (US) East US 2
South Central US southcentralus (US) South Central US
West US 2 westus2 (US) West US 2
West US 3 westus3 (US) West US 3
Australia East australiaeast (Asia Pacific) Australia East
Southeast Asia southeastasia (Asia Pacific) Southeast Asia
North Europe northeurope (Europe) North Europe
Sweden Central swedencentral (Europe) Sweden Central
UK South uksouth (Europe) UK South
West Europe westeurope (Europe) West Europe
Central US centralus (US) Central US
South Africa North southafricanorth (Africa) South Africa North
Central India centralindia (Asia Pacific) Central India
East Asia eastasia (Asia Pacific) East Asia
Japan East japaneast (Asia Pacific) Japan East
Korea Central koreacentral (Asia Pacific) Korea Central
Canada Central canadacentral (Canada) Canada Central
France Central francecentral (Europe) France Central
Germany West Central germanywestcentral (Europe) Germany West Central
Norway East norwayeast (Europe) Norway East
Switzerland North switzerlandnorth (Europe) Switzerland North
UAE North uaenorth (Middle East) UAE North
Brazil South brazilsouth (South America) Brazil South
Central US EUAP centraluseuap (US) Central US EUAP
East US 2 EUAP eastus2euap (US) East US 2 EUAP
Qatar Central qatarcentral (Middle East) Qatar Central
Central US (Stage) centralusstage (US) Central US (Stage)
East US (Stage) eastusstage (US) East US (Stage)
East US 2 (Stage) eastus2stage (US) East US 2 (Stage)
North Central US (Stage) northcentralusstage (US) North Central US (Stage)
South Central US (Stage) southcentralusstage (US) South Central US (Stage)
West US (Stage) westusstage (US) West US (Stage)
West US 2 (Stage) westus2stage (US) West US 2 (Stage)
Asia asia Asia
Asia Pacific asiapacific Asia Pacific
Australia australia Australia
Brazil brazil Brazil
Canada canada Canada
Europe europe Europe
France france France
Germany germany Germany
Global global Global
India india India
Japan japan Japan
Korea korea Korea
Norway norway Norway
Singapore singapore Singapore
South Africa southafrica South Africa
Switzerland switzerland Switzerland
United Arab Emirates uae United Arab Emirates
United Kingdom uk United Kingdom
United States unitedstates United States
United States EUAP unitedstateseuap United States EUAP
East Asia (Stage) eastasiastage (Asia Pacific) East Asia (Stage)
Southeast Asia (Stage) southeastasiastage (Asia Pacific) Southeast Asia (Stage)
Brazil US brazilus (South America) Brazil US
East US STG eastusstg (US) East US STG
North Central US northcentralus (US) North Central US
West US westus (US) West US
Jio India West jioindiawest (Asia Pacific) Jio India West
devfabric devfabric (US) devfabric
West Central US westcentralus (US) West Central US
South Africa West southafricawest (Africa) South Africa West
Australia Central australiacentral (Asia Pacific) Australia Central
Australia Central 2 australiacentral2 (Asia Pacific) Australia Central 2
Australia Southeast australiasoutheast (Asia Pacific) Australia Southeast
Japan West japanwest (Asia Pacific) Japan West
Jio India Central jioindiacentral (Asia Pacific) Jio India Central
Korea South koreasouth (Asia Pacific) Korea South
South India southindia (Asia Pacific) South India
West India westindia (Asia Pacific) West India
Canada East canadaeast (Canada) Canada East
France South francesouth (Europe) France South
Germany North germanynorth (Europe) Germany North
Norway West norwaywest (Europe) Norway West
Switzerland West switzerlandwest (Europe) Switzerland West
UK West ukwest (Europe) UK West
UAE Central uaecentral (Middle East) UAE Central
Brazil Southeast brazilsoutheast (South America) Brazil Southeast

 

4.2   Compute

4.2.1  Azure VM

Azure virtual machines are an on-demand, scalable computing resource that can be used for various purposes, such as development and test, applications in the cloud, and extended data centre. They provide the flexibility of virtualisation without having to buy and maintain physical hardware. Microsoft Azure supports Linux and Windows distributions.

Design considerations for virtual machines in Azure include resource names, location, size, number of virtual machines, operating system, configuration, and related resources.

There are multiple options to manage the availability of an organisation’s virtual machines in Azure. They are Availability Zone and Virtual Machine Scale Set.

Availability Zones guarantee virtual machine connectivity to at least one instance 99.99% of the time, while Virtual Machine Scale Sets create and manage a group of load balanced virtual machines. Scale sets provide high availability and can be deployed into multiple availability zones or regionally.

Location specifies where virtual hard disks will be stored when creating Azure resources. This table shows some of the ways an organisation can get a list of available locations.

 

Method Description
Azure Portal Select a location from the list when you create the virtual machine
Azure Powershell Use the Get-AzLocation command
REST API Use the List Location comand
Azure CLI Use the az account list-location operation

 

Azure offers a variety of sizes to support many types of uses, and charges an hourly price based on size and operating system. Limits can be raised by filing a support ticket.

Managed Disks handle Azure Storage account creation and management, ensuring scalability limits are met. Once the disk size and performance tier has been determined, Azure will create and manage the disk. An unmanaged virtual machine could be converted to be backed with a managed disk.

4.2.2  Azure AppService

Azure App Service is an HTTP-based service designed for hosting web applications, REST APIs, and mobile back-ends. It adds Microsoft Azure’s security, load balancing, autoscaling, and automated management capabilities, as well as DevOps capabilities.

Azure App Service is a fully managed PaaS offering for developers with multiple languages and frameworks, managed production environment, containerisation and Docker, DevOps optimisation, global scale with high availability, and connections to SaaS platforms and on-premises data.

Azure provides support for ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP, and Python. It offers a wide range of services for hosting websites and web applications, including App Service, Azure Virtual Networks, Hybrid Connections, Security and Compliance, Application Templates, Visual Studio and Visual Studio Code integration, API and mobile features, Serverless Code with Azure Functions, and Azure Virtual Machines. Azure’s App Service is the best choice for most scenarios.

App Service can host web apps natively on Linux. App Service on Linux supports language specific built-in images for Node.js, Java, PHP, Python, .NET Core, and Ruby. Outdated runtimes are hidden from the Portal when they are deprecated or have significant vulnerabilities. To create another web app with an outdated runtime, use the Azure CLI or export an ARM template.

App Service on Linux is not supported on the Shared pricing tier, but the features are activated on the portal. It offers a custom container option designed for heavy read-only access to content files.

App Service Environments provide high scale, isolation, secure network access, memory utilisation, and RPS for stateless applications with a high RPS requirement. Customers have fine-grained control over network traffic and secure connections.

App Service Environments can be used for internal line-of-business applications, single-tenant systems, network-isolated application hosting, and multi-tier applications. Networking features are enabled at the application level and can be deployed on dedicated hardware.

An App Service Environment is a single-tenant deployment of Azure App Service that runs on a virtual network. It can have up to 200 total App Service plan instances and up to 100 instances by itself. When deployed on dedicated hardware, it has 132 vCores available.

The App Service Environment feature is a deployment of the Azure App Service into a single subnet on a virtual network. The number of addresses used by an App Service Environment v3 in its subnet will vary depending on the number of instances and the amount of traffic. The recommended size for an App Service Environment v3 subnet is a /24 Classless Inter-Domain Routing (CIDR) block with 256 addresses. The apps in an App Service Environment don’t need any features enabled to access resources on the same virtual network, and traffic can be blocked by user configuration on the network.

An App Service Environment has three versions: App Service Environment v1, App Service Environment v2, and App Service Environment v3. App Service Environment v3 is the current version.

App Service Environment v3 is an alternative to earlier versions of the Windows Small App Service plan. It allows for no networking dependencies on the customer’s virtual network, zone redundancy, faster scaling, front-end scaling adjustments, and access to apps across global peering. It also has a dedicated host group, is no zone redundant, and only one scale operation can be in effect for a combination of OS and size. Additionally, it allows users to perform backup operations on a storage account behind a firewall and access the FTPS endpoint using a custom domain suffix.

The pricing model for App Service Environment v3 varies depending on the type of deployment. There are three pricing models: App Service Environment v3, Zone Redundant v3, and Dedicated Host v3. Reserved Instance pricing is available for Isolated v2. Pricing is available at App Service pricing under the Isolated v2 plan.

App Service Environment v3 is available mostly in all regions. The details can be found in here.

4.2.3  Azure Functions

Azure Functions is a serverless offering that enables organizations to reduce code complexity, minimize infrastructure management, and achieve cost savings. It provides up-to-date resources to keep applications running, allowing developers to focus on their code.

It provides “compute on-demand” that allows the system’s logic to be implemented into readily available blocks of code. The compute resource will be provided as needed to meet the application’s demand. With this approach a user doesn’t have to maintain the server infrastructure.

The Azure function can be scale out dynamically via Azure Portal:

4.3   Database

4.3.1  Azure SQL

Azure SQL is a family of managed, secure, and intelligent products that use the SQL Server database engine in the Azure cloud. Azure SQL Database supports modern cloud applications, Azure SQL Managed Instance modernises existing SQL Server applications, and SQL Server on Azure VMs lift-and-shift workloads.

Microsoft’s data platform leverages SQL Server technology and makes it available across physical on-premises machines, private cloud environments, third-party hosted private cloud environments, and the public cloud, allowing developers to modernise and develop apps.

Azure SQL provides real-time threat detection, multi-layered security controls, and comprehensive compliance coverage.

Data offerings include platform as a service (PaaS) and infrastructure as a service (IaaS). IaaS enables an organisation to shut down resources while not using them, while PaaS is always running unless an organisation decides to drop and re-create their resources when needed.

PaaS options reduce the amount of time needed to administer the database but limits the range of custom administration tasks and scripts. IaaS guarantees 99.99% SLA, while PaaS guarantees 99.95% SLA.

Time to migrate to Azure is no different from moving databases from one on-premise server to another. However, it will depend on the database size and the number of objects in the database. For example, it takes less than 3 minutes to migrate the database of 2 GB -1–2 minutes are used for the validation phase (prior to migration) and less than 15 seconds for the migration phase.

As seen in the diagram above, each service offering can be characterised by the level of administration an organisation has over the infrastructure, and by the degree of cost efficiency. The key question when deciding between PaaS or IaaS is whether to manage our organisation database, apply patches, and take backups, or delegate these operations to Azure.

Azure SQL Database is a database service provided by Azure that follows the model of Database-as-a-Service (DBaaS) and belongs to the Platform-as-a-Service (PaaS) category in the industry. It has two deployment options: as a single database with its own set of resources managed via a logical SQL server, or as an elastic pool, which is a collection of databases with a shared set of resources managed via a logical server.

Azure SQL Managed Instance is a Platform-as-a-Service (PaaS) solution that offers complete SQL Server access and feature compatibility, making it an ideal choice for migrating SQL Servers to Azure. It is similar to an instance of the Microsoft SQL Server database engine, offering shared resources and additional features.

SQL Server on Azure VM is an Infrastructure-as-a-Service (IaaS) that allows users to run SQL Server inside a fully managed virtual machine (VM) in Azure. It offers full administrative control over the SQL Server instance and underlying OS for migration to Azure, as well as full control over the database engine. It is ideal for migrating existing applications to Azure or extending existing on-premises applications to the cloud in hybrid deployments, as well as for developing and testing traditional SQL Server applications.

SQL Database and SQL Managed Instance are optimised to reduce overall management costs and increase the number of databases managed by a single IT or development resource. Elastic pools support SaaS multi-tenant application architectures, while SQL Server on Azure VMs provide DBAs with an on-premises environment.

SQL Database and SQL Managed Instance are sold as a service with several options and service tiers. With SQL Database, an organisation can choose a service tier and create elastic pools to reduce costs. With a SQL Managed Instance, an organisation can bring their own license and bill for outgoing Internet traffic. Additionally, the database software is automatically configured, patched, and upgraded by Azure, reducing administration costs. SQL on Azure VMs provides cost savings by allowing users to use any of the platform-provided SQL Server images or bring their own license. Operational costs depend on VM size and edition, with per-minute licensing cost and outgoing Internet traffic billed at regular data transfer rates.

Azure offers a variety of cloud services to offload complexity of administration and cost. With IaaS and PaaS, Azure administers the infrastructure, replicates data, configures and upgrades database software, manages load balancing, and does transparent failover. With SQL on Azure VM, an organisation has full control over the operating system and SQL Server instance configuration. Automated features simplify patching, backup, and high availability.

Microsoft provides an availability SLA of 99.99% for Azure SQL Database and Azure SQL Managed Instance, and 99.95% for two virtual machines in an availability set or 99.99% for two virtual machines in different availability zones for SQL on Azure VM.

Azure SQL Database, Azure SQL Managed Instance, and SQL on Azure VM are all great solutions for cloud-designed applications. SQL Database and Managed Instance reduce the need for managing the underlying operating system and database, while SQL on Azure VM saves time and budget on re-architecting existing solutions.

4.3.2  Azure Cosmos

Azure Cosmos DB is a fully managed NoSQL and relational database for modern app development. It offers single-digit millisecond response times, automatic and instant scalability, guaranteed speed at any scale, SLA-backed availability and enterprise-grade security. App development is faster and more productive thanks to open-source APIs and SDKs.

It provides high-availability, high-throughput, low-latency, and tuneable consistency to build IoT, retail, gaming, and web/mobile applications.

Azure Cosmos Key Benefits:

  • Guaranteed speed at any scale

Gain unparalleled SLA-backed speed and throughput, fast global access, and instant elasticity.

  • Simplified application Development

Build fast with open-source APIs, multiple SDKs, schemeless data and no-ETL analytics over operational data. Integration with Azure services such as Functions, IoT Hub, AKS, App Service, and more.

  • Mission – Critical Ready

Azure Cosmos DB offers SLAs, replication, encryption, and role-based access control to ensure business continuity and security.

  • Fully Managed and Cost–Effective

End-to-end database management with serverless and automatic scaling for unpredictable or sporadic workloads, saves developers time and money.

  • Azure Synapse Link for Azure Cosmos DB

Azure Synapse Link for Azure Cosmos DB enables near real-time analytics over operational data, with no ETL jobs to manage, optimised for large-scale analytics workloads.

 

4.4   Networking

4.4.1  Azure VNet

Azure Virtual Network enables Azure resources to securely communicate with each other, the internet, and on-premises networks, providing scale, availability, and isolation.

Key scenarios that an organisation can accomplish with a virtual network include:

  • Communication of Azure resources with the internet

Virtual networks can communicate inbound and outbound to the internet.

  • Communication between Azure resources

Azure resources communicate securely with each other in one of the following ways:

  • Through a virtual network
  • Through a virtual network service endpoint
  • Through virtual network peering
  • Communication with on-premises resources

An organisation can connect their on-premises computers and networks to a virtual network using any of the following options:

  • Point-to-site virtual private network (VPN)
  • Site-to-site VPN
  • Azure ExpressRoute
  • Filtering network traffic

An organisation can filter network traffic between subnets using either or both of the following options:

  • Network security groups
  • Network virtual appliances
  • Routing network traffic

Azure routes traffic between subnets, connected virtual networks, on-premises networks, and the Internet, by default. An organisation can implement either or both of the following options to override the default routes Azure creates:

  • Route Tables
  • Border Gateway Protocol (BGP) routes
  • Integration with Azure services.

Integrating Azure services to an Azure virtual network enables private access to the service from virtual machines or compute resources in the virtual network. An organisation can integrate Azure services in their virtual network with the following options:

  • Deploying dedicated instances of the service into a virtual network
  • Using Private Link to access privately a specific instance of the service from their virtual network and from on-premises networks
  • Access the service using public endpoints by extending a virtual network to the service, through service endpoints

Increase networking limits on virtual network limits page. Virtual networks and subnets can be configured to accommodate zona resources without dividing them by availability zones. Azure Virtual Network is free, but charges apply for resources.

4.4.2  Azure CDN

Azure CDN offers developers a global solution for rapidly delivering high-bandwidth content to users by caching content at strategically placed physical nodes. The benefits of using Azure CDN to deliver web site assets include:

  • Better performance and improved user experience for end users.
  • Large scaling to handle high loads during product launches.
  • Edge servers distribute user requests and content to reduce traffic.

How it works

  1. The DNS routes a user’s request (Alice and other users) to the closest POP location.
  2. POP requests file from origin server if no edge servers have it.
  3. The origin server returns the file to an edge server in the POP.
  4. Edge server caches file and returns it to original requestor until TTL expires.
  5. Users can request the same file using the same URL.
  6. POP edge server returns files directly from cache for faster user experience.

Azure CDN offers the following key features:

  • Dynamic site acceleration

The purpose of Dynamic site acceleration is to improve the performance of web pages by speeding up the delivery of dynamic content.

  • CDN caching rules

CDN Caching rules are used to modify default expiration behaviour, allowing global or custom conditions.

  • HTTPS custom domain support

HTTPS is automatically enabled when we create the endpoint hostname by default which secures the sensitive data through TLS/SSL.

  • Azure diagnostics logs

Using azure diagnostic logs will enable the user to view the core analytics and export them into Azure Storage Account or Log analytic workspace or Azure event hubs.

  • File compression

File compression enhances transfer speed, page-load performance, bandwidth costs, and user responsiveness by reducing file size.

  • Geo-filtering

Geo-filtering allows users to restrict access to content by country/region by creating rules on specific paths on CDN endpoints.

Azure CDN requires a subscription, a CDN profile, and multiple profiles to create a mix of pricing tiers. Pricing is applied at the CDN profile level.

Azure subscription limits resources for CDN profiles, endpoints, and custom domains.

4.5   Storage

4.5.1  Azure Storage

Azure Storage is Microsoft’s cloud storage solution for modern data storage scenarios, providing highly available, massively scalable, durable, and secure storage for data objects.

Azure Storage services provide benefits for application developers and IT professionals.

  • Durable and highly available. Redundancy ensures data is safe in the event of hardware failures or natural disaster.
  • Azure Storage provides secure data storage with control.
  • Azure Storage is scalable to meet data storage and performance needs.
  • Azure manages hardware maintenance, updates, and critical issues.
  • Azure Storage is accessible from anywhere, with client libraries in a variety of languages, REST API, scripting, and visual solutions.

The Azure Storage platform includes the following data services:

  • Azure Blob

Azure Blob Storage is Microsoft’s object storage solution for the cloud, optimised for storing massive amounts of unstructured data. It can be accessed from anywhere in the world via HTTP or HTTPS, with client libraries available for multiple languages.

  • Azure Files

Azure Files enables an organisation to set up highly available network file shares that can be accessed using the SMB, NFS, and REST API protocols. It also allows for access from anywhere in the world using a URL with a shared access signature (SAS) token. File shares can be used for many common scenarios, such as migration of on-premises applications, configuration files, tools and utilities, resource logs, metrics, and crash dumps.

  • Azure Queues

The Azure Queue service is used to store and retrieve messages, which can be up to 64 KB in size and contain millions of messages. Queues are used to store lists of messages to be processed asynchronously, allowing for more control.

  • Azure Tables

Azure Table Storage is now part of Azure Cosmos DB. Azure Cosmos DB for Table offers throughput-optimised tables, global distribution, and secondary indexes.

  • Azure Managed Disks

Azure managed disks are virtual hard disks stored as page blobs, with Azure taking care of the rest.

Azure Storage requires authorisation for all requests. Below are the following authorisation methods:

  • Azure AD integration for blob, queue, and table data provides superior security and ease of use.
  • Azure AD DS or on-premises Active Directory Domain Services enable identity-based authorisation over SMB for Azure Files.
  • Shared Key authorisation allows clients to sign requests using storage account access key.
  • Shared access signatures encapsulate security tokens to authorise storage resources.

There are two basic kinds of encryption available for Azure Storage:

  • Encryption at rest

Azure Storage encryption protects and safeguards data to meet security and compliance commitments.

  • Client-side encryption

Azure Storage encrypts data before sending and decrypting at rest.

Azure Storage stores multiple copies of data to ensure durability. Meanwhile moving data into or out of Azure Storage depends on size and bandwidth. For the pricing of Azure storage please refer to this link.

4.6   DevOps

4.6.1  Azure DevOps

Azure DevOps is a modern DevOps tool for planning, developing, testing and deploying modern apps.

Azure DevOps helps organisations create and improve software faster than traditional approaches. It provides integrated features to complement existing workflows and supports adding extensions and integrating with other services.

Azure DevOps includes the following services:

  • Azure Board

Azure Boards provides a flexible platform for managing and tracking work items, supports agile methodologies, and provides features to help teams collaborate and stay organised. It supports Agile methodologies including Scrum and Kanban.

Azure Boards also provides end-to-end traceability, tracking work from requirements to deployment, allowing users to create branches, create pull requests, run tests, merge pull requests, and monitor requirements traceability.

  • Azure Repos

Azure Repos is a set of version control tools that help track changes and coordinate code changes across a team. It saves snapshots of files and keeps a history of development, making it easy to review and roll back to any version.

Azure Repos provides two types of version control:

  • Git

Git is a distributed version control system that makes it easy to work offline or remotely, using local repositories and tools.

  • Team Foundation Version Control

TFVC is a centralised version control system with path-based branches.

 

  • Azure Pipelines

Azure Pipelines combines CI and CD to build, test, and deliver code to any destination.  Azure Pipelines have several key components:

  • Azure Pipeline Tasks

Tasks are packaged scripts or procedures that are executed sequentially when a job is executed. These demands defined prerequisites that must be installed on agents.

  • Azure Pipeline Templates

Templates can be used to inject reusable content and control what is allowed in a pipeline, helping to define security.

  • Azure Pipeline Parameters

Runtime parameters can be used to provide different values for scripts and actions, dynamically select jobs and stages, and specify default values.

  • Azure Pipeline Variables

Variables are stored as strings and can be modified at runtime. They can be used in expressions to conditionally assign values and customise the pipeline. Variables with the largest local scope take precedence.

  • Azure Pipeline Secrets

Secret variables are encrypted with a 2048-bit RSA key and are available to agents through tasks and scripts.

  • Azure Pipeline Triggers

Triggers allow an organisation to automatically run pipelines when certain events occur.

There are 2 options to operate the Azure Pipelines:

  • Define pipeline using YAML Syntax

Azure Pipelines provides YAML configuration to define pipeline as code.

  • Define pipeline using classic interface.

Azure Pipelines provides a UI to define pipelines and artifacts.

  • Azure Test Plans

Azure Test Plans provides powerful tools to improve code quality and collaborate. It supports test objectives through browser-based tools. Below are the following test objectives:

  • Manual and Exploratory Testing
    • Planned Manual Testing
    • User Acceptance Testing
    • Exploratory Testing
    • Stakeholder feedback
  • Automated Testing
  • Traceability
  • Reporting and Analysis

Azure Test Plan has several benefits:

  • Test on any platform
  • Rich diagnostic data collection
  • End to end traceability
  • Integrated Analytics
  • Extensible platformAzure Artifacts

Azure Artifacts enable developers to share code efficiently and manage packages from one place, supporting multiple package types, simplify job building, and integrate with Azure Pipelines.

Azure Artifacts is free up to 2 GB, but limits can be exceeded. Below is the detail feature ability of Azure Artifacts:

 

Package Type Azure DevOps Services Azure DevOps Server TFS-2018
Nuget Packages
Npm Packages
Maven Packages
Python Packages Server 2019 Update 1 and Newer, Server 2020 and Server 2022
Universal Packages x x

 

 

Azure DevOps works well with most of the DevOps tools.

 

Category Tools Name
Configuration Tool Chef, Ansible, Puppet
Continuous Integration Jenkins
Microservices Docker
Collaboration Slack, Trello
Monitoring Kibana, Grafana
Developmont Visual Studio

5.    Certification Path

Microsoft has arranged IT certification into different levels; fundamental, associate expert and speciality.

Fundamental certification is beginner certification aimed at people that have just started the journey learning cloud concepts.

Associate certification is intermediate level certification aimed at people that are already familiar with the Azure platform.

Expert certification is advanced level certification that aimed at people that have extensive experience with and a deep understanding of Azure.

The list of the certifications and the level and description is as follows2:

Certification Level What it’s best for
Azure AI Fundamentals (AI-900) Fundamentals Demonstrating participant AI skills on the cloud and the services Azure can offer in this area
Azure Data Fundamentals (DP-900) Fundamentals Developing a strong foundation in the core concepts of data and data analytics
Azure Fundamentals (AZ-900) Fundamentals Demonstrating participant knowledge of cloud concepts, models, and services and showing participant expertise in Azure
Azure Administrator Associate (AZ-104) Associate Building on subject matter expertise managing an organisation’s Microsoft Azure environment
Azure AI Engineer Associate (AZ-102) Associate Learning to build, manage, and deploy AI solutions within Azure
Azure Data Engineer Associate (DP-203) Associate Storing and using datasets for analysis and managing data pipelines and data stores
Azure Data Fundamentals (DP-900) Associate Working with data in the cloud
Azure Data Scientist Associate (DP-100) Associate Exploring data science and using Azure Machine Learning and Azure Databricks
Azure Database Administrator Associate (DP-300) Associate Managing the operational aspects of data platform solutions built with Microsoft SQL Server and Microsoft Azure Data Services
Azure Developer Associate (AZ-204) Associate Building on participant cloud developer experience and learning about developing Azure computing and storage
Azure Enterprise Data Analyst Associate (DP-500) Associate Building expertise in data analytics solutions, including how to design, create, and deploy them
Azure Network Engineer Associate (AZ-700) Associate Validating participant knowledge and skills in Azure network solutions planning, implementation, and maintenance
Azure Security Engineer Associate (AZ-500) Associate Planning and implementing cloud-based management and security; building on participant experience in code, security operations processes, cloud capabilities, and Azure services
Azure Stack Hub Operator Associate (AZ-600) Associate Enhancing participant skills in providing platform as a service (PaaS) and infrastructure as a service (IaaS) using Azure Stack Hub
Azure DevOps Engineer Expert (AZ-400) Expert Building on participant experience as an infrastructure administrator or developer, with expertise in DevOps, Azure administration, or development
Azure Solutions Architect Expert (AZ-305) Expert Building on participant expertise in designing cloud and hybrid solutions that run on Microsoft Azure, as well as participant advanced experience and knowledge in IT operations, Azure administration, Azure development, and DevOps processes

 

6.     Conclusion

Azure continues to grow consistently; it is the 2nd most widely used cloud platform after AWS. It is expected that Azure will continue to grow in the future. An organisation adopting the Azure platform is assured that it will receive continued support either from Microsoft or the community in the future.

Azure offers a wide variety of services starting from compute, networking, AI, database, DevOps and many others. This enables organisations to build their infrastructure in the cloud without having to worry that their use cases may not being supported by the Azure cloud platform.

With many certification opportunities, organisations will not have to worry about difficulties in finding qualified human resources. Organisations can grow their talent and organisational capabilities using the certification paths provided by Microsoft.

 

7.     References

  1. AWS vs azure-who is the big winner in the Cloud War?. ProjectPro. (n.d.). https://www.projectpro.io/article/aws-vs-azure-who-is-the-big-winner-in-the-cloud-war/401
  2. Azure certification: What it is, career benefits, and how to get certified. Coursera. (n.d.). https://www.coursera.org/articles/azure-certification
  3. Cerami, E. (2021, April 11). Do azure functions actually scale?. Medium. https://medium.com/fastapi-tutorials/do-Azure-functions-actually-scale-2a34648dac8d
  4. Lee, B. (2021, December 22). Why should you use Azure over AWS?. Altaro DOJO | Hyper-V. https://www.altaro.com/hyper-v/why-azure-and-not-aws/
  5. Phillips, M. (n.d.). How long does it take to migrate a SQL azure server from one subscription to another?. Microsoft Q&A. https://learn.microsoft.com/en-us/answers/questions/767626/how-long-does-it-take-to-migrate-a-sql-Azure-serve
  6. The history of microsoft azure. TECHCOMMUNITY.MICROSOFT.COM. (2022, August 24). https://techcommunity.microsoft.com/t5/educator-developer-blog/the-history-of-microsoft-Azure/ba-p/3574204
  7. The Latest Cloud Computing Statistics (updated June 2023): Aag it support. AAG IT Services. (2023, June 9). https://aag-it.com/the-latest-cloud-computing-statistics/

Felix Arya - Gaming to Career

“Once you learn more about other people, you learn to appreciate them.”  

We often hear about how someone was drawn to a career path, sometimes against the odds. But sometimes we hear from someone whose successful career “found” them.  This time, we introduce Felix Arya, one of our most talented Engagement Managers, and how his passion for programmatic logic crept up on him.

Felix was exposed to computer gaming in elementary school and quickly realised that one of the games featured a custom map editor that would allow him to create completely new levels. But to do so required him to gain an understanding of the logical operations and sequences, so Felix naturally set to work mastering this.

When Felix was introduced to “actual” programming languages in High School (Turbo Pascal and others), he was surprised to find that exactly the same skills in logic were needed. Software Engineering had found him! It was a natural progression for him to move to complete his degree in IT at ITB (Institut Teknologi Bandung).

Soon after graduating, Felix saw that Mitrais was advertising for staff in Bali. His initial thoughts were less about a long-term career, and more about how to continue learning in this field that fascinated him so much. “At the time, I just thought of how nice it would be to continue to learn new skills, while being on a paid vacation in Bali” he says. “I got more than what I bargained for since I have actually been with Mitrais for 15 years. I got my paid vacation, but so much more”.

With Mitrais, Felix has gained significant expertise with clients in the Mining and Energy Sector, working mostly with their Enterprise Resource Planning systems (ERP). “Learning ERP systems from scratch is fun and gave me more insight into the business processes. It’s great to not just learn “how” software is built, but also “why” it is made like that and “what” solutions are we trying to achieve”. Felix worked at several customer sites around the Asia-Pacific including Japan! “Going to client sites in remote places can be challenging, with foreign cultures and homesickness” he says. “But once you learn more about other people, you learn to appreciate them. I met a lot of “end users” – the people that actually use the software we create on a daily basis”.

Felix’s experience definitely seems to be paying off with Mitrais. Now, he is responsible for maintaining and growing Mitrais’ relationship with valuable clients. With our goal of “Long-Term, High-Trust relationships that add value to our Clients’ businesses”, it is obvious how important such a role is to Mitrais as an organisation. But Felix’s aim is to continue his learning in cutting edge areas. He is now also assisting Mitrais’ Robotic Process Automation team on pre-sales analysis – a very exciting new area of Software Engineering. Fortunately, Felix still has a love for reading (“How many elementary school kids read newspapers? That’s what I did when I was a kid” he says), and that is, no doubt, one of the secrets to his constant growth. His other secret? “I enjoy experimenting with coffee, which goes well with binge reading” he laughs.

To Felix, the benefits of working with Mitrais easily outweigh these challenges, though. As he puts it, “The best part of Mitrais is that it’s a family. Mitrais provides a great environment to grow yourself, be exposed to different kinds of clients and projects from different industries, use all kinds of new technology, and gain more than one point of view as a benefit”.

Mitrais is proud that talented individuals like Felix choose to join us, and flourish in the environment that Mitrais offers. We have no doubt that his contributions will continue to be important additions to Mitrais’ success, and that his career trajectory will continue upwards. Thanks for your hard work, Felix! We wish you continued success!