Thursday, August 22, 2019

A Brief History of Kubernetes - Taking a Look Back

In my role, I often talk about Kuberenetes in terms of how the technology works but also the upstream business value that can be achieved from adopting it. 

2019 marks the 5 year anniversary since Kuberenetes was announced at DockerCon. In that short period of time it has matured rapidly and become the de-facto container orchestration solution used by many organization. As such, I thought it would be useful to share a brief history of where this revolutionary technology started:

    1. In 2003; BORG was created by Google to schedule, run & manage many of their services
    2. Process Containers were introduced because process management didn’t scale well
    3. CGroups were formed from these
    4. CGroups are now the foundation for container technology
    5. In 2008 Linux containers began adopting container terminology 
    6. Linux containers is then what docker was built upon
    7. In 2009 Google created Omega Project to improve the BORG ecosystem
    8. The primitives created from Omega Project then carried through in to kubernetes, such as the scheduling unit eventually becoming what we know as Kubernetes Pods
    1. In March 2013 Docker was released as open-source
    1. Docker were the first to make it really easy to run/configure/share containers on a single host
    2. The next stop was to do this across multiple hosts so that scale could be achieved
    3. At the end of 2013 Project7 was proposed inside Google to create a container management & orchestration solution to lay the foundation for the future of "Cloud".
    4. Project7 project name was based on a Startrek character - You will see the Kuberenetes logo has seven sides
    5. In 2014 - Kubernetes was announced at Docker Con by Google. Following this; RedHat, Docker and coreOS quickly joined the community which lead to the first Kubernetes Contributor Conference 
    1. In 2015 version 1.0 of Kubernetes released
    2. Later in 2015 was first KubeCon event was launched and the Cloud Native Computing Foundation (CNCF) group was formed
    1. In 2016; the first SIG (special interest group) was formed
    2. In 2017; the Custom Resource Definition (CRD) API was introduced. This feature allowed you to define your own Kubernetes style API; A way to extend, build and customize things on top of Kubernetes. RBAC was also introduced and major cloud providers started announcing native support for Kubernetes 
    1. Kubernetes is now recognized as the de-facto container orchestration engine
    1. In 2018; Kubernetes was the first project to graduate from CNCF incubation 
    2. Kubernetes is the now the # 2 open source project in the world based on pull requests (currently 31,000 contributors) - Linux is # 1!
    1. 2019 marks the 5 year anniversary since the 2014 DockerCon Kubernetes announcement 

Along with the rest of the Kubernetes, I am incredibly interested to see where this technology ends up in the future!




Saturday, May 19, 2018

Windows 10 64bit - Photo App - The App Didnt Start

If you are receiving an error message "The App Didn't Start" when attempting to open photos (.JPEG, .PNG etc.) on Windows 10 - try the following steps:
  1. Click Start --> Search for "PowerShell
  2. Right Click "PowerShell" & Run as Administrator
  3. Execute the commands listed below (Enter each command and then press "Enter")
  • $acl = (Get-Acl 'C:\Program Files\WindowsApps') 
  • $Group = New-Object System.Security.Principal.NTAccount("NT SERVICE", "TrustedInstaller") 
  • $acl.SetOwner($Group) 
  • Set-Acl "C:\Program Files\WindowsApps" $acl 

Thursday, October 8, 2015

Life as a Technical Pre-Sales Engineer / Architect at a Global Software Company

Life as a Technical Pre-Sales Engineer / Architect

Over 2.5 years ago now I took a leap in to the world of Pre-Sales for a Leading Global Software Vendor and what an exciting ride it’s been so far! In this blog entry I’m going to share with you why I got in to this role, how I got in to this role and what I have learnt along the way, hopefully this will provide some insights if you too are considering a role in technical pre-sales.


Preface

Technology today moves at an extremely rapid pace which is allowing businesses to innovate faster rate than ever before and we’ve all seen that there are start-ups now within almost every industry that are challenging even the most dominant traditional players. Why? Because the way we do business is changing with cloud, mobile and data the main influencers of this change - With the power of three forces I can start a business from my bedroom!
One great quote I heard recently that resonated with me was “Innovate like a start-up, operate like an enterprise” – a great mantra for any modern day business.

The company I work for now is certainly one of the leaders when it comes to driving technology innovation and this was one of the drivers for me join!
At first though it was a shock to the system as the amount of information on new products and product updates that comes your way is overwhelming – the term ‘drinking from a fire hose’ is a perfect analogy to describe this. I cover the entire portfolio (101/201 conversations and architecture) and specialize in certain areas (301/401 conversations and architecture).


What is it I actually do?

I work as a trusted technical advisor to ensure customers realise the full potential of cloud, virtualization & mobility solutions and ensure that all solutions are connected with measurable business values.

Customers of mine include but are not limited to: government, healthcare, financial/insurance services, wagering/gaming, and large retail.

