Showing posts with label vBrownBag. Show all posts
Showing posts with label vBrownBag. Show all posts

Sunday, December 27, 2015

Go Go Go: Golang is the way for me to go

It all started with this picture.

What do you see?

I see a happy environment with 2 essential elements.  All the characters are happy and there is food.  After all this is what I am trying to pursuit all these years.  A happy working environment and be able to provide food for the family.  

With these 2 things (happy working environment and food for the family) I have decided to learn this "new" language. An of course, I started with writing a Hello World program.  Even this is a simple program it provides some some insight as to how this language looks like.  In this blog post I am not going to dig into the language itself.  If you are interested, I will be presenting "Introduction to Go" on Dec 30 8:00 pm EST for Commitmas vBrownBag.  Once I got a link to the presentation, I will update the post to reference it.  Registration for the event is here.

So what are we to talk about here?

The purpose of this post is to have a glimpse of Go from a high level.

Go is developed in response to specific problem that Google encountered in software development and deployment.  According to Rob Pike one of the 3 original designers of Go along with Robert Griesemer and Ken Thompson defined Go as a:

  • Complied
  • Concurrent
  • Garbage-collected
  • Statically typed language developed at Google around 2007 for efficiency, scalability and productivity

These 16 words summarized what Go is cleverly and precisely. 

Efficient, Scalable and Productive

The Go language is created with the goal of being efficient, scalable and productive.  Google’s infrastructure is huge and some of the software that runs this infrastructure is also huge.  Even building the software image may take up to 45 minutes.  Imagine there is a one line change to fix a critical bug that needs to be deployed immediately. For the developer to make the change and build the software already takes 45 minutes and then go through testing and then another production build and then deploy.  The turnaround time is measured in unit of hours.

Compiled

I don’t know about Google’s infrastructure but one of the advantage of Go is that it works on Windows, Mac and Linux.  Once a program is written it can be compiled and run on one of the 3 platforms mentioned about.  This bring another point on Go.  It is a compiled language.  Python which make up of 99% of OpenStack is not compiled.  It needs a interrupter to run the code.  Compiled means the software will generate an executable and then being ran.  Compiled program run faster than language with an interrupter.

Garbage-collected

One of the build in feature of Go is "Garbage-collection".  This term is about memory management for the language.  The designer of Go see that lots of coding is done in the case of C to manage the allocation and freeing of memory.  If the language can ease up the mundane but necessary task of memory management, developer and spend more time effectively on the feature itself.  Another build-in feature of Go in memory management is how the stack is handled.  Stack size in Go is dynamic.  If more memory is needed for the stack a new block of memory is allocated and be used for the stack.  Developer does not need to worry about stack overflow crashing the program.

Static Type

A type describes how memory is used.  A type can be a integer, a string etc.  Type is Go is say to be type safe meaning the compiler at compilation time check the usage of memory variable and will not allow the developer to assign a string to a previously integer variable.  This can be done in Python and the designer of Go decided that this is "dangerous" and make sure the types are diligently checked at compilation time.

Concurrent

This is a famous feature of Go taking advantage of the multi-processor of the modern hardware for instruction execution.  I read somewhere on the web using a simple for loop takes 42 ms to complete a task and written in Go with concurrency take only 14 ms.  This is a deep topic and I will dig into this more in the future and for now we just from a high level, know that Go has the ability to execute the instructions faster thus fulfilling the design goal of efficiency.

A very developer friendly language

Besides what Rob Pike's explanation of Go, I have found that Go is really a very developer friendly language.  Go function is able to return multiple parameter and this makes debug much easier.

Go has lots of build-in packages for modern day applications such as JSON processing, networking or web processing.  This makes developer's job much easier and no need to re-invent the wheel.

Go has a rich ecosystem on tools as well as build-in testing and bench-marking support.  This helps to validate local function modification.  This testing and bench-marking support is also in line with DevOps or Agile programming practice.

Golang is the way for me to go

This is only a glimpse of the language Go.  There are much more to it but after looking at this language for almost a month, I have decided that if I were to learn any new language, Go or Golang is the one that I am going to pick up because it aligns with my programming philosophy and practice.
          

Monday, November 30, 2015

Nothing published this month - Did I stop learning?



Last night when I apply for the 2016 VMware vExpert program, I realized that I did not publish for the month of November.  This is the exact opposite of November 2014 where I participated in the “30 blog in 30 days”.


If you read the description of this blog, it said – “A blog to share security, networking and cloud related technology information as @vCloudernBeer picked up on his search for his destiny in the cloud”.    

Well does it mean that I did not pick up anything this month?  

That's correct, the answer is NO (double negative). 

What have I done?

Actually, I am learning more and thus I do not have time to write.  Blogging is important and it helps me to truly understand a given subject.  And it is fun to write and to share ideas, knowledge or experiences to the community.  It is for sure a win situation for me and I hope it is also a win-win situation for me and my audiences.

