Software Engineering at VMware

Software Engineering at VMware

THE CHALLENGE

  • Suppose that you have a very popular software platform:
  • … that includes hardware-level and OS code that can easily crash a machine
  • … that must run on many different hardware platforms
  • … that big corporations use all the time and must be very reliable
  • … that customers really like and constantly want new features for
  • How do you do very rapid development of large new features and yet produce high-quality releases
  • Requires concurrent development via many developers
  • But can you really do high-quality releases with such concurrent development?
  • Big part of the solution:
  • Good developers
  • Coding practices that allow lots of testing while code is running
  • Reliable (and fast!) tools for building, testing, and merging code
  • Constant automated QA (testing)

OUTLINE

  • Background on VMware
  • Scale of development and releases at VMware, and some of our problems
  • Rapid concurrent development
  • Rapidly evolving interfaces
  • Many product releases sharing same code
  • Many hardware platforms
  • Some software techniques for keeping OS reliable
  • Some more automated techniques for keeping code base robust and ensuring quality of releases

WHAT IS VIRTIUALISATION

  • VMware provides hardware virtualization that presents a complete x86 platform to the virtual machine
  • Allows multiple applications to run in isolation within virtual machines
    on the same physical machine
  • Virtualization provides direct access to the hardware resources to give you much greater performance than software emulation

Software development for vmkernel

  • Mostly written in C
  • Includes base kernel, ~40 drivers, ~25 other modules
  • Modules do things such as:
  • Virtual switch
  • Storage multipathing
  • VM migration
  • Distributed file system (VMFS)
  • Important to continually verify that new features/sub-systems will work together

Maintain the strictest possible static checking, so we check “easy” bugs as soon as possible
Important to do from the start, else it becomes hard to fix later
E.g. all those warning messages that come from linux drivers….
We use the strictest type checking options from the compiler
Sometimes use C++ compiler, since it does stricter checking
Catch 64-bit VMotion bug
Coverity is very useful

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *