SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
2013 Trend Micro
25th Anniversary
TCloud Computing, Inc.
CloudStack
test automation and CI
2013 Trend Micro
25th Anniversary
Agenda
CloudStack Test Automation
– Deploy and Test, Testing Framework Marvin
CloudStack Continuous Integration by Jenkins
– High Level Architecture
– Build Process
– Deploy Process
– Test Process
2013 Trend Micro
25th Anniversary
CloudStack Test Automation - Marvin
2013 Trend Micro
25th Anniversary
What to test Apache CloudStack
What to Test and Verify
• RESTful API
• Virtual Machine
• Hypervisors
• Storage Pool
• Virtual Network
• Database
Management
Server
MySQL
DB
Cloud Infrastructure
(Hypervisors and
Storages)
User API
Admin API
RESTful API
User Interface
Virtual Machine Database
Hypervisors and Storages
2013 Trend Micro
25th Anniversary
How to test Apache CloudStack
How to Test and Verify ?
(Manual Test)
• Web Browser
• XenCenter
• SSH client tools
• mysql client tools
Cloud we speed up the testing?
Management
Server
MySQL
DB
Cloud Infrastructure
(Hypervisors and
Storages)
User API
Admin API
Web Browser SSH Client MySQL Client
XenCenter
SSH Client
2013 Trend Micro
25th Anniversary
CloudStack project - Marvin
Automation Test
Log Deployment
2013 Trend Micro
25th Anniversary
CloudStack Test Automation - marvin
Apache CloudStack Test Automation – marvin
• testing framework, Python 2.7, unittest2, paramiko, mysql …
Marvin Source:
• <CloudStack Source>/tools/marvin
Marvin features to verify:
• Binding to CloudStack API (synchronous and asynchronous job)
• Support Deployment and Testing
• Support Log and Report
• Support SSH Client
• Support Database Client
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin structure
Marvin
Test Client
Management
Server MySQL
DB
Cloud Infrastructure
(Hypervisors and
Storages)
API Client Verify
Database Client Verify
SSH Client Verify
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin process
Marvin
Test Client
Load Configuration (datacenterCfg)
Run Test Suite
Execute Deployment
Generate logs and reports
1.Load JSON format
- define cloud infrastructure
- define database location
- define Management Server
2. Create api/secret key
1. Deploy Cloud Infrastructure
by cloudstack API automatically
2. Include Zone, Pod, Cluster,
Host, Storage, Network
1.Load unittest2 module and the
Test Suite you define to verify.
2. Can discover all Test folder
3. Start to Test!
1. Create Test Client log for all
the execution.
2. Create Test Case Result
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin
Test Automation marvin requirement:
• CentOS 6.3/Ubuntu
• Python 2.7
• python-pip
cd <CloudStack_Source>
To build marvin: (Be sure you can build CS first)
- ant build-marvin
To packe marvin:
- ant package-marvin
To install marvin
- ant install-marvin
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin
Step 1
Configure datacenterCfg in JSON format
• Zone
• Pod
• Cluster
• Host
• Primary Storage
• Secondary Storage
• Network Information
• Database information
• Management Server Information
datacenterCfg
{
"zones": [
{
"name": "zone01",
"guestcidraddress": "10.1.1.0/24",
"dns2": "8.8.8.8",
"dns1": “4.4.4.4",
...
},
"dbSvr": {
"dbSvr": "10.1.191.251",
"passwd": "cloud",
"db": "cloud",
"port": 3306,
"user": "cloud"
},
"mgtSvr": [
{
"mgtSvrIp": "10.1.191.251",
"port": 8096
}
]
}
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin
Step 2
Write Your Own Test Case by unittest2
== test_SampleCode.py ==
class Test_SampleCode(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
def tearDown(self):
pass
def test_apiclient(self)
listZones_parms = listZones.listZonesCmd()
res = self.apiClient.listZones(listZones_parms)
if not res.id:
self.fail('zone is empty')
# cat /tmp/results.log
test_apiclient (Test_SampleCode.Test_SampleCode) ... Ok
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin
Three Types of testClient (apiClient/sshClient/dbClient)
• CloudStack API client
listZones_parms = listZones.listZonesCmd()
res = self.apiClient.listZones(listZones_parms)
zone_id= self.testClient.executeSql('select id from datacenter')
sshconnect = remoteSSHClient('10.1.191.251', 22, 'root', ‘password')
sshconnect.execute('ls')
• SSH client
• Database client
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin
The debug method for log
• debug method.
sysvms = listSystemVms.listSystemVmsCmd()
sysvms.zoneid = z.id
self.debug("looking for system VMs in zone: %s, %s"%(z.id, z.name))
2013-03-01 17:15:08,394 - DEBUG - testclient.testcase.TestSetupSuccess - looking for
system VMs in zone: cbf16757-eb92-43f2-bb4b-8a46f3955bf9, zone01
2013-03-01 17:15:08,394 - DEBUG - testclient.testcase.TestSetupSuccess - looking for
system VMs in zone: cbf16757-eb92-43f2-bb4b-8a46f3955bf9, zone01
• debug messages.
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin
Step 3:
To run the Test
# cd <CloudStack_Source>/tools/marvin/marvin
Deployment and Automation test:
# python deployAndRun -c datacenterCfg -t /tmp/testcase.log -r /tmp/results.log -f sandbox/testSetupSuccess.py
option purpose
-c points to the configuration file defining our deployment
-r test results log where the summary report is written to
-t testcase log where all the logs we wrote in our tests is output for debugging purposes
-d directory containing all the test suites
-l only load the configuration, do not deploy the environment
-f Run tests in the given file
2013 Trend Micro
25th Anniversary
CloudStack Test Automation – marvin
Step 4:
Check the Testing Result:
test_01_create_disk_offering (test_disk_offerings.TestCreateDiskOffering)
Test to create disk offering ... ok
test_02_edit_disk_offering (test_disk_offerings.TestDiskOfferings)
Test to update existing disk offering ... ok
test_03_delete_disk_offering (test_disk_offerings.TestDiskOfferings)
Test to delete disk offering ... ok
test_deploy_vm (test_vm_life_cycle.TestDeployVM)
Test Deploy Virtual Machine ... Ok
----------------------------------------------------------------------
Ran 4 tests in 127.529s
2013 Trend Micro
25th Anniversary
CloudStack provides ..
<CloudStack_Source>testintegration
• Smoke Test
• Integration Test
2013 Trend Micro
25th Anniversary
Summary - Marvin
It can help you:
• Automate and speed up the test
• Fast deployment for Zone/Pod/Cluster/Host
• Generate the test result and test log
Development purpose:
• Automation Test
• Continuous Integration
IT and operation purpose:
• Automated operation
• Proof of concept
• Fast deployment
2013 Trend Micro
25th Anniversary
Cloudstack Continuous Integration by jenkins
2013 Trend Micro
25th Anniversary
CloudStack on Continuous Integration
Advantages:
• Automate the build
– daily and every commit
• Automate the deployment and self-testing
• Keep the build fast and stable
• Release Purpose
CloudStack Continuous Integration Process
• Build Process
• Deploy Process
• Test Process
• Release Process
2013 Trend Micro
25th Anniversary
Jenkins
Simple Continuous Integration flow
Source
Version
Control
(GIT/SVN..)
Job Get Source
Get, Build, Run and Get ...
Job Job
Job Job Job
Trigger the process by
• Schedule
• Poll SCM
2013 Trend Micro
25th Anniversary
Master/Slave Architecture
Jenkins Slave
Job Job Job
Jenkins
Master
Job Job Job
Jenkins Slave
Job Job Job
Job Job Job
Subversion
Version
Control
(GIT/SVN..)
Allocate Jobs
Poll SCM
Jenkins Slave
Job Job Job
Job Job Job
2013 Trend Micro
25th Anniversary
CloudStack on Jenkins CI: Term and Roles
Jenkins Roles:
• Master: Jenkins Manager
• Slave: Execute Jenkins Agent, It can execute jobs of the project
The Roles of CloudStack
• Jenkins Master: The Central Manager.
• Jenkins Slave: CloudStack Management Servers
• Hypervisors: XenServers
• Storage: Primary/Secondary Storages
• Test Clients: marvin
2013 Trend Micro
25th Anniversary
CloudStack on Jenkins CI
Jenkins Master
(Jenkins Slave)
CloudStack
Management
Server
Deployment
Module
Subversion
Version
Control
Cloud Infrastructure
XenServer
XenServer
XenServer
XenServer
XenServer
XenServer
XenServer
Storage
3. Trigger Deployment
Test Client Test Client
1. Allocate Jobs
2. Get Source and Build
4. Deploy Cloud Infra.
5. Run Test Clients
…
2013 Trend Micro
25th Anniversary
CloudStack Continuous Integration
CloudStack Continuous Integration Cycle:
Build
Process
Deploy
Process
Test
Process
Release
Process
2013 Trend Micro
25th Anniversary
Cloudstack Continuous Integration
Build Process
• Retrieve the source code
• System environment setup
• Development environment setup
• Build and deploy to apache-tomcat
• Start the CloudStack Service
Jenkins
Master
(Jenkins Slave)
CloudStack
Management
Server
Subversion
Version
Control
Build
Process
Deploy
Process
Test
Process
Release
Process
2013 Trend Micro
25th Anniversary
Cloudstack Continuous Integration
Deploy Process
• Deployment Module:
– cobbler/puppy:
• Install/Configure Host/Storages
– Hypervisors on Virtual Machine (nested VM)
• Take Snapshot and Rollback for each run
• CloudStack deployment:
– Use testing framework marvin to deploy CS
– Zone/Pod/Cluster/Host/Hypervisors/Storages
– Make sure SystemVMs start correctly Deployment
Module
Cloud Infrastructure
XenServer
XenServer
XenServer
XenServer
XenServer
XenServer
XenServer
Storage
2013 Trend Micro
25th Anniversary
Cloudstack continuous integration
Test Process
• Run Test Suite
• Testing Framework marvin
– Test and verify cloudstack API
– Test by SSH Client
– Test by Database Client
• Generate Test Results and Reports
(Jenkins Slave)
CloudStack
Management
Server
Test Client Test Client
Cloud
Infrastructure
…
2013 Trend Micro
25th Anniversary
Cloudstack continuous integration
Release Process
• Integrate the Documents and Reports
• Run the release procedure to build install package
• Notification.
Build
Process
Deploy
Process
Test
Process
Release
Process
2013 Trend Micro
25th Anniversary
2013 Trend Micro
25th Anniversary
2013 Trend Micro
25th Anniversary
2013 Trend Micro
25th Anniversary
Q & A

Mais conteúdo relacionado

Mais procurados

Building Cloud Native Applications Using Spring Boot and Spring Cloud
Building Cloud Native Applications Using Spring Boot and Spring CloudBuilding Cloud Native Applications Using Spring Boot and Spring Cloud
Building Cloud Native Applications Using Spring Boot and Spring CloudGeekNightHyderabad
 
Security model for a remote company
Security model for a remote companySecurity model for a remote company
Security model for a remote companyPierre Mavro
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflixaspyker
 
What’s New in Spring Batch?
What’s New in Spring Batch?What’s New in Spring Batch?
What’s New in Spring Batch?VMware Tanzu
 
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G coreTối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G coreVietnam Open Infrastructure User Group
 
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)Docker, Inc.
 
Cloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersCloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersGunnar Hillert
 
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterJimmy Lu
 
Re:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS IntegrationRe:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS Integrationaspyker
 
Cloudfoundry Overview
Cloudfoundry OverviewCloudfoundry Overview
Cloudfoundry Overviewrajdeep
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioningbuildacloud
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kuberneteskloia
 
OpenStack Nova - Developer Introduction
OpenStack Nova - Developer IntroductionOpenStack Nova - Developer Introduction
OpenStack Nova - Developer IntroductionJohn Garbutt
 
OpenStack in Enterprise
OpenStack in EnterpriseOpenStack in Enterprise
OpenStack in EnterpriseNalee Jang
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...Tobias Schneck
 
Enabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via KubernetesEnabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via Kubernetesmountpoint.io
 
[오픈소스컨설팅] 서비스 메쉬(Service mesh)
[오픈소스컨설팅] 서비스 메쉬(Service mesh)[오픈소스컨설팅] 서비스 메쉬(Service mesh)
[오픈소스컨설팅] 서비스 메쉬(Service mesh)Open Source Consulting
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...Docker, Inc.
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDocker, Inc.
 

Mais procurados (20)

Building Cloud Native Applications Using Spring Boot and Spring Cloud
Building Cloud Native Applications Using Spring Boot and Spring CloudBuilding Cloud Native Applications Using Spring Boot and Spring Cloud
Building Cloud Native Applications Using Spring Boot and Spring Cloud
 
Security model for a remote company
Security model for a remote companySecurity model for a remote company
Security model for a remote company
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
 
What’s New in Spring Batch?
What’s New in Spring Batch?What’s New in Spring Batch?
What’s New in Spring Batch?
 
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G coreTối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
 
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
 
Cloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersCloud Foundry for Spring Developers
Cloud Foundry for Spring Developers
 
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes Cluster
 
Re:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS IntegrationRe:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS Integration
 
Cloudfoundry Overview
Cloudfoundry OverviewCloudfoundry Overview
Cloudfoundry Overview
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioning
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Monkey man
Monkey manMonkey man
Monkey man
 
OpenStack Nova - Developer Introduction
OpenStack Nova - Developer IntroductionOpenStack Nova - Developer Introduction
OpenStack Nova - Developer Introduction
 
OpenStack in Enterprise
OpenStack in EnterpriseOpenStack in Enterprise
OpenStack in Enterprise
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
 
Enabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via KubernetesEnabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via Kubernetes
 
[오픈소스컨설팅] 서비스 메쉬(Service mesh)
[오픈소스컨설팅] 서비스 메쉬(Service mesh)[오픈소스컨설팅] 서비스 메쉬(Service mesh)
[오픈소스컨설팅] 서비스 메쉬(Service mesh)
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and Architecture
 

Destaque

Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)
Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)
Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)tcloudcomputing-tw
 
