How to do an effective demo for presales ?

As a solution architect, I need to present solutions to my customers and convince them of the value of the offering. One of the most powerful tools to persuade customers are demonstrations. They help show the customer how the product works in reality and helps them discover all the faces of what they may buy.
Of course, Murphy ’s Law often kicks in. Mark Gibbs put it well:

“No matter how slick the demo is in rehearsal, when you do it in front of a live audience the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved.”

But here are a few do’s and don’ts that I think make sense to make the most out of your demo time with your customer :

1) Know your audience

First thing to do : research who is going to attend your demonstration. First, because the technical level of the session may differ completely, depending on who is attending.  An administrator will be interested in bits and bytes stories, a CIO won’t. To make a good use of your (and the audience’s) time, figure out first if they will understand what you will be saying.

Second, goals, priorities and interests differ completely between, for instance, CIOs and administrators. If your solution can help reduce the administration time needed, you don’t want to tell an administrator he is going to be useless. He may see his job jeopardized. In this case, I always emphasize the fact that admins can focus on interesting projects instead of routine kind of work. However, a CIO may be interested in other sort of advantages, such as headcount reductions.

Use one card or the other depending on who you are talking to.

2) Explain the main advantage of the solution

Don’t just dive right into the demo if the audience has no background on the technology. When the customer is in front of you, describe the demo environment and briefly explain the basic concepts of the technology, so that everyone in the audience is on the same page. You may want to use PowerPoint slides, a whiteboard, or even a simple speech to carry the message over. End by linking the capabilities of the technology with the advantages this solution brings to the customer. Make sure that these advantages are then clearly highlighted during your demo to make it even more powerful.

3) Explain the overall goal of the demo

One day, I was doing a demo when the customer told me after ten minutes “I am sorry, what are you doing right now?”. I had obviously got it wrong. I hadn’t explained the overall goal of the demo and the customer was completely lost by the actions I was showing.
Tell the customer before you start what the outcome of the demonstration will be. For instance, if demonstrating the capabilities of the HP BladeSystem Matrix, you can say “This demo will show you the automated deployment of a complete IT service – servers, storage, networking, OS and application”. If there are intermediary goals, don’t hesitate to explain them too. Again, here, you can use a PowerPoint slide or a flip chart to list all the important actions you will make and tick them off as you go along, so that the customer understands at which step we are at.

4) Explain each relevant step of the demo

Referring back to point 1), highlight the points which will be interesting for your audience. The administrators may be interested in knowing how things work, hence, don’t hesitate to give the exact description of what you are doing. When I have high-level customers, such as CxOs, I do not explain every technical action I take: they are, in general, not really interested in knowing the technical details. However, if there is anything that brings a business value, such as the capability to charge business users for the IT services they request, I try to emphasize that to them as much as possible.

5) Regularly ask if the audience is following

Regularly ask your customers if everything you are showing is clear. First, it will keep them engaged, and second, it will help you to answer their questions much more easily . It is simpler to
answer a question about e.g. “What happens to the IP address now?” than “What happened to the IP address ten minutes ago when you clicked on the IP button” .  Ask the customer regularly if they are following you.

6) Finish with an acknowledgement from the customer

When you are done with the demo, conclude by summing up what you just did. Refer to the previous points by stating the overall goals of the demo and how they relate to the main advantages of the solution. For example, if you mentioned that your servers could save money to the customer, state the points to the customer that you showed him that will, for example, lower his energy bill.

Finally, try to get an idea of the customer’s enthusiasm level after you are done.  For the solution I presented, I like to ask a question like “how do you see this fitting into your environment?”. Since it is an open ended question, it forces them to think about the current state of their environment and visualize how what you demonstrated would fit in. This can make a big impact on how likely they are to invest in your solution. It’s like when you go to a furniture store to buy a new recliner. The sales guy runs through all the features – the different vibration settings, seat warmer, built in refrigerator etc. but unless you can see it in front of the TV in your living room with you in it, you are less likely to buy it.

All in all, I think that these six steps are key to do an effective demonstration to customers. If it helped you make your customers happy, or if you have your own tips, do let me know in the comments below!

Darren LaCroix – World champion of public speaking

