Technology

Today’s society is more and more relying on digital relationships: don’t miss the chance to reduce your marketing and sales costs, engage new customers and increase revenues. You can be part of the change by envolving, retaining and enlarging your ecosystem of customers thanks to the flexibility and robustness provided by ClouDesire.

ClouDesire is the only solution that fills the gap: there is no other Enterprise Application Marketplace where Independent Software Vendors (ISVs) can SaaSify their applications, deploy on any cloud provider, make them available immediately on the market. With the help of ClouDesire ISVs will be able to compete with the big SaaS players while End Users will get the highest degree of flexibility.

Platform Architecture

ClouDesire Engine

it’s the “core” of the platform: a set of multithread Java modules that uses messaging queues to enable asynchronous, distributed and redundant messaging among components, allowing enterprise integration patterns. Each module exposes a RESTful API layer used by the others.

ClouDesire Back-Office

a responsive AngularJS application where customers can see their orders and check their applications instances; vendors can manage their catalog, customers, subscriptions and running instances; administrators can manage the entire platform and receive updates from the monitoring and alerting systems.

ClouDesire Marketplace

a responsive AngularJS application where a software vendor can publish its applications, along with others vendors apps. Customers can browse the catalog, compare products, rate and comment them, and finally place orders or try an application (if the vendor allows it).

Core Modules

Cloud Abstraction Layer

Cloud Abstraction Layer

a set of connection drivers, used to interact with private or public cloud providers APIs. It provides both heterogeneous hypervisors support (KVM, Xen, VMware, etc.) and public cloud connectors (Amazon AWS, Azure, Google Compute Engine, IBM SoftLayer, Joyent, etc.).

ClouDesire Deployer

ClouDesire Deployer

it is used to create a new cloud instance for each purchased application, to instantiate the required virtual resources and to monitor step-by-step the deployment status: if something goes wrong, it will retry until success.

ClouDesire Monitoring

ClouDesire Monitoring

it consists in a scalable repository of system and application metrics that also provides aggregated real-time statistics and graphs.

ClouDesire Backupper

ClouDesire Backupper

it allows to backup and restore applications data using the cloud provider snapshots & restore APIs.

ClouDesire Agent

ClouDesire Agent

software component that runs inside every VM instantiated by the Deployer. It collects both the IaaS metrics (i.e. CPU, Network, RAM, SSD usage) and application custom metrics (i.e. number of active users, numbers of created documents, etc.). Those can be used to monitor application usage and enable pay-per-use pricing models.

ClouDesire DNS

ClouDesire DNS

it provides the remote access of the applications and a custom application endpoint for each deployed instance.

supported public cloud providers

  • Amazon EC2
  • Joyent
  • IBM SoftLayer
  • HP Cloud
  • Microsoft Azure
  • Google Compute Engine
  • Digital Ocean
  • Enter the Cloud

Supported Private Cloud Management Frameworks and Orchestrators

  • OpenStack
  • OpenNebula
  • VMware vCloud Director
  • EC2-compatible (Eucalyptus)

Supported application staks

Programming Languages

  • PHP
  • Java (JEE)
  • Ruby on Rails
  • Python
  • NodeJs
  • .NET

Frameworks

  • Symfony
  • Django
  • Plone (Coming Soon)

Databases (and NoSQL)

  • MySQL
  • PostgreSQL
  • MongoDB
  • MS SQL Server

Docker Support

  • Docker Containers self-provisioning

Platform details

Multi-Tenant

  • Multiple environments
  • Features toggle
  • Platform configuration

Frontend

  • Lightweight single page application

        • Responsive design
        • Multi-language
        • Multiple skin support

Backend

  • Technologies

        • Java 1.8
        • Spring framework
        • Hibernate ORM
        • Hazelcast
        • PostgreSQL
  • JSON REST API-centric architecture

    • CMW
      • Billing
            • Payment due reminder
            • Invoice reminder
            • Budget calculator
            • Order management
            • Iaas pricings
            • EU/Non-EU VAT rate
            • Italian stamp duty
            • Payment gateway
            • Recurring charges (in progress)
            • Direct debits (in progress)
            • Invoicing
              • PDF generation
              • Templating
              • ID generation
            • Vendors Payback balance reports
      • Catalog
            • Product configuration (CMS)
              • Image management
              • Multi-language
              • Descriptions and features
            • Pricing configuration (per version)
              • Subscriptions pricing
              • Short-timing subscriptions
              • Setup fee
              • Billing items
              • Pay per use (application metrics)
            • Syndicated application management
              • Test-events
              • Webhooks for events notification
            • Deployed Application Management
              • Zip applications
              • Docker applications
                • Docker-compose
              • Sandboxing
              • SSH access to VMs via asymmetric keys
              • Iaas resources sizing
              • Applications Package Versioning
              • Environment variables
              • Stack parameters
              • Endpoint management
              • HTTPS certificate and custom domains
    • Users
            • Account registration
            • Social Login
            • Roles & Permissions (admin, supervisor, vendor, customer)
    • Statistics
            • Monthly/Total Iaas costs
            • Monthly/Total Application revenues
            • Monthly/Total Trial/sandbox expenses
            • Active users
            • Active/Pending deployments
    • Email
            • Transactional emails
            • Reminders
            • Template management
            • Localization
    • Deployer
            • State-Machine architecture
            • DNS driver
            • Iaas driver
              • GCE
              • Azure
              • Amazon
              • Rackspace
              • OpenStack
              • VMWare
            • Network/Firewall configuration
            • Chef integration
              • tested cookbooks
              • Recipes for:
                • Application stack
                • database
    • Monitor
            • Metrics collection via agent
            • Metrics aggregation
            • Charts data generation
    • Logging
            • System logs collection
            • rsyslog -> nxlog -> logstash -> elasticsearch
    • Unbounce adapter for landing page
    • Backupper
    • Authenticated Docker registry
  • Swagger documentation

How We Work

  • Automated tests

      • Unit test
      • Integration tests
      • UI tests (selenium)
  • Github pull requests

      • code review
      • standardize quality
  • Continuous integration on jenkins
  • Portable development environment 
  • Exceptions reporting (sentry)  
  • Service availability monitoring (updown) 
  • Real-time communication (slack)