RSS

Author Archives: ranganathg

Getting started with Kubernetes

I have started understanding Kubernetes aka k8s as part of my work recently and went through some learning. I will share some high level notes which I have made while reading through different content and also the links to resources for a quick getting started.

Pre-req:

  • Good to have a high level understanding of containers (Docker etc)

Learning links:

  1. Kubernetes tutorial – this is the first link I went through to get a very high level overview of what Kubernetes is and how do we go about using different commands on the k8s cluster.
  2. Scalable Microservices with Kubernetes – this is a very good course on Udacity which gives very good overview. This same course is referenced from the above tutorial.
  3. Using Visual Studio Team Service to deploy applications to Azure Container Service – This blog talks about using VSTS Release Management solution to automate deployments to K8S

Learning notes:

  • In simple terms you can consider k8s as a platform for containers cluster management.
  • A k8s cluster has a master node – which manages the cluster and a set of other nodes – which are workers that run the applications. For a production traffic scenario, k8s cluster should have atleast 3 nodes
  • Key terms in k8s – Deployment, Pods, Volumes, Services, kubelet, ConfigMaps/Secrets etc
  • minikube is a light weight k8s implementation that creates a VM on local machine and deploys a simple cluster with one node.
    • While following the Hello Minukube section on windows, you can run “minikube docker-env” instead of “eval $(minikube docker-env)“. Once the “minikube docker-env” command is executed it prints a message with the subsequent command (a for loop) to be run to set certain variables, ensure to run that step
  • kubectl commands are used for all the cluster management

Lets understand the key terms:

  • Deployment: 
    • is a declarative way to say what goes where in the cluster
    • use ReplicaSets to maintain enough number of Pods as the desired config state
    • used to enforce the desired state as provided by the user
    • if a node goes down, deployment takes care of creating a new pod and place it into the available nodes
    • create a ReplicaSet to handle pod creation/deletion/updation
    • own and manage ReplicaSets
  • Pods:
    • Logical Applications
    • each pod has one more containers. When you have apps that have hard dependency on one another, you package them to the same pod
    • Shares volumes. Volumes live as long as the pod lives
    • has a shared namespace – help in containers to communicate with each other
    • each pod has one IP address
    • containers in a pod can communicate with each other using inter-process communication (IPC). Containers in different pods have different IPs, hence can’t communicate using IPC
    • Why Pods?
  • Volumes: 
    • you can consider them as shared storage
  • Kubelet:
    • each node has a kubelet
    • manages the pod and containers running on it
    • its an agent which helps the nodes to talk to master
  • Services:
    • defines logical set of pods and policy by which to access them
    • provide persistent endpoints for pods
    • enable loose coupling between pods
    • are defined using YAML/JSON
    • set of pods targeted by a service is determined by label selector
    • pod’s IPs are not exposed out of cluster without service
    • services have a integrated load balancer to distribute network traffic to all pods
    • you can expose you pods/containers using “kubectl expose” command
    • While creating the service following the “Hello Minikube” Section, set the type as NodePort in case the LoadBalancer type doesn’t work.

Kubernetes is very actively worked on and many things are rapidly changing. There is an interesting talk from Deis (PaaS on Kubernetes), in which it is mentioned that in CNCF “Kubernetes  has been offered as a seed technology” – this also signifies that k8s is a good technology to invest your time to learn.

PS: Azure has a very strong support for containers, container registry, different orchestration platforms like Docker Swarm, DC/OS, K8s. Do try out things on Azure and keep learning.

Advertisements
 
Leave a comment

Posted by on July 27, 2017 in Containers

 

Tags: , , ,

Electricity transfer process for a new flat in Hyderabad

(First non-technical post on my blog ;-))

This post is to highlight the simplicity in the process of transferring electricity bill to an individual’s name from Builder and encourage people to avoid using an agent help (especially avoiding the special pricing part). The overall process hardly take an hour and is cost effective.