The role involves solution architecture, customer/industry presentations, account management and technical sales.


Travel

As I write this blog I am travelling at 37,000ft en route to a customer in Perth, Western Australia – a city I am extremely fond of – sun, surf, sand and a fantastic lifestyle to match.  
One of my passions in life is travel as it has allows me to “reset”, think of + be inspired by new ideas, broaden my perspectives of life, experience different cultures and try some amazing cuisines along the way – food for me is a close 2nd place after travel haha. During my time in this role to date I have been lucky enough to see some amazing parts of the world including Malaysia, Singapore, Hong Kong, Macau, USA and various cities around Australia (I’ve lost count of the Sydney trips!).


Communication and Presentation

One thing this role teaches you and helps you improve on is the way you communicate with people both written and verbally – skills that are universally valuable. It also teaches you how to talk to a range of people from CXO level business driven individuals down to engineers + read body language, steer conversations and dial in your empathy radar.
In my role I am in front of customers or partners almost every day of the week and the reason for these engagements can range from a solution requirements/architecture workshop, demonstration, commercial negotiation or worst case an issue that has caused major downtime (generally due to misconfiguration but sometimes related to a bug in the software) which generally means you are a walking target for the customer to express their displeasure - rightfully or wrongfully.


Sales 

Sales has been fascinating for me and is something I have genuinely enjoyed being a part of. I see it as more of an art than anything, yes there are frameworks to operate within that will ultimately reduce the risk of a deal falling through and assist with up-selling a solution but at the end of the day the following statement has rung true for me from day 1 – people sell to people!
What this means is that no matter how good your technology or solutions are, it all comes down to the relationships and contacts you have within the industry along with integrity and credibility ...also some good timing in a few cases!
Learning to sell teaches you to listen, be inquisitive, challenge, empathise, influence, market solutions and to be strategic – these are all priceless skills that can help in everyday life and set you up for wider range of career options in the future whether that be in the technology industry or within a different industry. I also believe these skills are essential if you ever consider starting your own business – something I would love to do one day!


Prior Role and Positioning for the Change

Prior to this I worked for consultancy work over 3 years helping design and deliver enterprise infrastructure solutions – working closely with the solutions and technology I now work with/for today.
One thing I have always found interesting is the advice people give you around being a generalist or a specialist – both have their merits and not one is right in my opinion. In a way I have chosen both as I’ve immersed myself in a wide range of technologies throughout my career and always jumped at new opportunities to learn. At the same time though I have carefully selected a few dominant technologies to focus on, these include virtualization, cloud and storage.
One thing I would recommend if you want to get in to a vendor is to involve yourself in the community and partake in industry events where possible – lucky for me I was able to raise my profile via a handful of public facing case studies (vendors love publishing success stories with their technologies as it helps drive marketing and sales) and by presenting at a couple of industry presentations.
This ultimately lead to me building a valuable network which helped when I looked toward a role in technical pre-sales with a software vendor – back to my previous point around selling and relationships, I also firmly believe the same stands for job hunting. Technical knowledge and experience are also hugely important but references and referrals are priceless when it comes time to pursuing a new role.


Wrapping Up

I have no regrets taking this role, which you have no doubt picked up from reading this blog entry. However, if you are considering a role in technical pre-sales I would take the following in to considerations:

·      Are you passionate about the solution or portfolio?
·      Is the company respected by customers and employees within the industry?
·      Is the company growing and innovating?
·      What are the staff attrition rates? (Some sales organisations can have regular turn-over of staff due to bad culture – there are some big Ego’s out there in the world of sales!)
·      Don’t drink the coolade too much! (Its a big old world out there – keep across other technologies and solutions)
·      Consider where you want to go and what you want to do after the role?
·      Are you ready to adapt and change?


Hopefully this helps and provides some valuable insights!

Wednesday, August 27, 2014

VMware VSAN – How to Upgrade or Replace a Disk Controller?


The lab environment I utilize was recently upgraded to Dell R720 servers and VSAN was introduced as an additional storage tier.

To date the performance has been fantastic! However, the disk controllers that were shipped with the servers are now no longer on the VSAN HCL

As a result, new disk controllers have been purchased and now need to be installed in to each server.