Writing a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStackWriting a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStackbuildacloud
 
Policy Based SDN Solution for DC and Branch Office by Suresh Boddapati
Policy Based SDN Solution for DC and Branch Office by Suresh BoddapatiPolicy Based SDN Solution for DC and Branch Office by Suresh Boddapati
Policy Based SDN Solution for DC and Branch Office by Suresh Boddapatibuildacloud
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
Microservices, geerdet
Microservices, geerdetMicroservices, geerdet
Microservices, geerdetinovex GmbH
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittalbuildacloud
 
Continuous Integration for Fun and Profit
Continuous Integration for Fun and ProfitContinuous Integration for Fun and Profit
Continuous Integration for Fun and Profitinovex GmbH
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarPascal Larocque
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Chris Aniszczyk
 
Data Science in Digital Health
Data Science in Digital HealthData Science in Digital Health
Data Science in Digital HealthNeal Lathia
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)MinGeun Park
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins UsersAndrew Bayer
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 

Destaque (15)

Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)
Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)
Session 1 - CloudStack Plugin Structure and Implementation (2013.Q3)
 
Writing a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStackWriting a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStack
 
Policy Based SDN Solution for DC and Branch Office by Suresh Boddapati
Policy Based SDN Solution for DC and Branch Office by Suresh BoddapatiPolicy Based SDN Solution for DC and Branch Office by Suresh Boddapati
Policy Based SDN Solution for DC and Branch Office by Suresh Boddapati
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Microservices, geerdet
Microservices, geerdetMicroservices, geerdet
Microservices, geerdet
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
Continuous Integration for Fun and Profit
Continuous Integration for Fun and ProfitContinuous Integration for Fun and Profit
Continuous Integration for Fun and Profit
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
 