I saw Darren LaCroix for the first time in Lisbon, where I was attending Toastmaster’s District 59 conference. He did a wonderful keynote speech and showed the speech that follows in that entry. It is very interesting to compare it with Darren’s first speech in a comedy club, which was a catastrophe. With a lot of work, which perhaps cost him his hairs, and the help of Toastmasters, he has become a wonderful speaker..

One of the most powerful thing about this speech is that it combines a deep inspirational value with a great sense of humour. Although the beginning may be a little bit awkward for those who are not familiar with public speaking contests, it is very original and powerful.

First contribution to the Fedora Project

Yesterday, I have contributed for  the first time to the Fedora Project, the Linux distribution sponsored by Red Hat. I have started translating in French the Virtualization Guide for Fedora 15. I used to translate a little bit for Ubuntu, but since I switched my desktop to Fedora, I feel more interested in Fedora now.

I think it is important to give back, at least a little bit, to the community. I use Linux for 8+ years now and this would have never been possible without the time and effort put by the volunteers in the various projects of the Linux ecosystem. My way of thanking them is to get involved myself and help spread Free software.

Beyond the translation, I also intend to get more involved in the Fedora community in the future…

Superdome 2 – easy to service

HP held its biggest customer exhibition, called HP Discover from June 6th to 10th in Las Vegas.

Here is a nice video that presents an overview of the  HP Superdome 2. I really like the CPU switching demo and the simplicity to change devices. Although I am no Superdome 2 specialist, I know the HP c7000 enclosures, which are similar in their design approach : everything is hot pluggable and really easy to manipulate.

The same event will take place for EMEA countries in Vienna (Austria), from November 29th to December 1st 2011. I’ll probably be exhibiting there, so I look forward to seeing you in Vienna if you are a (future) HP customer :)

 

How to provide SMI-S connectivity via Command View EVA without HBA ?

What is SMI-S ? SMI-S is a standard communication protocol based on WBEM that helps manage heterogeneous storage arrays in the same way. Say you want to create a disk of 50GB on a HP EVA and an EMC Clariion, you will send the same SMI-S request to both and the arrays will translate the command to create the disks.

As Command View provides SMI-S connectivity out of the box, it should be easy, right ? Wrong ! (at least in my case).

Usually, you would have a fiber channel host bus adapter connected to the Command View server. However, my CV server does not have one. Also,  the EVA ABM (Array-Based Management), an embedded tool that helps manage EVA arrays, in my case a 4400, does not provide any SMI-S connectivity. The Command View documentation nonetheless states that “If you have layered applications requiring HP SMI-S EVA, you can install the HP SMI-S EVA component on any server that is either connected to the EVA/SAN or has access to HP Command View EVA via Ethernet.”

The hard task was to find how to make this work.

SMI-S provides a utility called discoverer.bat, located in C:\Program Files (x86)\Hewlett-Packard\SMI-S\EVAProvider (yes, Command View only runs on Windows…)

Execute it

Press 1 to add the IP address and the credentials of the ABM.

Verify that the ABM was successfully discovered

Everything ran fine and now, I can discover my array through the Storage Provisioning Manager (SPM), a technology designed to present and deploy storage LUNs automatically as part of BladeSystem Matrix. I will write an entry about it later on !

Home of the Valley…

How to resize an encrypted partition on Fedora 14

Running Fedora 14 on my netbook, I needed more space for the root directory (in the listing below, in bold, the space available, the space utilized and the remaining space). I use a logical volume manager (that is an abstraction layer above the hard drives and helps manage them flexibly – HP-UX was the first Unix to use LVM, by the way) as well as luks for the encryption

