49
LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason LSI Corp

LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

  • Upload
    lynga

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

LSI's VMware vCenter Plug-In:A Study in the Use of Open Source

Software

Erik JohannesBrian Mason

LSI Corp

Page 2: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Goal

The goal for the presentation is to share our experience with open source in the hope that it will provide insight and guidance.

2

Page 3: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Bio – Brian Mason

Staff Software Engineer at LSI Master in Computer Science 20+ years development experience Most of the past 11 developing Management and

Control Software for hardware devices.

3

Page 4: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Bio – Erik Johannes

Staff Software Engineer at LSI Master of Computer Science 25 years industry experience Variety industries including Storage,

Telecommunications, and ATE.

4

Page 5: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Agenda

Brief BackgroundWhat our group doesArchitectural Overview of LSI vCenter plug-in

Options and ConsiderationWhy Open Source?Evaluation Criteria

Experience with Specific packagesRuntime Open Source LibsDevelopment Tools

5

Page 6: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

LSI’s Engenio Storage Group

The Engenio Storage Group develops storage products:Host Bus Adapters and Internal RAID controllersNAS GatewaysExternal RAID systems

Many of our products are sold through OEM partnerships.

6

Page 7: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

LSI’s Application Aware Solutions

The goal is to integrate with End User Applications Management of our Storage Arrays. Improve the efficient use of our Storage Arrays.Provide a single pane of glass familiar to user.

Integration examples areOracle’s Enterprise Manager.Microsoft’s System Center Operations Manager.VMware’s vCenter virtualization manager.

7

Page 8: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Management TLA Soup Defined

Hyper Text Transport Protocol (HTTP/HTTPS) eXtensible Markup Language (XML) Distributed Management Task Force (DTMF) Common Information Model (CIM) Web-Based Enterprise Management (WBEM) Storage Management Initiative Specification (SMI-S) CIM Object Manager (CIMOM) Virtual Machine (VM) Virtual Infrastructure or VMWare Infrastructure (VI)

8

Page 9: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

VMWare vCenter/vSphere

9

Page 10: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

vSphere Plugin Integration

The plugin is registered with the server Registration indicates where in the client to display

plugin and the URL for the plugin Client display integration points include:Additional Tab added to object’s displayObject’s right click menu itemsAn icon added to the home page The entire display

Recommend following VMWare UI guidelines

10

Page 11: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

The vSphere Client

11

Page 12: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

LSI’s vCenter plug-in Architecture

12

Page 13: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Agenda

Brief BackgroundWhat our group doesArchitectural overview of LSI vCenter plug-in

Options and ConsiderationsWhy open source?Evaluation criteria

Experience with specific packagesRuntime open source libsDevelopment tools

13

Page 14: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Why We Use Open Source

Free as in SpeechFast Bug fix turn aroundFreedom to fix it ourselvesNothing is hiddenMany testers

Free as in BeerNothing is free, but often cheaperCost in Evaluation and Internal Support

Often Best in Class14

Page 15: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Evaluation Criteria

Does it meet out needs? Can I compile it? Is it an Active Community?Frequent / Current ReleasesActive Wiki or mail group

Is it standards based?

15

Page 16: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Agenda

Brief BackgroundWhat our group doesArchitectural Overview of LSI vCenter plug-in

Options and ConsiderationWhy Open Source?Evaluation Criteria

Experience with Specific packagesRuntime Open Source LibsDevelopment Tools

16

Page 17: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Runtime Open Source Libs

Java Jetty SBLIM GWT And GWT Incubator

17

Page 18: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Java

The whole plug-in is written in Java The system is packaged as a Web Application Can be deployed on JEE Application ContainerWe shipped Jetty

Used Java 6 Used JMX for monitoring JSR 48 Compliant CIM Client (More later)

18

Page 19: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Java Development Advantages

Familiar syntax makes for an easy transition. Object oriented. Lowers concerns about resource leaks. Massive library support Rich IDE Support Built in remote debugging and profiling Compiles very fast

19

Page 20: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Java Deployment Advantages

Extremely stableHas redefined P1 bugs

Runs on all platforms we need (AIX, HPUX, Solaris Windows, Linux, Mac)

Single compile target for all platforms No DLL Issues Built in monitor via JMX Fast performance

20

Page 21: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Details System Architecture

21

HTML/CSS/ Java ScriptGenerated Code

JEE App Server (Jetty)

Plug-in Servlets

Java VM

JMX MBeans

Client

Server

JSON/HTTP

CIM Server

LSI Storage Arrays

CIM/HTTP(s)

Symbol

Page 22: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Runtime Open Source Libs

Java Jetty SBLIM GWT And GWT Incubator

22

Page 23: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Jetty

Open Source “light weight” Web Server Java Web Application Container Static HTML Servlets / JSP SSLMany more …

Pluggable Architecture Used as our App Server

23

Page 24: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Tomcat Alternative

24

Jetty (6.1.x) Tomcat (6.x)

Memory Footprint(With our WAR)

28MB 38MB

Modular Yes No

Servlet/JSP Support 2.5/2.1 2.5/2.1

Embeddable Yes No

Page 25: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Runtime Open Source Libs

Java Jetty SBLIM GWT And GWT Incubator

25

Page 26: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

WBEM Stack

26

WBEM Client

CIM/XML

HTTP Transport

CIM Server

Provider Provider

