...
 
Commits (2)
---
title: Managing Infrastructure as Code on Alibaba Cloud vs Microsoft Azure
date: "2020-01-11T00:00:00.000Z"
description: "A quick comparison of Alibaba Cloud Resource Orchestration Service and Microsoft Azure Resource Manager for Infrastructure as Code usage."
published: true
tags: [ "microsoft azure", "alibaba cloud", "infrastructure as code", "azure resource manager", "devops" ]
---
## Managing Infrastructure as Code on Alibaba Cloud vs Microsoft Azure
With the advent of DevOps, many organizations have started migrating their
infrastructure management to a more secure and reversible format of storage.
Thus, the advent of the term, “Infrastructure-as-Code”. This term, sometimes
misunderstood, is a very fancy way of saying, that just the way we version
controlled our source codes, we are now going to version our infrastructures.
The growth to this keyword was provided with the growth of cloud computing and
the as-a-service and pay-as-you-go deployment models.
### Infrastructure-as-Code: Overview
First consider an organization with their infrastructure deployed on-premises.
This requires that organization performs a complete study of their requirements
and the potential growth they are expecting to accommodate the hardware and
infrastructure costs in the coming years. In case they require to upgrade
their infrastructure due to some elements that were not foreseen—due to any
reason, user increase (or decrease), software patch requirements, etc.—they
would need to redeploy almost everything. In classical methods, this would
follow up with a waterfall approach to patch everything. This could lead to
a huge capital investment requirement and would lead to slow production releases
due to compliance delays.
With cloud, this has changed. Cloud vendors takes care of all these elements for
us, and with DevOps they have introduced several tools to manage the infrastructure
(mentioned as IaC from now on in the blog). IaC tools allow operational teams to
operate at scale while,
1. Leaving the infrastructure deployment to these tools.
1. Managing configurations for VMs and compute engines.
1. Supporting declarative syntax for resource creation and management.
1. Being version controllable as any other code, in text format.
These properties for IaC tools enable operations teams to manage their infrastructure,
and **rollback to an earlier stage** in case their infrastructure does not perform
well, or the budget does not support the updated infrastructure demands.
In this post, I will discuss two industry leading options for IaC management,
one is Microsoft Azure’s ARM Template and other one is Alibaba Cloud’s Resource
Orchestration Service, or ROS for short.
## ARM Template by Microsoft Azure
ARM Template is one of the most used solution on Microsoft Azure. It is powered
by the Azure Resource Manager, which enables resource grouping and location parameters
to deploy the solutions on the cloud. Moreover, templates are also used to define
the infrastructure and the resources deployed.
ARM Template takes a couple of important details to “manage” an infrastructure,
1. Location where to deploy
1. Resources
* Their quantity and their types
1. Connections between resources
* Think of this as the virtual networks they are being deployed in
1. Extra information
Infrastructure is deployed on Azure using the information provided in this template
by Azure schedulers and controllers. A template can be downloaded for each resource
that is deployed—whether a single resource or a group of resources. In each resource,
look for “**Export Template**” and utilize the JSON document that is provided. You
can also use Azure SDKs to generate the template or consume the template.
![Azure ARM Template showing the schema for a resource.](azure-arm-template.png)
DevOps tools utilize this template to deploy or re-deploy the infrastructure in
case of need. This also leads to deployment of multiple stages and environments—
testing, QA, staging, production—which can help different departments and different
teams to utilize the platform as per their necessities.
Security of user data as well as infrastructure configuration is taken important
care of as most details are requested on-demand during deployment process. Other
Azure services such as Azure Key Vault service can be utilized to provide the
credentials and other sensitive details for the deployment of infrastructure and
configuration.
You can study the basic [template structure here](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates),
or explore a few options of [Azure ARM template here](https://azure.microsoft.com/en-us/resources/templates/).
In a nutshell, let us recap the pros and cons of every platform:
### Pros of Azure ARM Templates
1. Native support for management of Azure resources.
1. Contains conditional scripts to accept input and dropdown selections.
1. Automatically configures and hides sensitive input from users.
1. Comes free of cost, and templates can be stored for later purposes.
### Cons of Azure ARM Templates
1. Can only be used with Azure resources.
1. No capability to contain automation jobs, only state.
1. No possibility to sketch or generate diagrams of the infrastructure.
## Alibaba Cloud Resource Orchestration Service
On Alibaba Cloud, we are provided with Resource Orchestration Service (referred
to as ROS from here on) that helps us manage the infrastructure, as code, while
staying on top of security and operational ease. Alibaba Cloud ROS follows
similar patterns as other IaC tools and is provided as a first-class and free
service for the customers.
On Alibaba Cloud, ROS follows a stack-deployment model—which on Microsoft Azure is
known as a resource group. Stack Deployment is the deployment of a template that
has been generated by Alibaba Cloud ROS. Sample templates can be used to quickly
deploy and test the Alibaba Cloud infrastructure, or for testing and learning purposes.
![Alibaba Cloud ROS template being created in the portal](alibaba-cloud-ros-sample.png)
The most beautiful feature of Alibaba Cloud is the capability of visually representing
the infrastructure. Alibaba Cloud ROS can be utilized to draw architectural diagrams
that support business needs. Many consultancy organizations rely on this type of
feature for their cloud platforms that they are presenting a marketing pitch for.
Thus, portal can convert your JSON document to a visual (editable) graph, that you
can edit and modify as per your needs.
![Alibaba Cloud ROS showing the infrastructure as a diagram](alibaba-cloud-ros-visuals.png)
This template can be deployed to Alibaba Cloud or saved for later uses. Saving
the template in local environment can help operational teams version this infrastructure
template using a version control system; such as git.
Alibaba Cloud SDK can be used to download the templates stored in a subscription
for complete automation. In case infrastructure does not perform well, a complete
stack can be deployed again using the same template. Templates are text-based;
thus, they can be used to rollback to a specific infrastructure state as per
requirements of customers or resources. Now let’s enlist the pros and cons of
Alibaba Cloud Resource Orchestration Service, pros first.
### Pros of Alibaba Cloud Resource Orchestration Service
1. Native integration with Alibaba Cloud platform and resources.
1. Available free of cost for every account.
1. Enables resource provisioning through status queries.
1. Uses text-based structure to define the infrastructure states and configurations.
1. Out-of-box capabilities to draw a graph of infrastructure for visualization.
### Cons of Alibaba Cloud Resource Orchestration Service
1. Available only for Alibaba Cloud platform and resources.
1. Does not support automation scripts.
## Operational Ease
Both solutions support features necessary for a product to be considered an
Infrastructure-as-Code tool. Azure ARM Templates are strictly tied to Resource
Groups and they create resource groups upon deployments. Resource groups enable
grouping and collective upgradation of services, in case of a down time. ARM
Templates do not have a visual editor—officially supported by Azure, but they
are capable of declarative expression of an infrastructure.
Alibaba Cloud ROS on the other hand provides all the features as an IaC tool and
is a separate orchestrator service—not depending on a first-class product. ROS
also has a visual editor that helps in editing the infrastructure configurations
as well as in presenting the infrastructure to customers and potential clients
for sales or marketing pitch.
Deployment of resources depends entirely on the infrastructure and both these
products are alike in this aspect.
......@@ -4,7 +4,42 @@ date: "2020-01-02T00:00:00.000Z"
description: "CodeProject community selects around 20 experts from a pool of more than 2 million experts as their MVP and I was selected for the 5th time in a row!"
author: "Afzaal Ahmad Zeeshan"
tags: [ "codeproject", "awards", "mvp", "2020" ]
published: false
published: true
type: "blog"
---
It has been 5 years that I have been a CodeProject MVP! Celebration is a must.
> CodeProject is a Canadian community for tech professionals, software engineers
> and IT pros with more than 14 million members.
I am the [top member of CodeProject](https://www.codeproject.com/Members/afzaal_ahmad_zeeshan)
from Pakistan and among top 30 overall.
![Top Pakistani member on CodeProject: Afzaal Ahmad Zeeshan](codeproject-profile-afzaal-ahmad-zeeshan-top-pakistani-member.png)
I have been an MVP at CodeProject for the past 5 years now. MVP (Most Valuable
Professional) award is given to the experts in software technology, passionate
to share their expertise with others. Don't take my word for it, here is [what
CodeProject says](https://www.codeproject.com/script/Contests/Winners.aspx?obtid=1&cmpTpId=2&cid=0):
> The Code Project's Most Valuable Professional award is given to those members
> who have contributed the most to the community in both article submissions and
> in answering questions on the site. The award is given annually.
CodeProject recently introduced two categories for their award, previously it
was just one category; MVP. Now:
1. MVA; Most valuable author, given to the top article writing experts.
1. MVE; Most valuable expert, given to the top forum and QA experts.
This restructing was introduced last year, and I have been an active MVA
and MVE for 2 years. Here is my MVA email:
![CodeProject MVA award for Afzaal Ahmad Zeeshan](codeproject-mvp-mva-2020.png)
Here is my MVE email:
![CodeProject MVE award for Afzaal Ahmad Zeeshan](codeproject-mvp-mve-2020.png)
I will update the post once my MVE and MVA certificates arrive.
---
title: "Software Developer's New Year Resolution: 2020"
description: "Since everybody is doing it, let me give it a try too! My new year resolutions based on my mistakes and wrong turns in 2019, 2018 and more years."
date: "2020-01-01T00:00:00.000Z"
author: "Afzaal Ahmad Zeeshan"
tags: [ "happy new year", "software developer" ]
published: true
---
I am about to be a decade old in software development, and open source communities.
I have had the honor to collaborate with some of the finest in the industry, and
write articles, and do courses with a few of the best in the market. But, there are
some things that not everyone says in the market. But, those who know me, know that
I enjoy saying what I feel any time of the day.
2019 was not an amazing year for me, and I do not hold any grudges against 2019 for
that, I was a bit lazy throughout the year, and I missed a lot of interesting opportunities
because of my laziness. I was also busy in a couple of important things; family-related.
## Learning
Over the previous year as well as 2018, I explored several languages, tools and sometimes
I went out of my field and studied some history, science and photography concepts.
I tried to post some of the work that I had done online on my community profiles
but as fate had it, I was a lot busy so it was not sure what I was doing. Most of
the communities and organizations (especially Microsoft) had to remove my from their
MVP Award lists due to lack of online activities.
## Family and friends
## Community and Open Source
## Games and Entertainment
I spent 2019 playing games and enjoying movies, songs and travelling across country
as well as outside Pakistan. I will add my travel experience about Qatar and Malaysia
in their own respective posts, but for the time being, let us just enlist the moments
that I enjoyed.
## New hobby still not found
I am still looking for a new hobby. I have tried:
1. Technical and non-technical writing.
1. Sports.
1. Travel and adventure.
1. Sleeping throughout the day.
None of the activities have so far helped me in any way.
---
title: "Software Developer's 2019 Review and New Year Resolution"
description: "Since everybody is doing it, let me give it a try too! My new year resolutions based on my mistakes and wrong turns in 2019, 2018 and more years."
date: "2020-01-01T00:00:00.000Z"
author: "Afzaal Ahmad Zeeshan"
tags: [ "happy new year", "software developer", "fifa", "alibaba cloud" ]
published: true
---
I am about to be a decade old in software development, and open source communities.
I have had the honor to collaborate with some of the finest in the industry, and
write articles, and do courses with a few of the best in the market. But, there are
some things that not everyone says in the market. But, those who know me, know that
I enjoy saying what I feel any time of the day.
2019 was not an amazing year for me, and I do not hold any grudges against 2019 for
that, I was a bit lazy throughout the year, and I missed a lot of interesting
opportunities because of my laziness. I was also busy in a couple of important things;
family-related.
## Learning
Over the previous year as well as 2018, I explored several languages, tools and
sometimes I went out of my field and studied some history, science and photography
concepts. I tried to post some of the work that I had done online on my community
profiles but as fate had it, I was a lot busy so it was not sure what I was doing.
Most of the communities and organizations (especially Microsoft) had to remove my
from their MVP Award lists due to lack of online activities.
Here are the top 5 topics I want to learn in 2020:
1. .NET Core (I have little depth-knowledge of framework)
1. Data structures, algorithms (I would read research papers on these topics)
1. JavaScript as a language (React as a front-end framework)
1. Mathematics of Data Science and Machine Learning
1. Quantum Physics (for Quantum Computations)
Overall my 2020 would be spend rock-soliding the concepts I already know. It is
my bad habit of leaving the framework in the middle and exploring something new.
## Family and friends
I feel (believe, and I know) that for a software engineer, friends and their family
members are always avoided, no matter what. I tried to spend maximum time with
my friends and family. I tried to check my friends every month (if not every two
weeks) and trust me, it has been amazing spending time with them each time.
I decided to go on a foreign trip with my family. I was with my mother and brother,
and we decided to go to Malaysia to meet relatives. Although, it was hardly a 10
day trip, it was a trip to cherish.
Here is me and my brother (Daniyal Ahmad Rizwan) at Batu Caves temple:
![Afzaal Ahmad Zeeshan and Daniyal Ahmad Rizwan at Batu Caves temple, Malaysia](malaysia-batu-saves.jpg)
I am planning our next trip, but before that, I need a good contract to pay
my monthly bills. :sigh:
To our friends and families: We do not do that intentionally. It is a part of our
firmware.
## Community and Open Source
I have explored a bunch of new software and communities that are used by open source
communities. GitLab has been on the top of my list. Fortunately, I was able to use
GitLab for several of my own projects as well as recommend it to my friends. The
software has a great potential for future. You can check out my [GitLab profile](https://gitlab.com/afzaal-ahmad-zeeshan)
and maybe collaborate on a few of the open source boilerplate code that I am
working on.
![GitLab account of Afzaal Ahmad Zeeshan](gitlab-account-afzaal-ahmad-zeeshan.png)
Alibaba Cloud also has a great set of open source projects on their cloud platform
as well as their eCommerce platforms. Check out the [project catalouge](https://www.alibabacloud.com/blog/12-open-source-projects-by-alibaba--part-1_582638)
on their website.
I am currently focused on Kubernetes, Cloud-Native and Mobile development as of 2020
. I have explored a bunch of frameworks and runtimes and I feel like this much
of exploration has only made my grip on .NET (and .NET Core) a lot weaker. I read
many articles about C#, .NET Core, Xamarin and other of my all time favorite
languages and frameworks, and I feel so outdated and out of touch with them. So,
I plan to work more on .NET Core, ASP.NET Core, and SQL Server — going
old school!
> I am currently working on a book for **DevSecOps enthusiasts for .NET Core**, keep
> an eye out and I will post as soon as the book becomes available.
>
> I plan to write about the challenges that DevSecOps solves and the tools that
> you can use to perform automated security, performance and compliance checks
> on your software packages.
If you are working on an open source project, maybe we can collaborate! :smiley:
## Games and Entertainment
I spent 2019 playing games and enjoying movies, songs and travelling across country
as well as outside Pakistan. I will add my travel experience about Qatar and Malaysia
in their own respective posts, but for the time being, let us just enlist the moments
that I enjoyed.
Here is my hand (my watch, and my FIFA band) in Khalifa International Stadium, Doha,
Qatar, for the FIFA Clubs World Cup 2019.
![My hand with the FIFA band on it, with a watch in Khalifa International Stadium.](my-watch-fifa-clubs-world-cup-2019.jpg)
Here I am in the lobby, looking for food:
![Afzaal Ahmad Zeeshan looking for food at Khalifa International Stadium during
final match.](afzaal-ahmad-zeeshan-at-fifa-clubs-world-cup-2019.jpg)
If I would like to present my 2019 in a nutshell, it would be this:
![My 2019 in a nutshell!](fifa-clubs-world-cup-2019-logo.jpg)
## New hobby still not found
I am still looking for a new hobby. I have tried:
1. Technical and non-technical writing.
2. Sports.
3. Travel and adventure.
4. Sleeping throughout the day.
None of the activities have so far helped me in any way. I have worked with
some publishers in the past, and authoring was not that much interesting. Plus,
the place where I live in extra-noisy. There is a lot of traffic, and construction
going on that prevents me from doing a video course (on time). Packt is a highly
recommended publisher in my opinion, everyone should collaborate with them, at
least once.
Right now, I am planning on studies, do my MS, then PhD and then get a job. If
nothing works, I might just join a company as a software engineer.
const path = require(`path`)
const { createFilePath } = require(`gatsby-source-filesystem`)
const _ = require('lodash')
const moment = require("moment");
exports.createPages = async ({ graphql, actions }) => {
const { createPage } = actions
......
......@@ -18,7 +18,7 @@ class BlogPostTemplate extends React.Component {
let tableOfContents = "";
if(post.tableOfContents && post.tableOfContents.length > 0) {
tableOfContents = <div><h4>Table of contents</h4><div dangerouslySetInnerHTML={{__html: post.tableOfContents}}></div><hr/></div>;
tableOfContents = <div><h4>Post Agenda</h4><div dangerouslySetInnerHTML={{__html: post.tableOfContents}}></div><hr/></div>;
}
let tags = "";
......