Another reason that I did not publish any post this month is that being a software developer for networking equipment, I am trying to find a job that is cloud related.  There are so many things/skill to pick up and I figure that I have “talked” enough and it is time for me to “do something”.  I need to work on some project and I need to be proficient in using GitHub for open source project collaboration.

I told my wife, to contribute to open source in my situation is just like trying to learn how to play a musical instrument from YouTube.  Everyone has the impression that it is open source and you just dig in and look at source code and then contribute.  What I have found is that understanding the code and even to make changes is not so difficult since I am a software developer.  What I found difficult is to create a testing environment to test my changes.  Unit testing is very important for software developers.  I am a true support of “Test Driven Development” methodology.  In practice I may not be able to follow this TDD methodology but I try to test my code as through as possible.  It is very important for me to create a test environment. I need to pick up more operator skill to augment my software development skill.

Instead of writing, I tried to follow the step-by-step guide that is available on the web and try to create for myself test environment for different projects.  I ran into equipment problems where I found that my home lab is not quite ready to create a stable open source development and testing environment.  This weekend, I will be converting my Dell T-110 that has 16 GB of RAM running Windows 10 from a hard disk to SSD.  After that conversion I am going to duel boot this machine with Windows and Ubuntu 14.04.   Well, 16.04 is coming and I better get my environment up and running soon.

Commitmas

In the month of December, I will not be publishing blog post much because I will be participating in a community driven event - #commitmas in which I will learn along with the community on how to be more proficient in using GitHub.  If you are interested also, take a look here and consider joining this community event either to learn, to teach or both at the same time.

vBrownBag (as always) is nice enough to host a series of special podcasts on different aspects or pro-tips of using GitHub.  I will be giving a presentation Dec 30 - Bringing it all Together - Intro to Go. And do join me and see how I did in presentation a boring subject.  You can register for the podcast here.







Thursday, September 10, 2015

My first VMworld - It was simply awesome



Last week I was able to attend this renowned number 1 IT conference that everyone talked about - VMworld.

I arrived on Sunday afternoon and left Thursday evening.

It was a wonderful experience and when I left the conference I wrote this on Twitter:

 

In short, this summarizes my first VMworld.  I had good experience, memory and friendship.

Before I went I have no idea what I will encounter at the conference.  I worried being alone in a BIG crowd but the Twitter community immediately ensured that I would not be. I had written a blog post setting my theme to VMworld 2015 – Experience.

I was to experience VMware in 3 ways:
  1. Technologies
  2. People
  3. Community
As I reflect on the conference this is what I experienced at VMworld.


Technologies of VMware

There are tons of blog posts on what was announced at VMworld 2015. I like this post the most which stated the following points:
  1. VMware public cloud gets vCloud Air SQL, Site Recovery Mgr Air and object storage
  2. Working with Nvidia's Grid 2.0 on virtual desktop
  3. VMware Integrated OpenStack rev 2.0 (based on Kilo release)
  4. VMware vSphere Integrated Container and Photon Platform
  5. vSphere storage driver for ClusterHQ Flocker
It is clear that VMware is getting into the container space under the umbrella of Cloud-Native Apps which also includes technologies such as Docker containers as well as DevOps.  At VMworld 2015 there is a 3 day DevOps mini conference – DevOps @ VMworld held at the Hang Space with keynotes and hands on training.  There is also the Developer Day and Hackathon on Wednesday.  Participants of the hackathon were given a free one day pass to VMworld (if they have not registered to attend VMworld) and a $600 credit for vCloud Air.

People of VMware

For me this is the best part of VMworld.  At the conference people of VMware get together to talk and to exchange ideas or concepts.  At the conference, friendships are built and this is why we have such a strong VMware community.  Even being a first time attendee of the conference I could already feel the bonding effect among the attendees.

The VMunderground events on Sunday that began at 1:00 pm was just amazing. People in this event mingled well and everyone was extremely friendly.  I, am a nobody in the VMware community was able to meet some VMware “hot shots” and was greeted with friendly smiles and warm conversations. 

Every day, the Partner Exchange was very crowded and was difficult to move around.  Still people were very cordial and would give others the right of way if they were on a collision course in a tight space.  After all there were 23,000 people at this conference.

I also attended a few parties hosted by different vendors and I was able to interact with different people.  I was able to encourage one person to start blogging.

Some of the people I met, I recognized them not by their face but by their Twitter handle. And in one instance, I have a change to tell the story of my Twitter handle - vCloudenBeer (ping me on Twitter if you want to know the story).

Community of VMware

There are 2 specific communities that I am involved in. The first one is VMUG and the second one is vBrownBag.