[herve@netbook2 ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/luks-6f51b932-7e77-4922-a484-ec2d25fbcff4
2.9G  2.4G  518M 83% /
tmpfs                 497M  456K  497M   1% /dev/shm
/dev/sda1             485M   64M  396M  14% /boot
/dev/mapper/luks-27f1ea87-e3f1-4b8e-9cc5-50c543d5601c
20G  5.3G   13G  29% /home
/dev/mapper/luks-3fe2459e-5b8f-4c28-ae14-8e234a66d774
4.9G  138M  4.5G   3% /opt
/dev/mapper/luks-7cae3953-7d7d-4faa-a684-232f050287f6
1006M  100M  856M  11% /tmp
/dev/mapper/luks-1f05825f-bc91-4a53-9194-7e6ae271fa59
15G  2.4G   12G  18% /usr

To increase the logical volume, I use the traditional lvextend

[root@netbook2 herve]# lvextend -L 4G /dev/mapper/vg_netbook-LogVol00
Extending logical volume LogVol00 to 4.00 GiB
Logical volume LogVol00 successfully resized

I see here that the (long) device mapper file is a soft link that points to a file that is much easier to use

[root@netbook2 herve]# ll /dev/mapper/luks-6f51b932-7e77-4922-a484-ec2d25fbcff4
lrwxrwxrwx. 1 root root 7 Mar  6 08:51 /dev/mapper/luks-6f51b932-7e77-4922-a484-ec2d25fbcff4 -> ../dm-3

The cryptsetup then resizes the encrypted logical volume

[root@netbook2 herve]# cryptsetup resize /dev/dm-3

And finally I can increase the filesystem

[root@netbook2 herve]# resize2fs /dev/dm-3
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/dem-3 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/dm-3 to 1048071 (4k) blocks.
The filesystem on /dev/dm-3 is now 1048071 blocks long.

Checking if everything went well (in bold, the size has increased):

[root@netbook2 herve]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/luks-6f51b932-7e77-4922-a484-ec2d25fbcff4
4.0G  2.4G  1.6G 60% /
tmpfs                 497M  456K  497M   1% /dev/shm
/dev/sda1             485M   64M  396M  14% /boot
/dev/mapper/luks-27f1ea87-e3f1-4b8e-9cc5-50c543d5601c
20G  5.3G   13G  29% /home
/dev/mapper/luks-3fe2459e-5b8f-4c28-ae14-8e234a66d774
4.9G  138M  4.5G   3% /opt
/dev/mapper/luks-7cae3953-7d7d-4faa-a684-232f050287f6
1006M  100M  856M  11% /tmp
/dev/mapper/luks-1f05825f-bc91-4a53-9194-7e6ae271fa59
15G  2.4G   12G  18% /usr

Execute one SSH command on multiple hosts with pssh

As I am working on Java benchmarks on a DL980 on the top of VMware and RHEL, I needed to execute the same script on 32 different virtual machines. I could have written an bash script to do so, but I have found a very nice suite of tools that does the job (and more) called parallel-ssh.

This Google Summer of Code project written in Python allows to execute a SSH command, to copy files, to rsync directories and to kill processes (among others) on multiple hosts

The install

First download the .tar.gz document
# wget http://parallel-ssh.googlecode.com/files/pssh-2.2.2.tar.gz

untar it
# tar -xzvf pssh-2.2.2.tar.gz
# cd pssh-2.2.2

To install (you need Python, it worked on RHEL 5.3):
# python setup.py install

The configuration

Then to execute parallel commands, create a file with all IP/hostnames you
need (one per line) like this
# cat hosts.txt
192.168.10.1
192.168.10.2

Create the directories “stderr” and “stdout”
# mkdir /tmp/stderr
# mkdir /tmp/stdout

and that’s it !

How to use it ?

If you want to execute the command hostname ?
# pssh -A -e errors -o /tmp/stdout -e /tmp/stderr -h hosts.txt -l root hostname

-A will ask the root password inline
-o will put the standard output in one file per host in the directory /tmp/stdout
-e will put the standard errors in one file per host in the directory /tmp/stderr
-l is the user that will execute the command

For my benchmark I nedded to change the starting script run.sh, so I edited it on one virtual machine and then used pscp to copy it on all the nodes in the directory /root/java/
# pscp -A -h hosts.txt -l root /root/java/run.sh /root/java/

And finally I executed the benchmark on my 32 nodes :)
# pssh -A -e errors -o results -h hosts.txt -l root /root/java/run.sh

Have you forgotten one JVM garbage collection parameter ? No worries, pnuke will make sure that all java processes are stopped on all servers
# pnuke -A -h hosts.txt -l root java

HP CloudSystem Matrix Part 2: deploy your application

