Hello World!

Welcome to my site. I use this site as a repository to dump knowledge I come across, generally in the areas of software engineering and information technologies, but may include other miscellaneous tidbits. Most of the posts are written as notes for my personal reference.

 

if i.hear then
i.forget
if i.see then
i.remember
if i.do then
i.understand

Latest articles

Azure Storage

The following is from Azure Administrator Training lab for AZ-103 These are some reference notes using Azure Storage services as of 12/2018. The main storage services available are listed below and explained further in the sections below. Azure Blobs (objects/media) Azure Data Lake Storage (gen2) Azure Files (File Server) Azure Queues Azure Tables Azure Cosmos DB […]

Read article : Azure Storage

Azure Security

The following is from Azure Administrator Training lab for AZ-103 Some Azure Services related to Security, Privacy and Compliance.   Azure Firewall – enforce, log application and network connectivity. Inbound and oubound filtering rules. Azure Monitor loggin. Different than Web Application Firewall (WAF) which is part of Application Gateway – it does only inbound protection […]

Read article : Azure Security

Azure Resource Manager and ARM Templates

The following is from Azure Administrator Training lab for AZ-103 Resource Manager The infrastructure for your application is typically made up of manycomponents – maybe a virtual machine, storage account, and virtual network,or a web app, database, database server, and third-party services. You maynot see these components as separate entities, instead you see them as relatedand interdependent parts of a single entity. You want to deploy, manage, andmonitor them as a group. Azure Resource Manager enables you to work with the resources in yoursolution as a group. You can deploy, update, or delete all the resources foryour solution in a single, coordinated operation. You use a template fordeployment and that template can work for different environments such astesting, staging, and production. Resource Manager provides security,auditing, and tagging features to help you manage your resources afterdeployment. Consistent management layer Resource Manager provides a consistent management layer to perform tasksthrough Azure PowerShell, Azure CLI, Azure portal, REST API, and clientSDKs. All capabilities that are available in the Azure portal are alsoavailable through Azure PowerShell, Azure CLI, the Azure REST APIs, andclient SDKs. Functionality initially released through APIs will be representedin the portal within 180 days of initial release. Choose the tools and APIs that work best for you – they have the samecapability and provide consistent results. The following image shows how all the tools interact with the same AzureResource Manager API. The API passes requests to the Resource Managerservice, which authenticates and authorizes the requests. Resource Managerthen routes the requests to the appropriate resource providers. Benefits Resource Manager provides several benefits: You can deploy, manage, and monitor all the resources for your solutionas a group, rather than handling these resources individually. You can repeatedly deploy your solution throughout the developmentlifecycle and have confidence your resources are deployed in aconsistent state. You can manage your infrastructure through declarative templatesrather than scripts. You can define the dependencies between resources so they’re deployedin the correct order. You can apply access control to all services in your resource groupbecause Role-Based Access Control (RBAC) is natively integrated intothe management platform. You can apply tags to resources to logically organize all the resources inyour subscription. You can clarify your organization’s billing by viewing costs for a groupof resources sharing the same tag. Guidance The following suggestions help you take full advantage of Resource Managerwhen working with your solutions. Define and deploy your infrastructure through the declarative syntax inResource Manager templates, rather than through imperativecommands. Define all deployment and configuration steps in the template. Youshould have no manual steps for setting up your solution. Run imperative commands to manage your resources, such as to start orstop an app or machine. Arrange resources with the same lifecycle in a resource group. Use tagsfor all other organizing of resources.   Terminology If you’re new to Azure Resource Manager (ARM), there are some terms youmight not be familiar with. resource – A manageable item that is available through Azure. Some common resources are a virtual machine, storage account, web app, database, and virtual network, but there are many more. resource group – A container that holds related resources for an Azure solution. The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. You decide how you want to allocate resources to resource groups based on what makes the most sense for your organization. resource provider – A service that supplies the resources you can deploy and manage through Resource Manager. Each resource provider offers operations for working with the resources that are deployed. Some common resource providers are Microsoft.Compute, which supplies the virtual machine resource, Microsoft.Storage, which supplies the storage account resource, and Microsoft.Web, which supplies resources related to web apps. ARM template – A JavaScript Object Notation (JSON) file that defines one or more resources to deploy to a resource group. It also defines the dependencies between the deployed resources. The template can be used to deploy the resources consistently and repeatedly. declarative syntax – Syntax that lets you state “Here is what I intend to create” without having to write the sequence of programming commands to create it. The Resource Manager template is an example of declarative syntax. In the file, you define the properties for the infrastructure to deploy to Azure. Resource providers Each resource provider offers a set of resources and operations for working with an Azure service. For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider. This resource provider offers a resource type called vaults for creating the key vault. The name of a resource type is in the format: {resource-provider}/{resource-type}. For example, the key vault type is Microsoft.KeyVault/vaults. ✔️ Before getting started with deploying your resources, you should gain an understanding of the available resource providers. Knowing the names of resource providers and resources helps you define resources you want to deploy to Azure. Also, you need to know the valid locations and API versions for each resource type.   Resource Group Deployments Resources can be deployed to any new or existing resource group.Deployment of resources to a resource group becomes a job where you cantrack the template execution. If deployment fails, the output of the job can describe why the deployment failed. Whether the deployment is a single resource to a group or a template to a group, you can use the information to fix any errors and redeploy. Deployments are incremental; if a resource group contains two web apps and you decide to deploy a third, the existing web apps will not be removed. Currently, immutable deployments are not supported in a resource group. To implement an immutable deployment, you must create a new resource group. Resource Groups Resource Groups are at their simplest a logical collection of resources. There are a couple of small rules for resource groups. Resources can only exist in one resource group. Resource Groups cannot be renamed. Resource Groups can have resources of many different types […]