VMUG is the best place to learn, network and to share. This year VMUG was having a lounge at Moscone West 2nd floor instead of just a booth at the Partner Exchange.  Attendees were able to play games, relaxed and to talk to different people at the VMUG Lounge.  The staffs from VMUG headquarter were all very friendly, capable and organized. I took a picture at the VMUG Lounge where they provide a photo booth for members to capture memories.

The vBrownBag crews were busy from Monday to Thursday.  Lots of people signed up for a 10 minutes slot to present different topics.  Some were rookies like me and some were VMware veterans. Complete schedule of all the presentations can be found here

My presentation was on Wednesday and you can view it on YouTube with the slide deck posted here. Comments on the presentation are welcome as I wanted to improve my presentation skill.  My presentation topic was on "Microsegmentation - a perfect fit for Microservices security" which some how aligned with one of the highlighted topics of WMworld 2015 by VMware.  Before the presentation I have written blog posts on this subject.  One of these blog posts (A new chapter in Docker Networking) was featured at the DockerWeekly.  This was encouraging and elevated my confidence during the presentation because being featured at DockerWeekly validated my presentation content.  After all this was VMworld and not just any event.

Thanks to James Brown (@jbcompvm), I was able to take part on another vBrownBag slot talking about Virtual Design Master as a participant sharing my experience and benefits from the contest. It was in a form of penal discussion.  English being my second language, this is a bit challenging to me as the session is not scripted nor based on PowerPoint that we can expand on or reference to. It was free form question and answer. If interested, you can watch this here.   

With these efforts I am now a proud owner of this polo shirt


It was simply awesome

Yes, it was simply awesome. I did not attend a single session nor tried any Hands-on lab at WMworld but I had a great time interact with different people and felt the bonding effect of the conference.  Of course I bought home a whole bunch of new t-shirts and other swags.

Next year VMworld will be held in Las Vegas and I am looking forward to experiencing the technologies, people and communities of VMware again. 

Saturday, September 27, 2014

VMUG - a platform for us to learn from each other.



This week I do not have any technical information to share because I have to prepare for the Southern California VMUG Conference that was held on Sept 24, 2014.

I think VMUG is a good platform for us to learn from each other.  I always like to say “I know some and you know some, let’s share what we have”.
 
Southern California VMUG Conference is a one-day event and we are fortunate to have Scott Lowe to be the Keynote speaker.   

Scott is a well-known author, speaker, and blogger.  His blog is here which has tons of useful information.  Scott said that he did not blog as much as before because of his busy schedule at VMware.  Scott is a very dynamic speaker.  A seasoned IT guy told me even if Scott talks about XML(a very boring subject), he will still listen with eagerness.

Scott has a slide to introduce himself.  This slide has his name, him being a VCDX, his twitter handle, blog URL and interestingly also include his life guiding principle – Col 3:17 NIV. 

The title of Scott’s keynote is “Closing the Cloud Skills Gap”.   The basic idea is that we need to venture out to sharpen skill to stay relevant.  According to IDC there will be 7 million cloud related jobs worldwide in 2015.

Scott asked what kind of skills that we are working on.  There were many answers from the audience.  Some say Docker, some say OpenStack and so on.  All the answers are technical skills.  Scott show us this slice:


This got us all by surprise.  I have never thought of this before.
The top 5 job skills that are needed in a cloud computing environment are:
  1. Risk Management
  2. IT service management
  3.  Project/program management
  4.  Business-IT alignment
  5. Technical skills in cloud implementation

As you can see from the list technical skill that we got the answer from the audience is only the 5th in the order.  Business leaders will not care if OpenStack or CloudStack is used.  As long as the ROI (Return On Investment) is met or business goal is met the tool used is not important to the business leader.

The cloud industry needs someone to bridge the gap between the technology and the businesses leaders.

After the keynote, there are other breakout sessions and the agenda can be found here.

After lunch was the vExpert panel and various things were discussed.  The hottest topic is EVO:rail and the hyper-convergence platform.  One panelist mentioned that Hyper-convergence is only good for SMB. One of the panelists Alastair Cooke mentioned that we need to understand the application and the work load before choosing a hyper convergence platform.  VVol was another topic being discussed.  When I looked up VVol I was surprised that this was around in 2012.  You can find a good blog about VVol here.

After the vExpert panel was other breakout sessions.

This year I did not attend any breakout sessions because I was fortunate enough to have 2 vBrownBag presentations at the conference.  I like the idea of sharing what we know. Check out my vBrownBag presentations on VXLAN and Virtual Design Master.

For me twitter is also one good platform to share ideas besides technical conferences.
After the conference there were parties hosted by Veeam at Marriott where the conference is held and Nutanix at Morton's Steakhouse.  I met different people at both parties and had good conversations.  Sometimes you can learn more by talking to different people than going to technical sessions in a conference. 

The sliders at Morton’s were very good.  I wish they have draft beers also.