SlideShare a Scribd company logo
CloudStack-UI
Ilya Zolotukhin, Product Team Leader, Bitworks
mailto: zolotukhin_ii@bitworks.software
https://bitworks.software/
CSEUUG Meetup, August 17, 2017
Apache CloudStack user self-service web interface for IaaS and
application delivery services
Agenda
1. About the speaker
2. Origins - how and why we decided to
develop the product
3. Current problems of the native ACS UI as
our users and helpdesks see them
4. Comparison - native vs CloudStack-UI
5. UX Goals: Simplicity, Early Errors
Detection, Intuitive Navigation, Less Steps
6. Domains
7. Where the project moves
8. The role of tags for the product
9. Pluggable infrastructure
a. Shell In A Box plugin
b. Pulse plugin
c. Vault plugin
10. Application delivery (and CICD)
development
11. Development process - work on
features, bugs, release cycles
12. Development roadmap
13. Product difficulties and ACS advices
14. Team
15. About Bitworks
16. Thank you slide
2
1. Team Leader at Bitworks
a. 3 Years of full-stack development
b. 3 Years of front-end development for
AdTech Industry
2. Front-End consultant
About the Speaker
Who is it?
3
Why We Develop CloudStack-UI
1. Educational “Incubator” for new teammates
2. Our affiliate ISP company uses ACS and has collected broad
experience over 3 years of service delivery:
a. We have a Project Sponsor
b. We have an understanding of what shortcomings the
current UI has and what features and UX our competitors
provide (AWS, DO, etc.)
c. Affiliate company plans to launch new ACS-based cloud
3. As a software development company, we understand jQuery is
not a good choice any longer for current web UI and new
adopters try to stay away from it (why not just change the
current layout?).
4
Current Problems of Native ACS
UI From User’s Perspective
1. Difficult to learn and remember how to run operations (even for
Basic Zone). E.g. to make a template from a snapshot
2. Old-fashioned (competes poorly against AWS, DO, GCP)
3. First glance disappointments
a. rookie administrators (who deploy ACS for the first time)
b. newbie users who come from AWS, DO, GCP, etc
5
Current Problems of Native ACS
UI From HelpDesk Perspective
1. Difficult to learn and remember how to run operations (even for
Basic Zone). E.g. to make a template from a snapshot
2. Troublesome phone-based consultations (it’s difficult to explain
where to navigate, what input to find, and change)
3. Troublesome ticket-based consultations (no way to remember
the state)
6
CloudStack-UI vs Native ACS UI (I)
Feature CS-UI Native
UI Credo 1. Better UX
2. User’s needs first
3. Simplify navigation
1. Reflect API fully
2. ER-based navigation design
3. Administrator needs first
Purpose Cloud Users Cloud Administrators
Cloud Users
Care Helpful, protective. Advanced client-side
logic. Tries to avoid error situations and
explains errors if possible.
Careless (let’s try it and see what happens).
Almost server-side error detection.
Business
logic
“Thinks” about cloud from the business
logic point of view (e.g. default service
offerings)
Just reflects technology to UI
7
CloudStack-UI vs Native ACS UI (II)
Feature CS-UI Native
Look & Feel Modern Material (Google) design,
responsive (PC, Tablets), fits great for
“tap-ish” devices.
Custom design, sometimes old-fashioned,
designed for PC.
Redesign proposal (ACS 4.3 - 2013, not implemented):
https://cwiki.apache.org/confluence/display/CLOUDST
ACK/Update+UI+visual+appearance
Navigation State reflection to URL (History API) No reflection (makes life of HelpDesk difficult)
Technology 1. Angular v4 https://angular.io/
2. TypeScript
3. Material Design (Look & Feel)
https://material.angular.io/
1. No framework
2. JavaScript
3. jQuery
Deployment Dockerized SPA Embedded
8
CloudStack-UI vs Native ACS UI (III)
Feature CS-UI Native
Future
Supportability
Uses modern Angular
framework which is expected to
be used for the next 6-7 years
(angular.js - 2009-2016)
Custom jQuery-based framework
Maturity Rookie Mature
Adoption None High
License Apache License v2 Apache License v2
9
Native UI VM Creation
10
Every State is Represented with a Permalink
11
https://cs.ui/instances?
zones=031a55bb-5d6b-4336-ab93-d5dead28a887&groups=www&states=Running&groupings=zones&groupings=groups
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
12
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
13
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
14
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
15
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
16
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
17
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
18
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
19
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
20
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
21
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
22
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
23
UX Goals: Simplicity, Early Errors Detection,
Intuitive Navigation, Less Steps
24
Security Group Review: Single SG per VM -
Useful For Average Cloud Users
25
Security Group Review: Single SG per VM -
Useful For Average Cloud Users
26
Security Group Review: Single SG per VM -
Useful For Average Cloud Users
27
Domain
Improvements
28
3 ways to specify a default domain:
1. URL Query params
2. Config (config.json)
(deployment)
3. Type it on the Login Page
The Role of ACS Tags in CloudStack-UI
29
Tags are widely used
1. user - preferences, localization, theming, plugins
2. vm - helpers, colors, description, grouping, plugins
3. volume - marking for removal
4. SG - distinguish between SG templates and actual SGs,
marking for removal
5. template - helpers
Suffer from:
1. tag values are too short (255 chars max)
2. no account tags
The Role of ACS Tags in CloudStack-UI
Where do we use tags?
1. VM
a. Instance group
b. UI-specific settings. i.e. color, description
2. Snapshot description
3. Template download URL
4. User
a. Language
b. Time format
c. Interface color
5. Volume description
6. Plugins
a. WebShell
b. Pulse
30
The Role of ACS Tags in CloudStack-UI
[cloudstack-ui-cleaner]
31
Current cleaner implementation is naive. Need to
reimplement with event subscription.
The Role of ACS Tags in CloudStack-UI:
[cloudstack-ui-cleaner]
32
Lack of delete chain operations for VM:
1. for SGs
2. Snapshots
3. Disks
4. Anything else?
markResourceAutoExpunge?resource=sg&id=<sgid>&vm=<vmid>
Suggestion:
The Role of ACS Tags in CloudStack-UI.
An Example of Tags Usage for VMs
33
Suggestion:
Add option to API to copy tags from template to VM
Extensions Ecosystem: ACS Umbrella
34
Extension Plugin: Pulse
35
Extension Plugin: Pulse
36
Pulse:
CPU/RAM
37
38
Disk: read/write/errors Network: read/write/errors/drops
Extension Plugin: Shell In A Box
39
Shell In A Box: Benefits
40
● High Interactivity
● Copy & Paste
● Automatic session termination on inactivity
timeout
● No out-of-band access
TODO:
● Vault plugin integration (passwordless SSH)
● Control-centre (SSH-sessions multiplexor)
Shell In A Box: Use of Tags
41
Shell In A Box: Console View
42
Extension (Vault) = Philosophy
43
Vault: Purpose
44
● CMDB (Configuration Management Database) implementation
● Tag service replacement for native ACS (because native ACS
tags lack functionality)
● Two-way secure communication for VM <-> CMDB (via Vault’s
tokens, scopes, ACLs)
● One-time tokens for Webshell (private SSH keys storage,
passwordless SSH access)
● The basis for Applications plugin
Vault: Technology
45
Thoughts on Project Direction
46
Project Direction - Traditional IaaS vs IaC
(CCA). More and More Users Don’t Need
VMs - They Need:
47
Applications
1. deployed (templates)
2. configured (templates)
3. upgraded (seamlessly)
4. monitored (visually)
5. troubleshot (visually)
6. backed up and restored (automatically)
7. optimized (performance / price optimization)
Decrease costs and simplify all mentioned above (DIY approach)
OK. Sure, traditional users are still here (corporate users)
Development Process
1. Agile + Scrum + ZenHub
2. 2-week sprints
3. peer-to-peer code review
48
Development Process
49
Development Process
50
Development Process
1. Public:
a. Docker hub releases ( https://hub.docker.com/r/bwsw/cloudstack-ui )
■ docker pull bwsw/cloudstack-ui:latest
■ docker pull bwsw/cloudstack-ui:[version]
b. Travis CI
2. Private: Jenkins
a. Docker per-branch testing and deployment
■ http://sandbox-url/[branch-name]
51
Difficulties: ACS Advices
1. Missing fields in responses
a. RestoreVM - missing jobinstancetype and jobinstanceid
2. Lowercase
a. <jobstatus>
b. <jobprocstatus>
c. <jobresultcode>
d. <jobresulttype>
3. Some responses contain <success>true</success> , while others contain entity
4. No Error codes
5. Strange naming
a. UserVm instead of VirtualMachine (tags)
b. getVMPassword, cleanVMReservationsCleanups
52
Difficulties: ACS Advices
1. Schedule format in createSnapshot is confusing
2. Results don't contain all necessary fields:
3. templatefilter is required in listTemplates, while isofilter is
optional in listIsos
4. Tag operations are asynchronous (require polling)
5. Arrays in "list" responses are named inconsistently. For example,
listVirtualMachines returns <virtualmachine>, while
listAsyncJobs returns <asyncjobs>
6. Some of trues in { success: true } are strings “true” and some are
booleans
53
Core Development Team
1. Ivan Kudryavtsev - Product Owner
2. Elena Ershova - Project Manager
3. Ilya Zolotukhin - me (technical consulting, review, PM)
4. Developers:
a. Andrey Bents
b. Vladimir Shakhov
(3 more developers and a QA-engineer help when available)
54
About Bitworks Software
55
● Telecommunications
(ISP, XaaS, HPC)
● AdTech
● FinTech (NASDAQ
technologies)
● Pharmaceutical (medical
data processing, machine
learning models)
● IoT
● Backend (Scala, Java,
Python, Go)
● Frontend (Angular.js,
Angular, React)
● QA (automation, manual)
● ML/ETL (Apache Spark,
TensorFlow, etc.)
● Project Management
(Scrum)
About Bitworks Software
56
WWW:
https://bitworks.software/en
Corporate Presentation:
https://goo.gl/uYCzGu
Please, ask for a free USB flash stick
with the presentation if you are
interested (we have some)
E-mail:
info@bitworks.software
Many Thanks to Organizers
57
The End
Questions?
58

More Related Content

Similar to Bitworks CloudStack UI - CSEUUG 08 August 2017 (20)

PDF
Spring boot microservice metrics monitoring
Oracle Korea
 
PDF
micro-frontends-with-vuejs
Oleksandr Tserkovnyi
 
PPSX
Scaling Application
Alaor Bianco
 
PDF
Operational Visibiliy and Analytics - BU Seminar
Canturk Isci
 
DOC
Chinnasamy Manickam
Chinnasamy Manickam
 
PPTX
JSS build and deployment
David Szöke
 
PPTX
Application cloudification with liberty and urban code deploy - UCD
Davide Veronese
 
PDF
Cloud-native Java EE-volution
QAware GmbH
 
DOC
PratheshBV_Resume
pradeesh bv
 
PDF
Jak nie zwariować z architekturą Serverless?
The Software House
 
PDF
Bring-your-ML-Project-into-Production-v2.pdf
Liang Yan
 
PPT
Sergey Ilinsky Presentation Ample Sdk
Ajax Experience 2009
 
PDF
The Happy Path: Migration Strategies for Node.js
Nicholas Jansma
 
PDF
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners
Craeg Strong
 
PDF
dan_labrecque_web_resume
Dan Labrecque
 
RTF
Synopsis on online shopping by sudeep singh
Sudeep Singh
 
PPTX
Azure presentation nnug dec 2010
Ethos Technologies
 
PDF
What's new in Portal and WCM 8.5
Vinayak Tavargeri
 
PDF
Pro ASP NET MVC 3 Framework 3rd Edition Steven Sanderson
crotgify
 
PDF
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Wojciech Barczyński
 
Spring boot microservice metrics monitoring
Oracle Korea
 
micro-frontends-with-vuejs
Oleksandr Tserkovnyi
 
Scaling Application
Alaor Bianco
 
Operational Visibiliy and Analytics - BU Seminar
Canturk Isci
 
Chinnasamy Manickam
Chinnasamy Manickam
 
JSS build and deployment
David Szöke
 
Application cloudification with liberty and urban code deploy - UCD
Davide Veronese
 
Cloud-native Java EE-volution
QAware GmbH
 
PratheshBV_Resume
pradeesh bv
 
Jak nie zwariować z architekturą Serverless?
The Software House
 
Bring-your-ML-Project-into-Production-v2.pdf
Liang Yan
 
Sergey Ilinsky Presentation Ample Sdk
Ajax Experience 2009
 
The Happy Path: Migration Strategies for Node.js
Nicholas Jansma
 
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners
Craeg Strong
 
dan_labrecque_web_resume
Dan Labrecque
 
Synopsis on online shopping by sudeep singh
Sudeep Singh
 
Azure presentation nnug dec 2010
Ethos Technologies
 
What's new in Portal and WCM 8.5
Vinayak Tavargeri
 
Pro ASP NET MVC 3 Framework 3rd Edition Steven Sanderson
crotgify
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Wojciech Barczyński
 

Recently uploaded (20)

PPTX
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
PDF
intro_to_cpp_namespace_robotics_corner.pdf
MohamedSaied877003
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PPTX
prodad heroglyph crack 2.0.214.2 Full Free Download
cracked shares
 
PPTX
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
UI5con_2025_Accessibility_Ever_Evolving_
gerganakremenska1
 
PDF
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
PDF
Why is partnering with a SaaS development company crucial for enterprise succ...
Nextbrain Technologies
 
PDF
Dipole Tech Innovations – Global IT Solutions for Business Growth
dipoletechi3
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
Simplify React app login with asgardeo-sdk
vaibhav289687
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
NPD Software -Omnex systems
omnex systems
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
intro_to_cpp_namespace_robotics_corner.pdf
MohamedSaied877003
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
prodad heroglyph crack 2.0.214.2 Full Free Download
cracked shares
 
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
UI5con_2025_Accessibility_Ever_Evolving_
gerganakremenska1
 
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
Why is partnering with a SaaS development company crucial for enterprise succ...
Nextbrain Technologies
 
Dipole Tech Innovations – Global IT Solutions for Business Growth
dipoletechi3
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
Simplify React app login with asgardeo-sdk
vaibhav289687
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
NPD Software -Omnex systems
omnex systems
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
Ad

Bitworks CloudStack UI - CSEUUG 08 August 2017

  • 1. CloudStack-UI Ilya Zolotukhin, Product Team Leader, Bitworks mailto: [email protected] https://bitworks.software/ CSEUUG Meetup, August 17, 2017 Apache CloudStack user self-service web interface for IaaS and application delivery services
  • 2. Agenda 1. About the speaker 2. Origins - how and why we decided to develop the product 3. Current problems of the native ACS UI as our users and helpdesks see them 4. Comparison - native vs CloudStack-UI 5. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 6. Domains 7. Where the project moves 8. The role of tags for the product 9. Pluggable infrastructure a. Shell In A Box plugin b. Pulse plugin c. Vault plugin 10. Application delivery (and CICD) development 11. Development process - work on features, bugs, release cycles 12. Development roadmap 13. Product difficulties and ACS advices 14. Team 15. About Bitworks 16. Thank you slide 2
  • 3. 1. Team Leader at Bitworks a. 3 Years of full-stack development b. 3 Years of front-end development for AdTech Industry 2. Front-End consultant About the Speaker Who is it? 3
  • 4. Why We Develop CloudStack-UI 1. Educational “Incubator” for new teammates 2. Our affiliate ISP company uses ACS and has collected broad experience over 3 years of service delivery: a. We have a Project Sponsor b. We have an understanding of what shortcomings the current UI has and what features and UX our competitors provide (AWS, DO, etc.) c. Affiliate company plans to launch new ACS-based cloud 3. As a software development company, we understand jQuery is not a good choice any longer for current web UI and new adopters try to stay away from it (why not just change the current layout?). 4
  • 5. Current Problems of Native ACS UI From User’s Perspective 1. Difficult to learn and remember how to run operations (even for Basic Zone). E.g. to make a template from a snapshot 2. Old-fashioned (competes poorly against AWS, DO, GCP) 3. First glance disappointments a. rookie administrators (who deploy ACS for the first time) b. newbie users who come from AWS, DO, GCP, etc 5
  • 6. Current Problems of Native ACS UI From HelpDesk Perspective 1. Difficult to learn and remember how to run operations (even for Basic Zone). E.g. to make a template from a snapshot 2. Troublesome phone-based consultations (it’s difficult to explain where to navigate, what input to find, and change) 3. Troublesome ticket-based consultations (no way to remember the state) 6
  • 7. CloudStack-UI vs Native ACS UI (I) Feature CS-UI Native UI Credo 1. Better UX 2. User’s needs first 3. Simplify navigation 1. Reflect API fully 2. ER-based navigation design 3. Administrator needs first Purpose Cloud Users Cloud Administrators Cloud Users Care Helpful, protective. Advanced client-side logic. Tries to avoid error situations and explains errors if possible. Careless (let’s try it and see what happens). Almost server-side error detection. Business logic “Thinks” about cloud from the business logic point of view (e.g. default service offerings) Just reflects technology to UI 7
  • 8. CloudStack-UI vs Native ACS UI (II) Feature CS-UI Native Look & Feel Modern Material (Google) design, responsive (PC, Tablets), fits great for “tap-ish” devices. Custom design, sometimes old-fashioned, designed for PC. Redesign proposal (ACS 4.3 - 2013, not implemented): https://cwiki.apache.org/confluence/display/CLOUDST ACK/Update+UI+visual+appearance Navigation State reflection to URL (History API) No reflection (makes life of HelpDesk difficult) Technology 1. Angular v4 https://angular.io/ 2. TypeScript 3. Material Design (Look & Feel) https://material.angular.io/ 1. No framework 2. JavaScript 3. jQuery Deployment Dockerized SPA Embedded 8
  • 9. CloudStack-UI vs Native ACS UI (III) Feature CS-UI Native Future Supportability Uses modern Angular framework which is expected to be used for the next 6-7 years (angular.js - 2009-2016) Custom jQuery-based framework Maturity Rookie Mature Adoption None High License Apache License v2 Apache License v2 9
  • 10. Native UI VM Creation 10
  • 11. Every State is Represented with a Permalink 11 https://cs.ui/instances? zones=031a55bb-5d6b-4336-ab93-d5dead28a887&groups=www&states=Running&groupings=zones&groupings=groups
  • 12. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 12
  • 13. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 13
  • 14. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 14
  • 15. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 15
  • 16. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 16
  • 17. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 17
  • 18. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 18
  • 19. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 19
  • 20. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 20
  • 21. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 21
  • 22. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 22
  • 23. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 23
  • 24. UX Goals: Simplicity, Early Errors Detection, Intuitive Navigation, Less Steps 24
  • 25. Security Group Review: Single SG per VM - Useful For Average Cloud Users 25
  • 26. Security Group Review: Single SG per VM - Useful For Average Cloud Users 26
  • 27. Security Group Review: Single SG per VM - Useful For Average Cloud Users 27
  • 28. Domain Improvements 28 3 ways to specify a default domain: 1. URL Query params 2. Config (config.json) (deployment) 3. Type it on the Login Page
  • 29. The Role of ACS Tags in CloudStack-UI 29 Tags are widely used 1. user - preferences, localization, theming, plugins 2. vm - helpers, colors, description, grouping, plugins 3. volume - marking for removal 4. SG - distinguish between SG templates and actual SGs, marking for removal 5. template - helpers Suffer from: 1. tag values are too short (255 chars max) 2. no account tags
  • 30. The Role of ACS Tags in CloudStack-UI Where do we use tags? 1. VM a. Instance group b. UI-specific settings. i.e. color, description 2. Snapshot description 3. Template download URL 4. User a. Language b. Time format c. Interface color 5. Volume description 6. Plugins a. WebShell b. Pulse 30
  • 31. The Role of ACS Tags in CloudStack-UI [cloudstack-ui-cleaner] 31 Current cleaner implementation is naive. Need to reimplement with event subscription.
  • 32. The Role of ACS Tags in CloudStack-UI: [cloudstack-ui-cleaner] 32 Lack of delete chain operations for VM: 1. for SGs 2. Snapshots 3. Disks 4. Anything else? markResourceAutoExpunge?resource=sg&id=<sgid>&vm=<vmid> Suggestion:
  • 33. The Role of ACS Tags in CloudStack-UI. An Example of Tags Usage for VMs 33 Suggestion: Add option to API to copy tags from template to VM
  • 38. 38 Disk: read/write/errors Network: read/write/errors/drops
  • 39. Extension Plugin: Shell In A Box 39
  • 40. Shell In A Box: Benefits 40 ● High Interactivity ● Copy & Paste ● Automatic session termination on inactivity timeout ● No out-of-band access TODO: ● Vault plugin integration (passwordless SSH) ● Control-centre (SSH-sessions multiplexor)
  • 41. Shell In A Box: Use of Tags 41
  • 42. Shell In A Box: Console View 42
  • 43. Extension (Vault) = Philosophy 43
  • 44. Vault: Purpose 44 ● CMDB (Configuration Management Database) implementation ● Tag service replacement for native ACS (because native ACS tags lack functionality) ● Two-way secure communication for VM <-> CMDB (via Vault’s tokens, scopes, ACLs) ● One-time tokens for Webshell (private SSH keys storage, passwordless SSH access) ● The basis for Applications plugin
  • 46. Thoughts on Project Direction 46
  • 47. Project Direction - Traditional IaaS vs IaC (CCA). More and More Users Don’t Need VMs - They Need: 47 Applications 1. deployed (templates) 2. configured (templates) 3. upgraded (seamlessly) 4. monitored (visually) 5. troubleshot (visually) 6. backed up and restored (automatically) 7. optimized (performance / price optimization) Decrease costs and simplify all mentioned above (DIY approach) OK. Sure, traditional users are still here (corporate users)
  • 48. Development Process 1. Agile + Scrum + ZenHub 2. 2-week sprints 3. peer-to-peer code review 48
  • 51. Development Process 1. Public: a. Docker hub releases ( https://hub.docker.com/r/bwsw/cloudstack-ui ) ■ docker pull bwsw/cloudstack-ui:latest ■ docker pull bwsw/cloudstack-ui:[version] b. Travis CI 2. Private: Jenkins a. Docker per-branch testing and deployment ■ http://sandbox-url/[branch-name] 51
  • 52. Difficulties: ACS Advices 1. Missing fields in responses a. RestoreVM - missing jobinstancetype and jobinstanceid 2. Lowercase a. <jobstatus> b. <jobprocstatus> c. <jobresultcode> d. <jobresulttype> 3. Some responses contain <success>true</success> , while others contain entity 4. No Error codes 5. Strange naming a. UserVm instead of VirtualMachine (tags) b. getVMPassword, cleanVMReservationsCleanups 52
  • 53. Difficulties: ACS Advices 1. Schedule format in createSnapshot is confusing 2. Results don't contain all necessary fields: 3. templatefilter is required in listTemplates, while isofilter is optional in listIsos 4. Tag operations are asynchronous (require polling) 5. Arrays in "list" responses are named inconsistently. For example, listVirtualMachines returns <virtualmachine>, while listAsyncJobs returns <asyncjobs> 6. Some of trues in { success: true } are strings “true” and some are booleans 53
  • 54. Core Development Team 1. Ivan Kudryavtsev - Product Owner 2. Elena Ershova - Project Manager 3. Ilya Zolotukhin - me (technical consulting, review, PM) 4. Developers: a. Andrey Bents b. Vladimir Shakhov (3 more developers and a QA-engineer help when available) 54
  • 55. About Bitworks Software 55 ● Telecommunications (ISP, XaaS, HPC) ● AdTech ● FinTech (NASDAQ technologies) ● Pharmaceutical (medical data processing, machine learning models) ● IoT ● Backend (Scala, Java, Python, Go) ● Frontend (Angular.js, Angular, React) ● QA (automation, manual) ● ML/ETL (Apache Spark, TensorFlow, etc.) ● Project Management (Scrum)
  • 56. About Bitworks Software 56 WWW: https://bitworks.software/en Corporate Presentation: https://goo.gl/uYCzGu Please, ask for a free USB flash stick with the presentation if you are interested (we have some) E-mail: [email protected]
  • 57. Many Thanks to Organizers 57