Posts

Showing posts from 2021

Cloud Basics and Fundamentals Series

In order to understand anything for need to communicate or understand the language in which a system or problem is described. Cloud Computing have its own have language or technicalities which are very important to understand in order to understand the potential or the Cloud services. This cloud concept glossary with key terms and description is addressed briefly and concisely under the Series of Cloud Basics and Fundamentals . Microsoft have created an exam with Exam ref Az-900 for the basics of cloud for those people who are using or interacting with cloud in their roles, they could be administrators, clients or users. This Series have following with a great effort to summarise the points in the relevant cloud topics and if you are a beginner in Cloud Computing, you can quickly go through them without wasting much time on long articles and Microsoft documentation . However for deeper dive I found the best resource is Microsoft Docs. Some of the concepts have been re-phrased from the

Cloud Basics: Tenancy, Directories and Subscription

When I first started learning about cloud the concept of tenancy, and directories was very confusing as I could have multiple tenants and each tenant could have multiple directories and subscriptions etc. As this was the basics of every resource access, creation, assignment , the concept is very important to understand.  I will try to make it as simple as I can. For more information about these interlinked concepts, I will re-direct you to the pertinent topic and it will make it easy to understand.  👉 I would highly recommend to complete your study of Cloud Basics and Fundamental Series to understand the important key terms and concepts of cloud. Tenant Every organization when registers/buy the Azure portal subscription from Microsoft, for them a record is created in the Microsoft Active Directory along with their information. This record of Active directory is called Tenant. 

Virtual Machines

Image
Virtual Machines are one of the Azure Compute way to host your solution and is the base Infrastructure component of the Cloud. Virtual Machines are logical machines which are created by the cloud using Hypervisors but for end user they act like physical machines containing all the components like RAM, CPU, Storage and Network. The physical hardware resources of the datacentre are intelligently managed and allocated to the virtual machines and these virtual machines are being paid for according to their location, performance and storage parameters. Hypervisor is a technology which manages these virtual machine allocations. One physical machine share its resource to multiple VMs. VMs have their own Operating system which is selected at the time of the creation of the VM.  Lab : For more information about what features/options Cloud offers for a VM, lets look into the Azure Portal .  you can also create a VM using Azure CLI, CLI, PowerShell and ARM Templates. I will create  separate Labs

Azure Compute Solutions

Image
Azure offers a number of ways to host your application code on the cloud. The term compute refers to the hosting model for the computing resources that your application runs on. There are many compute service that Azure offer. The most commonly used are: Virtual Machines (IAAS) App Services (PAAS- Hosting Web APIs, Mobile APIs, Web Apps etc) Container Instances and Kubernetes (clusters of containers) Azure Batch Azure Service Fabric Serverless Solutions  Azure Functions Azure Logic Apps In order to decide which type of hosting environment or compute solution you need. the following flowchart from Microsoft will help you to choose a compute service for your application. Click to Enlarge - (Photo Courtesy: Microsoft) If your application consists of multiple workloads, evaluate each workload separately. A complete solution may incorporate two or more compute services. 👉The first approach to  migrate your solution is to " Lift and shift ". This is a strategy for migrating a work

Cloud High Durability and Disaster Recovery

 High Durability and Disaster Recovery (DR) Your ability to recover from a disaster and to prevent the loss of data.  Solutions that recover from a disaster is known as Disaster Recovery (DR). This is achieved by high availability due to scalable solutions. These concepts are all related to each other.  The scalable and redundant solutions provide High availability which prevent the disaster recovery. Read more about related concepts of redundancy in  High availability , and  High Scalability   Durability Parameters  Do you have a backup?  How fast can you restore that backup?  Does your backup still work?  How do you ensure current live data is not corrupt? 

Cloud Infrastructure - Load Balancer

Load Balancer A load balancer allows you to evenly distribute traffic to multiple servers in one or datacentre. If a datacentre or server becomes unavailable (unhealthy) the load balancer will route the traffic to only available datacentres with servers.  Load Balancer is very important infrastructure component which runs in front of every service to mange and route traffic load. Load balancer is used for scalable and available solutions. Running your workload across multiple Availability Zones ensures that if I or 2  AZs become unavailable your service / applications remains available.  load balancer behind the scene manages all the traffic across regions and scaled solutions  For more information about scalability and availability read here High Scalability  and the  High Availability 

Cloud Basics - Availability and Redundancy

 High Availability  Your ability for your service to remain available by ensuring there is  *no single point Of failure and/or ensure a certain level of performance. High availability is achieved by replicating the images in multiple zones or data centres. So in case of any geo-disaster the alternative systems serve the users, hence it is called highly available. There are three types of redundancies: Local Redundancy Zone Redundancy Global/Geo Redundancy Local redundancy The default behaviour is locally replicating the data/resource images in multiple copies in the same datacentre. The resources by default have three copies. so if one copy fail to serve the other two are still available. This mode has less availability comparing to the other two but still it provides some piece of mind. Zones Redundancy  In this mode three copies of the resources are kept in three different zones or data centres in the same location/city. For example, UK West is a location which may have multiple zone

Cloud Basics - Scalability and Elasticity