This post is the second of a series of three that will explain the concepts and technologies that are used in HP CloudSystem Matrix. The first was about creating a CloudMap. This post is about the provisioning and automated deployment of an IT application. In a third post, I will address how to manage the pools of resources !

CloudSystem Matrix is a private cloud solution that aims at speeding the deployment of applications through highly automated technologies and integrated processes.

After we have created and published our cloud map, we have provided our business users all the information they need in order to deploy the application they require to execute their company’s strategy.

In order to do so, the user logs in to the self-service portal.

As you can see, the home page shows which resources are put at disposal to the user, as well as the current service consumption. We see that five physical servers, out of the six at disposal, as well as two virtual machine hosts are in use as part of a service deployed by the CloudSystem Matrix. By clicking on the “Templates” tab, we can access the list of templates which are published and which the user has the right to deploy. Remember the SAP 2-tier template we created in the first part? We have published it, hence we find it back here. That the user has created the template or not, doesn’t play a role as long as he has the right to use it.

By clicking on the template, the business user can display the details of the service: the layout of the network, the price, as well as the notes entered by the creator of the template, etc. In order to deploy the service automatically, he will click on the button ‘Create service’.

The user now has to enter a service name (for instance “SAP 2-tier John Smith”), the hostname completion (remember the need for a hash sign in the first post ?), an email -to contact the service requestor-, a start date and hour at which the service will be deployed, an end-date, at which the service will be rolled back, and finally, a pool of resources, from which the resources, such as servers, storage and networking, will be picked from. Final step: he clicks on “Submit”, and here we go !

The request is sent and the activity which is happening behind the scenes is displayed: the resources are reserved from the pool of resources. The software makes sure that the pool can accommodate the need indicated in the template. We can see here that four servers, four IP addresses, three networks and four boot disks are requested. CloudSystem Matrix will pick from the pool of resources the servers that meet at least the requirements of the template and will pick from storage disks (LUNs) that are already presented to WWN (worldwide names) and also meet the size indicated.

We see here that CloudSystem Matrix also integrates nicely into the user’s processes: the request above is paused, because an administrator (or an IT manager or anyone else who should take this decision) must give his approval, so that the deployment can continue. A Request for Change (RFC) could also be triggered at this point in time with tools such as HP Service Manager or BMC’s remedy. The teams using these tools will just have to accept the request and the deployment will go on.

We see here that the administrator granted the authorization to deploy this service and that the allocation process has started. The requested resources are then provisionned. The physical servers are reserved and a custom HP Virtual Connect profile is applied to them. This means that we are applying one ore more MAC addresses for the network, which will be connected to the VLANs we need, as well as one or more WWN for the storage, to which disks are already presented. The zoning of the storage was already prepared, so that after the WWN is attributed to the server, it can install the operating system as well as the application straight after the VC profile was attributed.

Taking a look at the Onboard Administrator, the HP BladeSystem enclosure management processor, the server loses the “i“-icon, which means that the server has now a Virtual Connect profile

On the screenshot above, we can see “Provisioning the logical server” (either physical or virtual) and, finally, “Activating logical server”: the ProLiant or Integrity server is now starting.

If VMware or Hyper-V virtual machines were to be deployed, CloudSystem Matrix would pick the right template, clone it, provision it, and finally adapt it according to the needs of the cloud map. If HP Integrity Virtual Machine were deployed, the host would be contacted vis SSH, it would create the VM and deploy it with Ignite UX either through normal package deployment, or via a golden image, a concept similar to the VMware/Hyper-V template.

We see above that the Integrity server starts, it then boots from the network (since the disks we have presented are empty) and that Ignite UX detects a deployment request from the client.

All the deployments methods (Ignite-UX,  HP RDP, HP Server Automation, etc.) and CloudSystem Matrix can communicate with each other: the deployment server confirms to the Matrix operating environment that the deployment request of a given client was received. This is acknowledged by the management server which indicates it to the user.

Finally, after the operating system is deployed, the application is installed through the execution of a workflow (it will be the subject of another blog post in the future).

Although I discussed the technical details of what happens behind the scenes, the business users, when they make a request, can see a completely abstract high-level view of what is going on. They don’t need to know the details, they just want to know if the application was deployed.