Data Science in Digital Health
Data Science in Digital HealthData Science in Digital Health
Data Science in Digital Health
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 

Semelhante a CloudStack Test Automation and CI

Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAmazon Web Services
 
Performance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverBlazeMeter
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfIvan Vasyliev
 
Jenkins Pipelines Advanced
Jenkins Pipelines AdvancedJenkins Pipelines Advanced
Jenkins Pipelines AdvancedOliver Lemm
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01Scott Miao
 
CloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingCloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingShapeBlue
 
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM RolesMasterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM RolesMalcolm Duncanson, CISSP
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務Mu Chun Wang
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upJonathan Lee
 
Building Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptnBuilding Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptnJohannes Bräuer
 
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get DiagnosticsBoris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get DiagnosticsShapeBlue
 
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud WorldHHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud Worldmatthew1001
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volutionQAware GmbH
 
Cloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdfCloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdfLeah Cole
 
Deep Dive Series #3: Schema Validation + Structured Audit Logs
Deep Dive Series #3: Schema Validation + Structured Audit LogsDeep Dive Series #3: Schema Validation + Structured Audit Logs
Deep Dive Series #3: Schema Validation + Structured Audit Logsconfluent
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Amazon Web Services
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...Daniel Bryant
 
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQuality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQAware GmbH
 
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...QAware GmbH
 

