Virtual Appliance Based Products and Agile
This document explores the integration of Agile practices in the development and management of Virtual Appliance-based products at Dell Enterprise Systems. It covers essential topics such as the Virtual Appliance product stack, continuous integration challenges, and the deployment of cloud solutions using platforms like Amazon EC2 and Google App Engine. We discuss the benefits of a controlled runtime environment, dedicated resources, and agile build processes, alongside the potential challenges of appliance size and update procedures. A focus on automation and efficient testing strategies is emphasized to enhance appliance lifecycle management.
Virtual Appliance Based Products and Agile
E N D
Presentation Transcript
Virtual Appliance Based Products and Agile James Watt Dell Enterprise Systems and Solutions 3-14-2012
James Watt • Dell Inc., 2007-Present • Systems Management Software Group • Sr. Software Engineer • Agile Coach • Multimedia Games, Inc., 2003-2007 • SCM Engineer • Core Technologies Engineer • Game Development Engineer • University of Texas at Austin • B.S. Computer Science - 2003
Agenda • Virtual Appliance Product Stack • Agile CI • Agile Appliance Build Process • ALM Considerations • Virtual Appliance Platform as a Product
Cloud Solutions • “Half-Stack” Targets (Product + Support Libs) • Amazon EC2 • RedHatOpenShift • Google App Engine • Full Stack Targets • Amazon EC2 • Windows Server Cloud Hosting • Dell Cloud-On-Demand • LunaHost, eApps, etc... • Customer Private Cloud
Benefits and Challenges • Appliance Product Benefits • Stable and controlled application runtime environment • Pre-Configured deployment to public cloud and customer private cloud environment • Dedicated and scalable application resources • Ease of transition between hosting providers • Appliance Product Challenges • Appliance Build • Appliance Size • Update
Agile Continuous Integration Challenges • Clean build several times a day • Unit Test and Integration Test execution • Keep the Build Fast
Virtual Appliance Builds failed
YUM/RPM Based Build Strategy Build Under Test (cloned and booted) VMM Product YUM Repo Product Services Postgres, Tomcat, etc... 3rd Party YUM Repo Cent OS 6.3 Baseline/Reference Snapshot Cent OS 6.3
Build Verification Testing (BVT) Build Under Test (cloned and booted) VMM Product YUM Repo Product Services Postgres, Tomcat, etc... 3rd Party YUM Repo Cent OS 6.3 Baseline/Reference Snapshot Cent OS 6.3
Build Verification Testing (BVT) Build Under Test (cloned and booted) Test Harness VMM Product Services Postgres, Tomcat, etc... Cent OS 6.3 BVT Failure Snapshot
Application Lifecycle Impacts • Three Update Streams • Try not to couple them • Build created using software update paths • ALM Impacts
N, N-1 Update Testing N-1 Build Baseline (cloned and booted) VMM Version “N” Product Product Services Update Postgres, Tomcat, etc... “N” 3rd Party Cent OS 6.3
Virtual Appliance Platform as a Product • Appliance has lifecycle of its own • Consistent appliance management experience • Appliance can be shared between multiple applications/products • Can look into getting your appliance 3rd party certified for large enterprises and public sector customers • “Half-Stack” solutions providers are Platform Providers!
Summary • Build Fresh Appliances from Snapshot image baseline for faster builds • Consider using update processes to create your build as well as update it • Leverage Virtualization to capture build failures • Automate N-1 to N upgrade regression testing • Treat the appliance platform as its own product