Read article : Azure Resource Manager and ARM Templates

Azure Overview and App Service

Some general notes about the Azure cloud platform and services. Regions – geographical area with one or many datacenters Feature Availability – not all features available in every region Geography – discrete market area with one or more regions Availability Zones – physically separate locations within Region providing redundancy for that region Availability Sets – […]

Read article : Azure Overview and App Service

AWS DAX Overview and Sample Application using Encryption At Rest

This is an overview with a sample application using AWS DAX – DynamoDB Accelerator. Further below is a sample application that uses DAX, DynamoDB and EC2 – all with encryption at rest. DAX is a fully managed, in-memory cache for DynamoDB. It reduces DynamoDB response times from milliseconds to microseconds. As with other AWS services, […]

Read article : AWS DAX Overview and Sample Application using Encryption At Rest

Software Prototyping

Prototyping (or materialization) is a useful tool in developing new software applications. It helps identify and manage costs, key features and usage very early in the development life-cycle. Prototypes can be done in mock applications (not fully functional but contains some interactions) using various tools or even in traditional paper-and-pen. Perhaps not literally paper-and-pen but […]

Read article : Software Prototyping

Google App Scripts

Google App Script allows extensible functions to be created to work with G Suite products such as Docs, Sheets, Slides and Forms. It uses JavaScript as the language and can do things like: Add custom menus, dialogs, and sidebars to Google Docs, Sheets, and Forms. Write custom functions for Google Sheets. Publish web apps — either standalone or embedded in Google Sites. […]

Read article : Google App Scripts

.Net Core Services

This is a review of some of the core internals of the .Net Core Framework. Sample code can be found here: https://github.com/johnlee/dotnetcoreservices   Background NET was first announced by Microsoft in 2000 and then evolved from there. The .NET Framework has been the primary .NET implementation produced by Microsoft during that nearly two decade period. […]

Read article : .Net Core Services

Networking Concepts

Revisiting some Networking concepts   OSI Overview The Open Systems Interconnection model (OSI model) is a conceptual model that characterises and standardises the communication functions of a telecommunication or computing system without regard to its underlying internal structure and technology. Its goal is the interoperability of diverse communication systems with standard communication protocols. https://www.cloudflare.com/img/learning/ddos/what-is-a-ddos-attack/osi-model-7-layers.svg Physical Layer The physical layer is responsible for the transmission […]

Read article : Networking Concepts

Privilege Account Management

Privilege Account Management (PAM) is part of Identity and Access Management (IAM), or also known as Identity Management (IdM), where individual user rights to a resource are granted privileges so that they can execute certain tasks or procedures on that resource.  This can also be part of Role Based Access Control (RBAC) in which the […]

Read article : Privilege Account Management