Here is the process to follow that will allow each of the new controllers to be installed and without disruption to the workloads currently running on VSAN (VDI Environment & Multiple Server VM’s in this case):

  1. Delete the 1st disk group from HOST1 & identify the physical disks within the server that correlates - VMware Article here
  2. Run a compliance check on each storage policy that is currently active & allow for remediation to take place (the policy will ensure that any objects of components that once resided on the now deleted disk group are re-copied or re-striped elsewhere in the distributed file system used by VSAN)
  3. Place HOST1 in maintenance mode selecting one of the three options available: migrate all data objects, ensure object access (moves object components to ensure that minimum availability is achieved) or leave data objects in place (data is re-synced once host is back online - this is carries more risk)
  4. Power off HOST1
  5. Remove the disks identified in step one that are currently attached to the old unsupported disk controller and re-attach to the new controller. Ensure disks are wiped and that ‘pass-through’ mode is enabled again so that VSAN can take advantage of the disk once again.
  6. Power on HOST1
  7. Re-add disks back in to VSAN cluster and re-establish a new disk group
  8. Repeat steps 1- 7 until all disk groups are attached to the new disk controller
  9. Move on to HOST2 & execute steps 1 – 8
  10. Move on to HOST3 & execute steps 1 – 8
  11. Etc. Etc.

 NB: To ensure that you have a supported VSAN configuration, check out the VSAN HCL or better yet - use a VSAN ready node that is purpose built by various X86 server vendors.


What is CloudVolumes by VMware & How does it work?

Last week VMware announced their acquisition of CloudVolumesCloudVolumes are relatively new start-up based out of California who specialize in Application Virtualization.
Now I know this doesn’t sound like a ‘revolutionary’ acquisition by VMware because the term ‘Application Virtualization’ has been around for a number of years - AppV, ThinApp, AppSense etc.

The differentiator for CloudVolumes is the way in which they 'containerize' the application and then present it back to the server or desktop (virtual or physical).

The majority of Application Virtualization technologies today capture the application in a ‘container’ of some description and then stream it for consumption (in some cases there is also a local mode option where the application can be copied down to the consumer – this however can prove difficult to manage).

CloudVolumes takes a different approach to this by instead capturing the application in a .VMDK or .VHD format which can then be mounted directly into the server via the CloudVolumes agent.

Architectural Overview:


NB: You can see the various applications, plug-ins and even Windows Updates can be captured and delivered via an AppStack – all without a reboot!

CloudVolumes in use:

  1. Install CloudVolumes Manager Console which can be backed one or many VM’s for high availability. This integrates with Active Directory to help map applications to groups of users or computers and also vCenter or SCVMM for virtual workloads.
  2. Identify a server that will be used as your “provisioning server” and install the CloudVolumes Agent – this server will typically be a slim installation/image that will act as the master for capturing applications.
  3. Identify the repository that will be used for the application capture – this can be either a VMware VMFS volume, Hyper-V volume or a DFS share. NB: DFS is typically used to move applications between datacenters, more on this later!
  4. Initiate an “AppStack” capture on the “provision server” (AppStack is the terminology used to describe one or many application captured inside a .VMDK or .VHD)
  5. Complete the wizard driven process and then assign the AppStack to your chosen Active Directory target – user, computer or group.
  6. Select the preferred application enablement option: instantaneous, after next logoff or after next reboot – majority of the time you will use instantaneous which means the AppStack (.vmdk) is mounted immediately and will appear inside the server or desktop within milliseconds.

Key Considerations: 

  • Storage Read I/O requirement – the AppStack (.vmdk) created is read-only meaning that multiple reads are required when you assign the AppStack to multiple users or computers. This is not deal breaker it just means that an SSD backed volume would be required or better yet a Software-Defined-Storage approach such as VSAN which means you don’t need an expensive storage array to facilitate the shared SSD requirement.
  • The volume where the AppStack capture resides must be on shared storage that is common with the cluster where the VM resides. This means that Application Streaming is avoided and instead a direct ‘SCSI hot add mount’ is initiated – this is much more efficient and scales well.
  • Requirement for user customizations or data? CloudVolumes has this covered too by enabling a “Writable Volume” which can follow the user – think of this as a persistent disk similar to that used in VMware View. With a writable volume you can use floating pools of desktops.
  • Already using ThinApp and don’t want to re-capture the applications? CloudVolumes integrates with ThinApp
  • How is it licensed today*? Per user, per computer object or per terminal user (RDSH or Citrix based use of the product) * = this may change

Virtual & Physical:


As mentioned above, CloudVolumes works across both virtual and physical workloads – this achieved using the .VHD AppStack capture format and then mounting to a Windows OS. Taking it a step further, you can then use a Windows DFS share that has DFS targets residing in different datacenter's to help provide a single consistent AppStack that is truly portable. This diagram helps illustrate the use-case:


Horizon 6 with RDSH Application Publishing:

Cloud Volumes makes it easier to scale/manage either standalone RDSH farms or those integrated with Horizon WorkSpace.

Citrix XenApp:

Cloud Volumes makes it easier to scale/manage either Citrix XenApp farms.


Application ‘Bursting’ during peak periods:

With CloudVolumes you can create a generic pool of servers with CloudVolumes pre-installed, when required you simply assign the AppStack (you can also capture data or databases with the application capture) and grow the fleet on demand:


Closing Comments:

You can find more information here and some great product demonstrations here. The key use case for this technology is within a virtual desktop environment, but as you can see above it has uses far beyond this – watch this space to see how it will integrate with the wider VMware family of products.