testing in the cloud using panda
TRANSCRIPT
06/06/2010
Panda: Cloud Computing in Testing
Tao Jiang
www.linkedin.com/in/taojiang2000/
Rohitasva
2 2
Objectives
Cloud Computing in Latitude System Testing
What is Panda?
Things behind Panda
3 3
Latitude Advanced Patient Management
4
Previous Testing Experience
4
Manages Enrollment, Device Ordering/Replacement, Fax and CRM
• EAI: Enterprise Applications Integration.
– Uses IBM WebSphere MQ to broker messages between systems
• SAP: Finished Goods / LAT hardware
• KMS / RMI: Marries the communicator and the PG
• TRaCII: Physician/Patient Information and Device Registration
• RightFax: Fax yellow alert
• Siebel: Customer Relationship Management tool
Latitude System Testing heavily involved in Business System.
5 5
Testing Experience in Release 6.0
Business System Testing using MQ Tool
• Messages are generated Manually based on Templates
• Manually configure MQ Tool for target test environment
• Manually play messages into the flow between LAT & EAI
Some use Business System Simulator, called iBot.
• Hard coded default value and limited customization in generated Messages. Not usable for Validation team.
• Resource hog: Each environment runs as 5 windows services.
• Cannot support all Release 6.0 environments at the same time.
• Work Less and Crash Often: one dedicated engineer for maintenance
• Cost More: Often takes 1-2 hours for crash analysis and recover. The time put other test engineers idle was enormous.
Others use DTS
• Very easy and fast
• Use SQL enrollment by tweaking database.
• Cause data issues in testing.
• Not the way how the real system works
6 6
Panda: System Overview
7 7
What Panda Does?
Panda is a collection of:
• Panda Service Cloud: Core Functionalities
• Panda Web Application – Software on Demand
– Support All Aspects of Latitude Enrollment Process
• Panda API: Python Interface to Panda, APM Web and DTS – Automated Testing
– Batman: Hardware BAT Tool
Host all Latitude Release 7.0 test environments
Broker to IBM WebSphere MQ
XML Message Signing Service for Secure Messaging
Business System Message Generator
Latitude Business System Simulator
LDAP Client Tool
Enrollment Data Validation Tool
8 8
Design Highlights: Technologies
Multi-Tenancy Architecture
• One App Fits All test environments.
• Scale up to thousands or down to just one
• Upgrade available to all tenants immediately.
Embedded Jetty Web Server
• Efficient, embeddable and pluggable web server and servlet container.
• Panda Core Service is only 150K in Size!
RESTful JSON Web Service
• Completely stateless web service
• Highly tuned SQL Queries for great performance
• JSON instead of XML for Efficiency and Flexibility
• Platform and Language Neutral Solution
jQuery and jQuery UI: write less, do more
• Use AJAX/JSON, No Page Reload
• Web Application with Desktop Application User Experience
9 9
Panda Core Service
EnvironmentJetty
SAP Sim TRaC Sim
KMS/RMI
Sim
OracleDB
LDAP
MQ Writer
RegFGServlet
EnvInfoServlet
MsgSignServlet
MqWriterServlet
DBUtilServlet
MessengerServlet
UtilityServlet MQ Reader
10 10
Panda API: Overview
Panda Core Service
APM Web
DTS
Protocol Data
Panda API
HTTP POST
Enrollment Python Functions
HTTP GET
· Generate Business System
message
· Send Message to IBM WebSphere
MQ
· Register device to server for auto
response on shipment and device
data response message.
· Get Test Team List.
· Get Test Protocol List.
· Get Test Data List
· Get Test Data Detail.
· Test engineer can start with getting
test protocol data from DTS.
· Create business system message
based on protocol data.
· Send out business system message
via Panda server.
· Call APM Web functions to finish
enrollment.
11 11
Scalability
HTTP
HTTP
HTTP
Panda Core Service
(6,0)
Panda Core Service
(7.0)
Panda Core Service
(8.0)
Apache HTTP Server
Proxy
Panda Web Application
Static Content
HTTP/HTTPS
HTTP/HTTPS
Panda API
Currently, there are two instances of Panda Services in the cloud:
• Release 7.0 for System Testing: 23 environments in 5 geographic regions.
• Release 7.0 for App Dev: 5 environments in 5 geographic regions.
• In fact, One Panda instance is capable of supporting all environments we currently have.
Multiple Panda instances are used to support different Latitude releases.
The front end Apache HTTP Server can be configured as:
• SSL Proxy
• Load Balancer
• Request Dispatcher
12 12
Results
Simplify Test Development
• Common test tasks are handled by Panda Service
• Upgrade on Server makes available to all clients instantaneously
• Centralized Control means less chance to break test
• Focus on application issue other than testing issue
Improve Test Efficiency and Quality
• Fully compliant with message schema and behavior of real business system
• Tools and API make it easy for End to End testing
• Save the need for environments with business system during test debug phase
• Speeds up test development and execution
13 13
Results (cont)
Stability
• Auto-Recover from connection lose, even power outage
• Eliminated testing downtime
Reduce Cost
• No more dedicated person for maintenance
• Only 150K in size with Low Memory Footprint
• Can be efficiently run even on a $300 Netbook
• 30 minutes for deploying Panda from scratch; 5 minutes for Upgrade
• Multiple Panda instances for supporting multiple Latitude releases
14 14
Conclusions
Cloud computing is efficient and cost effective in
software testing.
Lots of success stories from our customers.
We expect wider use of cloud computing inside Boston
Scientific.
06/06/2010
Thank You