Semelhante a CloudStack Test Automation and CI (20)

Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWS
 
Performance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & Webdriver
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
 
Jenkins Pipelines Advanced
Jenkins Pipelines AdvancedJenkins Pipelines Advanced
Jenkins Pipelines Advanced
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01
 
CloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingCloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and Troubleshooting
 
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM RolesMasterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM Roles
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
 
Building Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptnBuilding Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptn
 
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get DiagnosticsBoris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
Boris Stoyanov - Troubleshooting the Virtual Router - Run and Get Diagnostics
 
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud WorldHHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
 
Azure from scratch part 4
Azure from scratch part 4Azure from scratch part 4
Azure from scratch part 4
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volution
 
Cloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdfCloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdf
 
Deep Dive Series #3: Schema Validation + Structured Audit Logs
Deep Dive Series #3: Schema Validation + Structured Audit LogsDeep Dive Series #3: Schema Validation + Structured Audit Logs
Deep Dive Series #3: Schema Validation + Structured Audit Logs
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
 
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQuality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
 
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
Quadratisch. Praktisch. Gut. K8s-native Quality Assurance mit Testkube @ Java...
 

Último

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

CloudStack Test Automation and CI

  • 1. 2013 Trend Micro 25th Anniversary TCloud Computing, Inc. CloudStack test automation and CI
  • 2. 2013 Trend Micro 25th Anniversary Agenda CloudStack Test Automation – Deploy and Test, Testing Framework Marvin CloudStack Continuous Integration by Jenkins – High Level Architecture – Build Process – Deploy Process – Test Process
  • 3. 2013 Trend Micro 25th Anniversary CloudStack Test Automation - Marvin
  • 4. 2013 Trend Micro 25th Anniversary What to test Apache CloudStack What to Test and Verify • RESTful API • Virtual Machine • Hypervisors • Storage Pool • Virtual Network • Database Management Server MySQL DB Cloud Infrastructure (Hypervisors and Storages) User API Admin API RESTful API User Interface Virtual Machine Database Hypervisors and Storages
  • 5. 2013 Trend Micro 25th Anniversary How to test Apache CloudStack How to Test and Verify ? (Manual Test) • Web Browser • XenCenter • SSH client tools • mysql client tools Cloud we speed up the testing? Management Server MySQL DB Cloud Infrastructure (Hypervisors and Storages) User API Admin API Web Browser SSH Client MySQL Client XenCenter SSH Client
  • 6. 2013 Trend Micro 25th Anniversary CloudStack project - Marvin Automation Test Log Deployment
  • 7. 2013 Trend Micro 25th Anniversary CloudStack Test Automation - marvin Apache CloudStack Test Automation – marvin • testing framework, Python 2.7, unittest2, paramiko, mysql … Marvin Source: • <CloudStack Source>/tools/marvin Marvin features to verify: • Binding to CloudStack API (synchronous and asynchronous job) • Support Deployment and Testing • Support Log and Report • Support SSH Client • Support Database Client
  • 8. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin structure Marvin Test Client Management Server MySQL DB Cloud Infrastructure (Hypervisors and Storages) API Client Verify Database Client Verify SSH Client Verify
  • 9. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin process Marvin Test Client Load Configuration (datacenterCfg) Run Test Suite Execute Deployment Generate logs and reports 1.Load JSON format - define cloud infrastructure - define database location - define Management Server 2. Create api/secret key 1. Deploy Cloud Infrastructure by cloudstack API automatically 2. Include Zone, Pod, Cluster, Host, Storage, Network 1.Load unittest2 module and the Test Suite you define to verify. 2. Can discover all Test folder 3. Start to Test! 1. Create Test Client log for all the execution. 2. Create Test Case Result
  • 10. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin Test Automation marvin requirement: • CentOS 6.3/Ubuntu • Python 2.7 • python-pip cd <CloudStack_Source> To build marvin: (Be sure you can build CS first) - ant build-marvin To packe marvin: - ant package-marvin To install marvin - ant install-marvin
  • 11. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin Step 1 Configure datacenterCfg in JSON format • Zone • Pod • Cluster • Host • Primary Storage • Secondary Storage • Network Information • Database information • Management Server Information datacenterCfg { "zones": [ { "name": "zone01", "guestcidraddress": "10.1.1.0/24", "dns2": "8.8.8.8", "dns1": “4.4.4.4", ... }, "dbSvr": { "dbSvr": "10.1.191.251", "passwd": "cloud", "db": "cloud", "port": 3306, "user": "cloud" }, "mgtSvr": [ { "mgtSvrIp": "10.1.191.251", "port": 8096 } ] }
  • 12. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin Step 2 Write Your Own Test Case by unittest2 == test_SampleCode.py == class Test_SampleCode(cloudstackTestCase): def setUp(self): self.apiclient = self.testClient.getApiClient() def tearDown(self): pass def test_apiclient(self) listZones_parms = listZones.listZonesCmd() res = self.apiClient.listZones(listZones_parms) if not res.id: self.fail('zone is empty') # cat /tmp/results.log test_apiclient (Test_SampleCode.Test_SampleCode) ... Ok ---------------------------------------------------------------------- Ran 1 test in 0.001s OK
  • 13. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin Three Types of testClient (apiClient/sshClient/dbClient) • CloudStack API client listZones_parms = listZones.listZonesCmd() res = self.apiClient.listZones(listZones_parms) zone_id= self.testClient.executeSql('select id from datacenter') sshconnect = remoteSSHClient('10.1.191.251', 22, 'root', ‘password') sshconnect.execute('ls') • SSH client • Database client
  • 14. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin The debug method for log • debug method. sysvms = listSystemVms.listSystemVmsCmd() sysvms.zoneid = z.id self.debug("looking for system VMs in zone: %s, %s"%(z.id, z.name)) 2013-03-01 17:15:08,394 - DEBUG - testclient.testcase.TestSetupSuccess - looking for system VMs in zone: cbf16757-eb92-43f2-bb4b-8a46f3955bf9, zone01 2013-03-01 17:15:08,394 - DEBUG - testclient.testcase.TestSetupSuccess - looking for system VMs in zone: cbf16757-eb92-43f2-bb4b-8a46f3955bf9, zone01 • debug messages.
  • 15. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin Step 3: To run the Test # cd <CloudStack_Source>/tools/marvin/marvin Deployment and Automation test: # python deployAndRun -c datacenterCfg -t /tmp/testcase.log -r /tmp/results.log -f sandbox/testSetupSuccess.py option purpose -c points to the configuration file defining our deployment -r test results log where the summary report is written to -t testcase log where all the logs we wrote in our tests is output for debugging purposes -d directory containing all the test suites -l only load the configuration, do not deploy the environment -f Run tests in the given file
  • 16. 2013 Trend Micro 25th Anniversary CloudStack Test Automation – marvin Step 4: Check the Testing Result: test_01_create_disk_offering (test_disk_offerings.TestCreateDiskOffering) Test to create disk offering ... ok test_02_edit_disk_offering (test_disk_offerings.TestDiskOfferings) Test to update existing disk offering ... ok test_03_delete_disk_offering (test_disk_offerings.TestDiskOfferings) Test to delete disk offering ... ok test_deploy_vm (test_vm_life_cycle.TestDeployVM) Test Deploy Virtual Machine ... Ok ---------------------------------------------------------------------- Ran 4 tests in 127.529s
  • 17. 2013 Trend Micro 25th Anniversary CloudStack provides .. <CloudStack_Source>testintegration • Smoke Test • Integration Test
  • 18. 2013 Trend Micro 25th Anniversary Summary - Marvin It can help you: • Automate and speed up the test • Fast deployment for Zone/Pod/Cluster/Host • Generate the test result and test log Development purpose: • Automation Test • Continuous Integration IT and operation purpose: • Automated operation • Proof of concept • Fast deployment
  • 19. 2013 Trend Micro 25th Anniversary Cloudstack Continuous Integration by jenkins
  • 20. 2013 Trend Micro 25th Anniversary CloudStack on Continuous Integration Advantages: • Automate the build – daily and every commit • Automate the deployment and self-testing • Keep the build fast and stable • Release Purpose CloudStack Continuous Integration Process • Build Process • Deploy Process • Test Process • Release Process
  • 21. 2013 Trend Micro 25th Anniversary Jenkins Simple Continuous Integration flow Source Version Control (GIT/SVN..) Job Get Source Get, Build, Run and Get ... Job Job Job Job Job Trigger the process by • Schedule • Poll SCM
  • 22. 2013 Trend Micro 25th Anniversary Master/Slave Architecture Jenkins Slave Job Job Job Jenkins Master Job Job Job Jenkins Slave Job Job Job Job Job Job Subversion Version Control (GIT/SVN..) Allocate Jobs Poll SCM Jenkins Slave Job Job Job Job Job Job
  • 23. 2013 Trend Micro 25th Anniversary CloudStack on Jenkins CI: Term and Roles Jenkins Roles: • Master: Jenkins Manager • Slave: Execute Jenkins Agent, It can execute jobs of the project The Roles of CloudStack • Jenkins Master: The Central Manager. • Jenkins Slave: CloudStack Management Servers • Hypervisors: XenServers • Storage: Primary/Secondary Storages • Test Clients: marvin
  • 24. 2013 Trend Micro 25th Anniversary CloudStack on Jenkins CI Jenkins Master (Jenkins Slave) CloudStack Management Server Deployment Module Subversion Version Control Cloud Infrastructure XenServer XenServer XenServer XenServer XenServer XenServer XenServer Storage 3. Trigger Deployment Test Client Test Client 1. Allocate Jobs 2. Get Source and Build 4. Deploy Cloud Infra. 5. Run Test Clients …
  • 25. 2013 Trend Micro 25th Anniversary CloudStack Continuous Integration CloudStack Continuous Integration Cycle: Build Process Deploy Process Test Process Release Process
  • 26. 2013 Trend Micro 25th Anniversary Cloudstack Continuous Integration Build Process • Retrieve the source code • System environment setup • Development environment setup • Build and deploy to apache-tomcat • Start the CloudStack Service Jenkins Master (Jenkins Slave) CloudStack Management Server Subversion Version Control Build Process Deploy Process Test Process Release Process
  • 27. 2013 Trend Micro 25th Anniversary Cloudstack Continuous Integration Deploy Process • Deployment Module: – cobbler/puppy: • Install/Configure Host/Storages – Hypervisors on Virtual Machine (nested VM) • Take Snapshot and Rollback for each run • CloudStack deployment: – Use testing framework marvin to deploy CS – Zone/Pod/Cluster/Host/Hypervisors/Storages – Make sure SystemVMs start correctly Deployment Module Cloud Infrastructure XenServer XenServer XenServer XenServer XenServer XenServer XenServer Storage
  • 28. 2013 Trend Micro 25th Anniversary Cloudstack continuous integration Test Process • Run Test Suite • Testing Framework marvin – Test and verify cloudstack API – Test by SSH Client – Test by Database Client • Generate Test Results and Reports (Jenkins Slave) CloudStack Management Server Test Client Test Client Cloud Infrastructure …
  • 29. 2013 Trend Micro 25th Anniversary Cloudstack continuous integration Release Process • Integrate the Documents and Reports • Run the release procedure to build install package • Notification. Build Process Deploy Process Test Process Release Process
  • 30. 2013 Trend Micro 25th Anniversary
  • 31. 2013 Trend Micro 25th Anniversary
  • 32. 2013 Trend Micro 25th Anniversary
  • 33. 2013 Trend Micro 25th Anniversary Q & A