We all are living in the era of “Distributed Computing”, regardless of how simple it may appear from outside, it’s way over complicated under the hood. System Design approach must be not to fall in the trap of “8-Fallacies-Of-Distributed-Computing”. When I design and architect or even review, my favorite ones are to solve/look for the challenges related to #1, 2, 3, 4, 7, and 8 (however all are equally important). Which one grabs your focus when you design and architect? please comment, and I welcome your questions and/or suggestions. Image Credit – Denise Yu Twitter: https://lnkd.in/eJYnpCw

Are You Cloud-Native?

December 11th, 2019 | Posted by Vidya Vrat in Architecture | Azure - (0 Comments)

Introduction

Cloud-native is an approach to build applications using microservices, containers, Kubernetes, DevOps, CI/CD, and cloud (public, private, hybrid). With this great combination of great architecture, platform, culture, dev practice, and cloud-computing model your applications will be built for scale, continuous change, fault-tolerant, and manageable. Let’s explore and understand each of the key players in the cloud-native approach.

No alt text provided for this image

Microservices

 Microservice is a small autonomoustightly scopedloosely coupledstrongly encapsulatedindependently deployable, and independently scalable application component. Microservice has a key role to play in distributed system architecture. 

No alt text provided for this image

Microservices architecture offers a lot of benefits, but there is a cost involved. You may want to learn more about its advantages and disadvantages by following the link https://www.linkedin.com/pulse/microservice-architecture-vidya-vrat-agarwal/

Containers

A container is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries, and settings. Containers provide an abstraction at the app layer that packages code and dependencies together. 

No alt text provided for this image

Kubernetes (K8s)

Kubernetes was born from Google’s over 15-year experience running production workloads. It is designed to grow from tens, thousands, or even millions of containers. Kubernetes is a container runtime agnostic. Kubernetes is an open-source container orchestration tool designed to automate deploying, scaling, and operating containerized applications. “Distributed Management and Orchestration “of containers is an integral part of making your application cloud-native, and Kubernetes does it all.

DevOps

DevOps is NOT a “Packaged Solution”. I.e. You cannot buy and install it.

No alt text provided for this image

DevOps is the union of people, process, and products to enable continuous delivery of value to our end users.” – Donovan Brown, MSFT. DevOps is a “culture” (Agile is a mindset), where development, test, and operations work together in a collaborative manner to automate the delivery of quality software. DevOps culture develops a “production-first mindset”. I.e. applying DevOps ensures that your code is always ready to be deployed to production 

No alt text provided for this image

DevOps breaks the wall of confusion between teams and fosters better communication and collaboration throughout the application development lifecycle and results in better visibility and small frequent deployments together.

You can learn more about DevOps here https://www.linkedin.com/pulse/devops-what-why-how-vidya-vrat-agarwal/

CI/CD

Continuous Integration (CI) and Continuous Delivery (CD) enables and empowers any software delivery team in an organization to continuously deliver value to their end-users.

With CI/CD practices in place, development teams are more likely to commit code changes more frequently, which leads to better collaboration and software quality.

Continuous Integration (CI)

CI is the process through which the building and validation of developer code are automated to ensure quality check-ins. You can build a CI/CD pipeline in the DevOps tool of your choice, and for cloud-native it will not be complete unless you have an important step “push the image to container registry”. Here, is a visual of how CI phases look like in Azure DevOps (previously known as VSTS).

No alt text provided for this image

If you are interested in building your own CI/CD pipeline using Azure DevOps then you can read more by following the link https://www.linkedin.com/pulse/building-cicd-pipeline-from-scratch-azure-deployment-using-agarwal/?trackingId=2ZXCXz7mpm8mnjAQB8BF7g%3D%3D

Continuous Delivery (CD)

CD picks up the package built by CI, deploys those into multiple environments like Dev, QA, staging, etc. then runs various tests such as integration tests, performance tests, load test, etc. and if all works fine then on a button click it can be finally deployed into production.

No alt text provided for this image

Summary

While each of the above serves tremendous value in its own entity, but if all the above combined together then it will contribute towards a true cloud-native approach. Imagine using benefits of cloud, microservices, containers, Kubernetes, DevOps, CI/CD combined together, which unlocks the formula to the success of any organization that want to reap the multifold benefits to the health of software, delivering value to the customers, support demand at scale, and lowering the development and operational cost of the application.

If you are not cloud-native yet, then you may be interested in knowing that by 2025, over 80% of enterprise apps will become cloud-based (source: forbes.com) or be in the process of transferring themselves over to cloud-native apps. Are you?

I have worked on a Technical Review assignment for apress on a book “Integrating Serverless Architecture”.

cover

Free Web App Hosting On Azure

February 20th, 2017 | Posted by Vidya Vrat in Azure - (0 Comments)

Abstract