Below are the steps and required documents:

  1. Take a printout of the document shared here, this document needs to be signed by your builder. Fill all the required details before giving the document to the builder
  2. Carry a Xerox of your latest EC. (not more than 3 months old). It takes about 250 Rupees to get a new EC. You would receive the EC within 4 days. You can save this 250 if you have a latest one.
  3. Take 2 copies of the Sale deed on both sides. One is needed for address change and the other for title change.
  4. 2 Passport size photos
  5. ID Proof
  6. Latest electricity bill
  7. You would need a Rs.100 Title Change Indemnity bond.
  8. You need to pay a Rs.25 challan
  9. Link document (both sides) if flat is land owner’s flat
  10. Rs.10 NOC by the joint owner, in case your flat is jointly owned.

Go to the near by electricity department with the above mentioned documents. There are enough shops around the electricity board where you can get bond mentioned in point 7 (even though it is 100/-, you would end up paying 160 or so depending on the shop). Usually there would be someone around in the board who would help you organise your documents and help in submission. I found the staff in Kukatpally electricity board really helpful and they didn’t expect any money.

In this process, you would maximum spend an amount of 500/-. If you try to go through a broker you would pay around 1200/- to 1500/- (it can vary depending on your relation and negotiation). The difference here might not be high but the point is if we understand the system, we can appreciate how things are organised, else we keep cribbing about bribery. Even if couple of folks avoid paying additional prices after reading this, I would be happy 🙂

Thanks!

 
Leave a comment

Posted by on March 1, 2017 in Uncategorized

 

Web debugging tip : Using Fiddler to load local files instead of remote files

I was recently asked a question by one of my team mates if there is a way to load a file locally instead of the remote file, keeping rest of the files served from the remote server. My instinct said it should be very well possible to do it. I did a quick search and found an interesting feature in Fiddler, it is named “AutoResponder”.

autoresponder

 

Here is a good video by Eric, the creator of Fiddler which talks about it

As shown in the video, you can create a rule which can say – given a request which matches a pattern pick a local file. After adding the rule, do select “Enable rules” for the rules to take affect. Make sure to select “Unmatched request passthrough”, else all the requests which doesn’t match the rule will fail.

You can also do little advanced things using FiddlerScript. For example: if you want to pick a local file which matches a pattern, you can write code in OnBeforeRequest() and specify the pattern match by your self.

And in order for these rules to work, you shouldn’t bundle your files for obvious reasons 🙂

 
Leave a comment

Posted by on February 13, 2017 in Uncategorized

 

Continuous Delivery to Azure App Services using VSTS Release Management

Our team has been working on a very important feature addition to Azure App Service for the last couple of months which went Preview in the recent connect() 2016 event. I have built most of the UX and back end for enabling this experience.

This is feature is about how to make it easy for a customer to configure Continuous Delivery/Deployment from the new Azure Portal for a given App Service. The Source code can be either in VSTS (currently only Git Repos are supported) or Github and the applications can be either ASP.NET or ASP.NET Core.

A detailed blog post can be found here – Continuous Delivery to Azure App Service

A video of the demo shown at the Connect() event by Brian and Jamie can be found below (You can skip to 55 minutes to start seeing our experience :))

Do try out the new feature and share your comments.

https://channel9.msdn.com/Events/Connect/2016/ALM-DevOps-with-Brian-And-Jamie/player

 
Leave a comment

Posted by on December 28, 2016 in DevOps, Microsoft

 

Tags: , , , ,

Load Testing Azure WebApps from Microsoft Azure Portal

I am excited to share about a great feature added to Azure Web Applications experience in Azure Portal, which is the capability to do Load Testing of the web application right from the Azure Portal. There is a detailed blog post on Visual Studio MSDN Blogs about this announcement – Announcing Public Preview for Performance/Load Testing of Azure WebApp. Similar announcement on the Azure blog – Public Preview of Performance Test on Web and Mobile App.

Here are two videos on the topic on Channel9 (Do watch them):

  1. Azure Friday Video on Performance Testing Web Apps
  2. And follow up video on doing Advanced scenarios from Visual Studio Enterprise