On the picture above, the business user sees that everything went well and that his IT service is up and running. What could have taken so much time to deploy, lasted roughly one hour with HP CloudSystem Matrix.

Instead of taking months putting all the pieces together, CloudSystem Matrix orchestrates the provisioning of storage, server and networking, installs the operating system and deploys the application in an automated way, also integrating in the organizations’ processes.

It is a fantastic tool that was already embraced by customers to modernize their IT environments. I have personally helped some of them deploying this solution in their datacenters and they love it. Though it needs a good understanding of key HP technologies (HP BladeSystem, HP Virtual Connect, HP Systems Insight Manager, etc.), the HP services team take care of the deployment of the solution, and the complexity of the infrastructure is hidden to the business users.

In my third and last blog entry for this series, I will focus around managing the infrastructure to fill the different pool of resources and how to present them to the users.

Unix : compelling value and bright future

This white paper written by Forrester and commissioned by HP, highlights the reasons why CIOs working in different industries continue to invest in Unix operating systems from the three major vendors (HP, IBM and Oracle). These individuals are confronted with a high pressure to reduce the costs and successfully complete the projects they start. I remember my software development class at the HTW Saarbrücken, during which our professor told us that half of all IT development projects fail, let alone the implementation and the move to production !

During the last past years, the rise of Linux-based operating systems, mostly on x86 architectures, was spectacular, because distributions such as Red Hat were able to provide a lower-cost alternative in terms of acquisition. However, the vast majority of these decision-makers, who, besides, also embraced Linux in their datacenters, thinks that Unix-based operating systems still bring more value in the following categories:

- availibility

Indeed, when it comes to availability, Unices have an advantage. The maturity of the product is higher, but above all, the integration of the platform to the operating system and to the application give an indisputable advantage to RISC/EPIC-based servers. The clustering solution ServiceGuard, for instance is way ahead of what SuSE HA or the Red Hat Cluster Suite can dream to become in 2 years. Though it is possible to reach high levels of availability for the database stack on Linux with Oracle RAC (Real Application Clusters), the management of the solution is quite tedious and its cost prohibitive.

- scalability

Clearly, the biggest deployments of very large databases or ERPs happen on Unix. However, Linux is catching up very fast. Red Hat 6 supports the 120 logical CPUs and 4TB of RAM of the brand new HP DL980 ! Especially when it comes to scalability with regards to virtualization for massive consolidation scenarios, Linux does an excellent job with the compelling argument of the full binary compatibility with the x86_64 architecture.

- ease of maintenance

The number of updates is far less frequent for Unix (at least for HP-UX that I know well) compared with Linux. Moreover, tools such as Dynamic Root Disk, which allows to relocate the operating system from the local disks to the SAN in one command line and one reboot, or to patch the OS on a mirror offline and to reduce the planned downtime to the reboot time, really increase the productivity of the admins. Once again, the tight integration of the operating system to the platform makes this happen.

- partitionning

The partitioning of the RISC-EPIC hardware platform is much more advanced. Because of the capabilities of their platform, x86-based servers rely mainly on hypervisor-based virtualization, whereas Unices offer both hard and soft partitions. Also, although IBM offers Linux on Power servers, most of the virtualization capabilities are only available for AIX, IBM’s Unix. Finally, Linux lacks the pay-per-use and workload management functions of Unices. cgroups implemented in RHEL6 are a beginning, but it still lags behind the HP SRP or Solaris Zones.

A personal note about the “Staffing and skills are not an issue”: my first system administration experience started with Linux and I learned HP-UX afterward. The main principles of *NIX, such as LVM, runlevels, init scripts, the Bash shell, etc. are the same and hence the lack of smart people able to learn a few more commands should never appear. The most important is to stay flexible and ready to learn new technologies !

To conclude, Unix is going to remain in the datacenters for long. Its stability, ease of maintenance and workload management ensure a great continuity in the IT service delivery. Though the number of Linux servers will continue to grow, driven by the increase in performance of the x86_64 platforms (and I am definitely fine with that !), HP-UX, AIX and Solaris (depending on Oracle’s good will) are here to stay…