Primarily Azure is known for Pay-As-You-Go but it has some great features and some of those can be used free of cost. One such feature is Azure App Service that allows you to host your web application on Azure, free of cost for life.

Azure App Service

Azure App Service offers a variety of applications which can be hosted under Azure App Service, but this article is limited to Web Apps. You can learn more about various types of application.

Creating Free Azure Service

Login to Azure Portal.

Click on App Services and you will see your App Services panel as shown below (you will see your services listed if you have any; which were created previously).

Click on “+Add” and choose Web App from the screen.

From the next screen, click on “Create”. You may want to take a moment and read the text shown on the screen. I personally admire the Azure capabilities to even host PHP, Node.js, or Python and many more application types.

Now, the next screen will let you specify the name of the free app service.



Choosing Pricing Tier

After filling in the details on the left pane, select “App Service plan/Location”, and from the right pane, select “Create New”. A new window will appear as shown below. Enter Name and choose a location of Azure Data-center to host your app service, and select Pricing Tier.

Click on Pricing Tier will popup a new screen; scroll to the bottom and you will see a free service tier option, as shown below.

Make note that it offers only 1GB space max, and it will be deployed on a shared infrastructure i.e. there might be other websites hosted under the same IIS / Infrastructure. Also, note that it clearly and explicitly calls out 0.00 cost per month, i.e., it’s completely free and for life. Click on “F1 Free” tier and click “Select”. Now, “App Service Plan” pane will update to reflect the changes.

Verify the details and click OK, and now your “Web App” pane will pop up and show the changes applied to your App Service Plan and location.

Verify details and click “Create”. Your Free App Service deployment will start and you will notice that your “MyfreeAppService” appears under “App Services”.

Click on the “MyfreeAppService” to explore this App Service and a whole new pane with lots of options will load, as shown below.

To Test this App Service, click on “Browse” button from the top of right pane and you will notice that website will load in your default browser.



What’s next?

This website shows nothing worthwhile; that is because we just created an Azure App Service which is Free and has no application code in it.

We need to deploy the application to this newly created Free App Service on Azure. Microsoft Visual Studio and DevOps CI/CD are fully featured to let you deploy your web application to this app service and a separate article will better justify this requirement which is next logical step.

Can the Pricing Tier be changed?

Yes, once your application starts to have more features and you want to make it scalable, secure, and take advantage of Azure App Service features, you may want to change Pricing Trier from Free to Paid. This can be done very easily and quickly; by selecting “App Service Plan” and then choosing the Pricing Tier which aligns with your evolving business and application needs.

Windows azure Platform 30 Day Pass

January 11th, 2011 | Posted by Vidya Vrat in Azure - (0 Comments)

Click on the URL http://www.windowsazurepass.com/?campid=9FE3DB53-E4F0-DF11-B2EA-001F29C6FB82 and use promo code MPR001. No credit card required. With the Windows Azure platform you pay only for what you use, scale up when you need capacity, and pull back when you don’t. Plus, get no-cost technical support with Microsoft Platform Ready.

 

Great Azure App- Jumpman Mosaic

May 22nd, 2010 | Posted by Vidya Vrat in Azure - (0 Comments)

Air Jordan is a brand divison of Nike Inc thought of an innovative idea to celebrate their 25th anniversary.

They wanted an innovative web-app which will allow Jordan fans to upload their photos with their favourite Air Jordan shoes which shows thier style/personality type etc. They named this web-app a Social mosaic.

This application is built on Windows Azure using Silverlight with deep-zoon feature, running s on Windows Azure allows the application to be scalable for traffic, as photos were continusously uploaded, and do automatically do all other activities to keep this web-app working.

You can visit this web-app here http://www.jumpman23mosaic.com/

If you hover mouse on the image shown on the home-page (as above) and start rotating your mouse wheel in forward direction then you will see the Deep-zoom taking effect and you will start seeing something like this.

Where Your Data Lives on Azure

May 22nd, 2010 | Posted by Vidya Vrat in Azure - (0 Comments)

Data on Azure lives in PODs (Performance Optimized Data-center) and these PODs are securely placed in various Microsoft Data centers.

Microsoft have multiple data-centers located in USA (Chicago & San Antonio), Europe (Dublin & Amsterdam) and in Asia (Singapore & Hongkong)

These Data-centers are huge in size anywhere from 300,000 sq ft to 470,000 sqft or more.

Features of Windows Azure

May 22nd, 2010 | Posted by Vidya Vrat in Azure - (0 Comments)

Some of the features which makes life so easy when any organization/ISV create applications for Azure

1- Pay as you go model, so you pay what you or your customer uses.
2- Commissioning and de-commissioning of servers are easy and cost-effective
3- Server management is taken care by Microsoft.
4- Database management is taken care by Microsoft
5- You can scale the application as per the demand.
6- You are charged separately for peak and off-peak time.
7- It’s fully compatible with applications running on-premise.