Image
High Scalability / Elasticity Your ability to increase your capacity based on the increasing demand of traffic, memory and computing power. Cloud offer high scalability which is otherwise not an easy task to achieve using manual approach. The enterprises need to achieve scalability as their number of end user increase, so do their data hits and network traffic. In order to meet the increased requirement for the system, it needs to be scaled. There are two ways of scaling: Vertical Scaling/ Scaling Up  It means upgrade to a bigger server or powerful machines. If on-premises, this has to be done manually. you need to buy expensive machines/hardware and software to upgrade the server to host the software components. Cloud manages this automatically and you just have to pay accordingly, you don't have to buy any physical infrastructure, just scale up manually based on your specified conditions (e.g; more than 85% of CPU consumption or 70% of memory consumption etc). Cloud portal has sc

SOLID Design Patterns

Introduction: SOLID is short for 5 Design Patterns/ Principles (S-O-L-I-D) of Coding which are very commonly used in every software system. All the frameworks and existing solutions are based on these principles hence its very important to understand them before you even start designing or writing your piece of code. These are the guidelines to write clean code which is easy to maintain and extend without creating lots of bugs. S - Single Responsibility  O  - Open Closed Principle L - Liskov Substitution I  - Interface Segregation D - Dependency Inversion/Injection S- Single Responsibility This pattern states that every class/piece of code should have single responsibility and lots of tasks should not be aggregated into a single class. for example if a class Book stores information about a book, it should not be responsible about printing the book or logging information about it onto the console. we can divide the task of printing or logging into a separate class. For example: class

Lab: Logic App in Azure Portal

Image
 There are four ways of creating a Logic App. Azure Portal You have a visual designer available here where you can visually see the workflow and all the connectors, conditions, flow paths and available actions. Easy to create design the app and understand what is going on. You can not use source control or DevOps for this LA. Visual Studio 2019 You can design your app in Visual Studio using the building logic app Designer. Also you can also check in the logic app to the source control. Hence you can take the advantage of the DevOps features   Visual Studio Code You can manipula

Microsoft Azure - Logic Apps

Image
Logic Apps are one of the compute solutions offered by Microsoft Azure. Logic Apps are design first workflows hosted in Azure in a serverless mode and implemented through underlying Azure Service Fabric. They have a visual design to connect your applications, components, services and APIs together in a workflow which is triggered by some event. As Logic Apps are executed in a serverless mode, so you are charged for the consumption plan price which is pay per execution. Logic Apps are used to integrate systems hence they are also called integration service. Components of Logic App Logic Apps require following: Trigger (Only One)  of any supported types (HTTP or other triggers (check list of supported triggers on Microsoft website) to trigger the execution Conditions/loops  (outcome from triggers is checked against a condition or put in a loop) based on which different Actions are executed Actions   are tasks which are

Same code Links for the Az-204 Developing for Microsoft Azure Exam Topics

I will keep adding more links in the list below and categorise them according to 4 major categories of AZ-204 Exam so keep checking for the updates "Develop for the Azure Cloud" Sample Projects 50% of this exam falls in the "Develop for the Cloud" objective, and requires exposure to code. A collection of sample code you can play around with using Visual Studio 2019 or Visual Studio Code: Azure Batch Hello World - https://github.com/Azure-Samples/azure-batch-samples/blob/master/CSharp/GettingStarted/01_HelloWorld Azure Batch AI Code Samples - https://azure.microsoft.com/en-us/resources/samples/?service=batch-ai&sort=0 Service Bus Queue - https://github.com/Azure/azure-service-bus-dotnet Service Bus Code Samples - https://azure.microsoft.com/en-us/resources/samples/?service=service-bus&sort=0 Event Hubs - https://github.com/azure/azure-event-hubs-dotnet Azure Relay Hybrid Connections - https://github.com/azure/azure-relay-dotnet Event Grid Publish/Consume Eve

How to prepare for AZ-204 Developing for Microsoft Azure Certification Exam

Image
  Here is the list of learning path to prepare for AZ-204 Developing for Microsoft Azure exam from my personal experience. First foremost, subscribe to free Azure plan for portal, this will give you free access for some services for 30 days and for others 12 months access. you can browse through Azure portal and see its services. Exam expects 2 years experience of MS Azure, but if you just starting and want to go ahead with learning, you need to start from somewhere and this should be your first step. Take a Udemy course if you can buy one, go through all modules once. For absolute beginner, this is good step as the good instructor will quickly guide you through all the steps/services and give you a general idea of the content. However these courses are never comprehensive. you should go through them again and again if you are beginner or don’t have enough knowledge about a certain topic. you might want to go through

Data Annotations in ASP.NET Core

Data annotation can be used most commonly in in ASP.NET Core MVC or ASP.Net Data controls to perform model validation. Data annotations (available as part of the System. ComponentModel. DataAnnotations namespace, are attributes that can be applied to classes or class members to specify the relationship between classes, describe how the data is to be displayed in the UI, and specify validation rules. This article briefly tells you about data annotations, why they are useful, and how to use them in our .NET Core applications.  Types of Data Annotations  DA attributes are used to specify metadata on a class or a property. The data annotation attributes can broadly be classified into the following:   Validation attribute — Used to enforce validation rules on the properties of the entities  Display attribute — Used to specify how the data should be displayed in the user interface  Modeling attribute — Used to specify the r