Showing posts with label cloud. Show all posts
Showing posts with label cloud. Show all posts

Monday, February 4, 2019

Web App Deployment in Azure



Azure App Service Web Apps (or just Web Apps) is a service for hosting web applications, REST APIs, and mobile back ends.

Web Apps has,
You can also take advantage of its DevOps capabilities, such as continuous deployment from Azure DevOps, GitHub, Docker Hub, and other sources, package management, staging environments, custom domain, and SSL certificates.

You can scale up or out manually or automatically. App services are ISO, SOC and PCI compliant.

In Azure apps runs in an App Service plan. It defines set of compute resources for a web app to run. These resources are much analogues to a server farm.

Pricing tiers (Hosting plans in depth)

Shared compute (Free and Shared): Runs on same Azure VM as other App service apps. These resources cannot scale out- Intended only for development and testing

Dedicated compute (Basic, Standard, Premium and Premium V2) runs on dedicated Azure VMs. Only apps in same App Service plan share the same compute resources. Higher the tier, the more VM instances are available to you for scale-out

Isolated : Runs on dedicated Azure VMs on dedicated Azure Virtual Networks, provides network isolation on top of compute isolation to your apps. Provides maximum scale-out capabilities.

Consumption: Only available for function apps. Scales the functions dynamically depending on the workload.

Except Free and Shared tiers (which cannot scale out), if multiple apps are in same App Service plan, they all share same VM instances.

Azure - Comparison of Web hosting options

Azure offers several ways to host web sites: Azure App Service, Virtual Machines, Service Fabric, and Cloud Services. Azure even supports Azure dedicated hosts where you can configure to use a single physical machine for all your applications and servers in Azure.
https://docs.microsoft.com/en-us/azure/app-service/choose-web-site-cloud-service-vm

Deploying Web Apps from Visual Studio

You can directly publish to Azure Web App from Visual Studio using publish tool. When you give azure subscription details and web app you want to publish to, Visual Studio will directly publish the files to the web app. Kudu is the engine behind git deployments in Azure.

If you had hosted a web app with a previous version, when upgrading you'll run into Cannot find compilation library issue which can be solved by clearing wwwroot folder

Azure Web Apps carries capability to scale up (More CPU, memory disk space) as well as Scale out (Increase number of VM instances).

Monitoring Web Apps in Azure

There are few tools Azure provides to monitor web apps in Azure. You can define rules which gets triggered based on a condition such as spikes in request count, CPU usage etc.


You can also monitor Metrics in Azure. It gives real-time overview of how the application behaves in different metrics.



Logs are important in any web application to see what kind of errors, warnings applications gives when running. App service logs and Log stream helps you seeing these. You can configure these in App service logs to view in Azure itself via. Log stream or upload it to storage of file system.


Process explorer is not frequently used feature which enables us to see currently running processes.

Running Performance Tests in Azure Web Apps

Azure Web Apps allows you to run performance tests.


But theses performance tests are now deprecated. There are few reasons why cloud based load testing is reaching end of life due to how practical and pragmatic load testing are. Therefore performance tests in Azure is reaching end of life.

Deciding correct Azure compute service



Web Apps in AWS - EC2

AWS carries option of Amazon EC2 for app deloyment. You can deploy ASP.NET Core 2.0 apps in AWS

Saturday, November 10, 2018

Overview of Azure Storage


Azure storage provide cloud storage that is highly available, secure, durable, scalable and redundant. It includes,
  • Azure Blobs (objects)
  • Azue Data Lake Storage Gen 2,
  • Azure files
  • Azure queue and
  • Azue tables

Blobs - Scalable object storage in Azure

Blob storage is a massively scalable object storage for unstructured data such as images, videos, audio, documents etc. These objects can be stored in hot, cool or archived tiers depending on frequency of access. 


  • Hot storage: For frequent access
  • Cool storage: Infrequent access
  • Archive for rarely accessed data
  • Premium tier (new) : Low latency accessed data

Storage account

All access to data objects in Azure Storage happens through a storage account. It contains all your Blobs, files, queues, tables and disks. There are few options like General purpose V1, V2 and Blob storage. Azure recommends V2 for most scenarios. You can always upgrade from V1 without any downtime.

All data in storage account is encrypted on server side using 256-bit AES encryption. Encryption does not affect Azure Storage performance. By default access is allowed only to the account owner. You can control this with Azure AD, shared key authentication etc. 

You can define CORS urls in Azure for storage accounts. 

Container


A container organizes a set of blobs, similar to a folder in a file system. All blobs reside within a container. A storage account can include an unlimited number of containers, and a container can store an unlimited number of blobs.

Blob

  • Block blobs store text and binary data
  • Append blobs are made up of blocks like block blobs, but are optimized for append operations. Append blobs are ideal for scenarios such as logging data from virtual machines
  • Page blobs store random access files up to 8 TB in size. Page blobs store the VHD files that back VMs
There may be times where large data-sets and network constraints make uploading data to Blob storage over the wire unrealistic. You can use Azure Data Box Disk to request solid-state disks (SSDs) from Microsoft. You can then copy your data to those disks and ship them back to Microsoft to be uploaded into Blob storage. (Covered below)

To ensure your data is durable azure storage replicates multiple copies of data. You can select from following options for this,
  • Locally redundant storage (LRS)
  • Zone redundant 
  • Geo-redundant
  • Read access Geo redundant