Page 27: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

SBLIM Java Client

Used as CIM client Has a 1.x And 2.x version streams 2.x (2.1.5 current)Requires Java 5 or higher(Generics) Implements JSR 48

1.x and 2.x NOT COMPATIBLE Source package change for JSR 48No known upgrade path

27

Page 28: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Why SBLIM

Presents a CIM logical abstractionCIM InstanceCIM ClassesTyped Key / Value PropertiesAssociations

No XML Processing!! Supports indications

28

Page 29: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Logical CIM Functions in SBLIM

NavigationEnumerate ClassesEnumerate InstancesEnumerate Association ClassesFollow Associations

FilteringFilter PropertiesFilter Instances returned by Assocations

29

Page 30: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

SBLIM Sample

WBEMClient client=getClient();CIMProperty prop; CloseableIterator<CIMInstance> poolIt; poolIt=client.associatorInstances(storageSystem,

"CIM_HostedStoragePool", "CIM_StoragePool", "GroupComponent", null, false, null);

while (poolIt.hasNext()){CIMInstance poolInst = poolIt.next();prop=poolInst.getProperty("ElementName");String name=prop.getValue().toString();System.out.println(name);

}poolIt.close();

30

Page 31: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Runtime Open Source Libs

Java Jetty SBLIM GWT and GWT Incubator

31

Page 32: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT

Google Web Toolkit Used for Developing Rich Internet Applications A set of tools and libraries Compiles Java to Java Script Supports a sub section of Java Language and

PackagesAllows for “Native” Java Script

Rich Debugging Both Client and Server Side

32

Page 33: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT Client Side

GWT Abstracts JavaScript DetailsAllows Programmer to work in JavaAvoids cross browser JavaScript Issues

Does not protect against CSS Issues

33

Page 34: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT Client Code Example

public void onModuleLoad() {Label label = new Label("Hello, GWT!!!");Button button = new Button("Click me!");button.addClickHandler(new ClickHandler() {

public void onClick(ClickEvent event) {label.setVisible(!label.isVisible());}});

RootPanel.get().add(button);RootPanel.get().add(label);

}

34

Page 35: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT Server Communication

The client side communicates with the server side Uses RPC to communicate with server over HTTP Easy to pass Java objects back and forth Has both Synchronous and Asynchronous Project Used Asynchronous Nonblocking, call returns immediatelyCallback is called with server response

35

Page 36: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT Asynch Comm Example

Define the Interfacepublic interface MyService extends RemoteService {public String myMethod(String s);

}

Server implements the Interfacepublic class MyServiceImpl extends RemoteServiceServletimplements MyService

{public String myMethod(String s) {// Do something interesting with 's‘ on the server.return s;

}}

36

Page 37: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT Asynch Comm cont.

Asynchrounous interface is used to make callinterface MyServiceAsync {public void myMethod(String s,

AsyncCallback<String> callback);}

AsyncCallback<T> InterfaceonSuccess(T result) onFailure(Throwable caught)

37

Page 38: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

The GWT Client call

MyServiceAsync myService = (MyServiceAsync) GWT.create(MyService.class);

AsyncCallback callback = new AsyncCallback() {public void onSuccess(String result) {// do some UI stuff to show success

}public void onFailure(Throwable caught) {// do some UI stuff to show failure

}};

myService.myMethod(“Hello There”, callback);

38

Page 39: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Caution Notes with GWT

CSS Issues 2.x has Widgets for both Quirks and Standard ModeWidgets cannot be used togetherNo compile time check, just runtime weirdness

Avoid modifying displayed tablesVery slow modifying displayed elementsCreate New Elements and ReplaceMuch Worse in IE than others

39

Page 40: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT Incubator Project

GWT has limited set of controls Incubator helps to fill out some of the gaps Use With Caution! Its not all cooked IncludesTables, Panels, Status Validation LibraryLogging LibraryGraphics Library

We have used Tables and Logging40

Page 41: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

GWT Incubator Example

GWT Incubator Paging Scroll Table

41

Page 42: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Open Source Tools

IDEEclipseNetbeansBoth have GWT &SVN plug-insWhy Use Both?

Build and IntegrationANT JunitHudson

42

Page 43: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

ANT and JUnit

ANT replacement for makeMore PowerfulExtensible

JUnit is Unit Test Frame Work Both deserve a separate presentation

43

Page 44: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Hudson

Continuous Build Server Monitors VCS for changesChecks out codeBuilds code/run testsPublishes results

plug-in ArchitectureWorks with many VCS Integrates with many build systems

Is Java, but builds anything. (We do Java and C++)44

Page 45: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Hudson Dashboard

45

Page 46: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Hudson Project Screen

46

Page 47: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Would we use it Again?

47

Tool Use it again

Java Yes

ANT Yes

Junit Yes

SBLIM Yes

GWT Maybe

Jetty Yes

Hudson Yes

Page 48: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

QA

48

Page 49: LSI's VMware vCenter Plug-In: A Study in the Use of Open ... · LSI's VMware vCenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason. ... Can be deployed

2010 Storage Developer Conference. LSI Corp. All Rights Reserved.

Reference Links

http://sourceforge.net/apps/mediawiki/sblim/index.php?title=CimClient

http://code.google.com/webtoolkit/ http://code.google.com/p/google-web-toolkit-

incubator/ http://hudson-ci.org/

49