I know what you are feeling, the experience and the User Interface looks just brilliant, right?. Yes, Its brilliant. There has been a great effort behind it building this experience :). There were good challenges and great great learning as well.

And I do think you would be interested in understanding how is the new Azure Portal being built. There is a very good blog from Justin Beckwith which explains this stuff perfectly – Under the hood of the new Azure Portal. I recommend this as a must read blog to know about the new portal. Make sure you watch Steve Sanderson video as well, its really cool.

Please do try out the new feature and share your valuable feedback.

Question and Answers.

Question: How to use an existing Visual Studio Online account work with the new Load/Performance Test Experience in Azure Portal?

Answer: Your Visual Studio account should AAD backed. To know if you account is AAD back you can go to the account settings and figure if it AAD backed. Else you can follow the link provided there 

There is a blog post which should make things easy: Link Visual Studio Account to Azure

Question: [A very very rare scenario] I am facing issue setting an account like mentioned below. How to unblock my self?

SadCloud

Answer: You shouldn’t be seeing this at all. But there is a very negligible chance you might face this. In such cases, you can click on the gear button at the top right corner of the Azure Portal that takes you to the “Portal Settings”. Here you can click on the “Discard modifications” button and things should start work.

Gear

Settings

The impact of this change is that it would clear any user settings in the Azure Portal like the pinned tiles on the home page will be cleared and specific user settings that are customized would be reverted and portal would be started afresh. Please note that it would not clear any application data.

 
Leave a comment

Posted by on September 16, 2015 in Cloud Load Testing, Load Testing, Microsoft

 

Tags: , ,

Roslyn – The .NET Compiler platform

Roslyn is the .NET Compiler Platform which provides open-source C# and Visual Basic compilers with rich code analysis APIs. Roslyn exposes modules for syntactic analysis of code, semantic analysis, dynamic compilation to CIL, and code emission

I heard about Roslyn during one of the Hackathon events but didn’t get a chance to explore it till couple of days back. As part of the recent Hackathon, I got a chance to work on a project which needed Roslyn help to make my work quick and easy. I was amazed at the easy at which we can use the compiler service. This tutorial helped me to quickly get on track, thanks to the author – Learn Roslyn Now. The same author have a FAQ section which gave me a path to many of my requirements for the project like given a particular piece of code in a workspace how do I find all the references across the solution etc etc.

This Hackathon was a great learning and a great fun. The most memorable part being demoing this project to one of our CVPs :). I should be very thankful to one of my team mate for the idea!

Do read about Roslyn and get amazed 🙂

 
2 Comments

Posted by on July 31, 2015 in Coding, Microsoft

 

Getting started with TypeScript

I have been working on TypeScript for the last few months and would like to share a list of getting started pointers to quickly get a hang of the language.

If you are wondering what is TypeScript:

“TypeScript lets you write JavaScript the way you really want to.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.”

Start:

1. Introduction to TypeScript by Anders Hejlsberg, the man who developed this language. You should definitely read about his earlier works, pretty impressive 🙂

2. There is no better place to start than from the official TypeScript language page – TypeScriptLang (Yes the above definition is from this link)

– You have a nice playground to play around TypeScript right inside the browser under the Play tab

– Language spec, samples, Handbook, tutorials etc.

3. Recently I have noticed a good course on edx.org and found it good – Edx Introduction to TypeScript

– This has introductory talk from Anders Hejlsberg

– Exercises to work on.

4. The rise of TypeScript – Interesting reading

5. Channel9 do have many videos on TypeScript.

Hopefully the above reading should help you understand why should you use TypeScript when building heavy applications for web.

For those who are interested in exploring further – I found some real good discussion on Pros and Cons of using TypeScript which gives you a good food for thought. Do search on web and read those as well

As always please do share any interesting articles on TypeScript for other readers.

 
Leave a comment

Posted by on June 18, 2015 in Coding

 

Tags: , ,