Getting started is very easy, as mentioned in Microsoft docs tutorial, Clone the git repo. Set the connection string of your storage account and run. It will do,
  • Create Blob container under selected account
    • Get a reference to blob container 
    • Set access to public
  • Create a file in local environment
  • Get a reference to block Blob 
  • Upload created file to block Blob
  • List all block Blobs
  • Download uploaded file

Little bit more on Amazon S3, 
There are many many large companies which uses Amazon S3, one of them is Netflix (Why Netflix migrated to AWS). Netflix even have geographically redundancy of there servers.  There are other popular clients like Airbnb which uses Amazon S3 for storage.

Azure Files


Offers file shares in cloud accessible via standard Server Message Block protocol. Azure files can be used to,

  • Replace on-premise file severs
  • Lift and Shift (strategy for moving an application or operation from one environment to another – without redesigning the app) applications
More reads,

Azure Data Lake




Data lake is a storage repository, usually in Hadoop, that holds a vast amount of raw data in its native format until it is needed (Why use a data lake). It is a central repository allows you to store all your structured/unstructured data at any scale. You can run analytics from dashboards, visualize for big data processing and machine learning for better decisions. (Best Practices, Azure Data Lake Storage Gen1 vs Azure Blob Storage, Azure vs AWS)




Azure Queue Storage


Provides asynchronous cloud messaging between app components. Single queue message can be up to 64KB in size and a queue can contain millions of messages. 

Common usage include
  • Creating a backlog of work to process asynchronously
  • Passing messages from an Azure web role to an Azure worker role

Another alternative to queue storage is to use Service bus (Comparison) which is more enterprise. There is no direct alternative to Service bus in Amazon but Amazon got Simple Queue Service (SQS) for the same purpose. Google cloud got Cloud Pub/Sub.

Azure CosmosDB (Alternative to Table Storage)


Table storage is a NoSQL key-value store for development using datasets. It uses JSON to serialize data and can perform OData-based queries. But as an alternative Azure Cosmos DB can be used to achieved for same purpose. It offers throughput-optimized tables, global distribution and automatic secondary indexes. (Azure table storage vs CosmosDB Table API). Azure CosmosDB is a very secure database.

Alternative to CosmosDB in AWS is DynamoDB (See a comparison). 

Azure Data Box


Is a on-premise offline physical box which can be used to transfer TBs of data between your offline premise to azure cloud more easily when busy networks aren't an option.

Data box accommodates both offline and online (Creates a link between your site and azure) scenarios.

Case Study

Cloud Storage options in AWS

AWS also has many cloud storage options. It has many options which is highlighted in the following article. Cloud Storage options in AWS

Cloud Storage AWS vs Azure

It's natural for us to compare what other options are there compared to Azure. While going through the options available in both AWS and Azure. Here's a comparison of both the platforms. 

Further reads,


Friday, June 15, 2018

Internet of Things

IoT, Internet of Things is a system of interrelated computing devices which communicates over a network and can be remotely monitored.

Image Credits: Embitel India 
Some of the key goals of IoT is to,

  • Improving business processes
  • Improving customer experience
  • Reducing costs
  • Increasing competitiveness
Some of the challenges in IoT are,
  • Data/network security
  • Integrating with business processes
  • Expected ongoing costs
  • Upfront capital investment requirements
  • Integrating with existing ICT infrastructure

Edge Computing

Edge computing is the practice of processing data near the edge of your network, where the data is being generated, instead of in a centralised data-processing warehouse. (Microsoft Azure enables a new wave of edge computing. Here’s how.)



Friday, March 30, 2018

Wednesday, January 1, 2014

Load Balancing

Distributes workload across multiple computing resources. Load balancing aims to optimize resource use.


IIS - HTTP Load Balancing using Application Request Routing

Also look at this video


Configuring Web Farm in IIS
https://www.youtube.com/watch?v=HSvbjfsitmU


Resources
http://en.wikipedia.org/wiki/Load_balancing_%28computing%29
https://www.google.com/search?q=load+balancing&ie=utf-8&oe=utf-8

Saturday, October 5, 2013

Design patterns for cloud


Strangler pattern

Incrementally developing a newer system replacing the old system. Parts of the old system is replaced with features in new system eventually replacing the complete system. This pattern is mainly helpful for backend systems (API).


Federated Identity Pattern

Delegate authentication to an external identity provider. Simplify the development, minimizes requirements for user administration. 

Cache-Aside pattern
Load data on demand to a cache. Can improve performance.



Wednesday, August 10, 2011

Introduction to Cloud Computing

What is cloud computing?
Large group of remote servers networked to allow centralize data storage and online access to computer services or resources. (Wikipedia). Cloud computing can be classified as private, public and hybrid.

Fundamental models 

Infrastructure as a service (IaaS)
Provides Virtual Machines, Servers, Storage, Load balancer's etc.

Platform as a service (PaaS)
Typically provides execution runtime, database, web server

Software as a service (SaaS)
Provided access to software and databases. Cloud provider manages the infrastructure. Also known as On demand software. Usually priced pay per use. 



Deployment models

Private cloud
Typically used for a single organization 


Public cloud
Open for public use. Technically there may not be any difference between between private and public clouds however security considerations are different. 

Web Server, Garden and Farm

Web Garden scales across multiple processes
Web Farm scales across multiple servers

Hybrid Cloud




Some of the enterprise software companies include
Hewlett Packed Enterprise - https://www.hpe.com/





Powered by Blogger.


Software Architect at Surge Global/ Certified Scrum Master

Experienced in Product Design, Software Engineering, Team management and Practicing Agile methodologies.

Search This Blog

Facebook