Git Product home page Git Product logo

stratos's Introduction

Apache Stratos

Apache Stratos is a PaaS framework that supports polyglot environments (e.g., PHP, MySQL) and can be extended to support many more. Apache Stratos is also the foundation for multiple flavors of PaaSes, such as Application PaaS (aPaaS), Integration PaaS (iPaaS), or Data PaaS (dPaaS). Stratos is licensed under the Apache License, Version 2.0

Features

  • Cloud Controller (CC)
    CC leverages Apache jclouds' APIs and provides a generic interface to communicate with different IaaS.

  • Multi-factored auto-scaling The Auto-scaler uses a Complex Event Processor (CEP) for real-time decision making and it integrates both real-time and rule-base decision making in order to provide better control over scaling of platforms. Auto-scaling policies can be defined with the following multiple factors, which are considered when scaling up or down: requests in flight, memory consumption and load average. The Auto-scaler also support scaling for non-HTTP transport.

  • Smart policies
    The Auto-scaler uses the following two smart policies when making auto-scaling decisions: Auto-scaling policy and deployment policy. Instances will be automatically spawned based on the smart policies defined in the cartridge.

  • Multiple IaaS support
    Apache Stratos is tested on the following IaaS providers: AWS EC2, Openstack and vClouds. However, it is very easy to extend Apache Stratos to support any IaaS that is supported by Apache jclouds.

  • Multi-cloud bursting Apache Stratos supports multiple IaaS. When the maximum limit of instances have been reached in an IaaS, instances will be spawned on another IaaS, which is in another partition group. Thereby, this will enable resource peak times to be off-loaded to another cloud.

  • Controlling IaaS resources DevOps can define partitions and network partitions to control IaaS resources. Thereby, Apache Stratos can control resources per cloud, region and zone. Controlling of IaaS resources will provide high availability and will solve disaster recovery concerns.

  • Loosely coupled communication
    AMQP messaging technology is used to communicate with all the components. Apache Stratos uses an AMQP Message Broker (MB) to communicate in a loosely coupled fashion.

  • Multi-tenancy Support for in-container multi-tenancy. Thereby, optimizing resource utilization.

  • Cartridges
    Support for PHP, MySQL, Tomcat, Windows based (.NET) cartridges.

  • Pluggable architecture support for cartridges
    A cartridge is a package of code that includes a Virtual Machine (VM) image plus additional configuration, which can be plugged into Apache Stratos to offer a new PaaS service. Apache Stratos supports single tenant and multi-tenant cartridges. If needed, tenants can seamlessly add their own cartridges to Apache Stratos.

  • Cartridge automation using Puppet
    Cartridges can be easily configured with the use of Puppet.

  • Load Balancer (LB) as a cartridge
    LBs in Apache Stratos accepts dynamic cluster domain registrations. In addition, LBs accepts static cluster domain registrations at start-up. Apache Stratos also supports third party LBs (e.g., HAproxy). Thereby, allowing users to use their own LB if required.

  • Artifact Distribution Coordinator (ADC)
    ADC takes complete applications and breaks it into per-instance components that are then loaded into instances. ADC supports external Git and GitHub repositories based deployment synchronization. Users are able to use their own Git repository to sync artifacts with a service instance.

  • Stratos Manager Console
    Administrators and tenants can use the Stratos Manager Console, which is a web-based UI management console, to carryout various actions. Tenants can carry out the following actions:

  • View the list of available cartridges.

  • Subscribe to cartridges.

  • Unsubscribe from cartridges.

  • View list of subscribed cartridges. Administrators can carry out the following actions:

  • Register tenants

  • Activate and deactivate tenants

  • View the list of available cartridges

  • View list of subscribed cartridges

  • Subscribe to a cartridge

  • Unsubscribe from a cartridge

  • Deploy a partition

  • Deploy an auto-scaling policy

  • Deploy a deployment policy

  • Deploy a Load Balancer

  • Deploy a single tenant or multi-tenant cartridge

  • Deploy a multi-tenant service cluster for a multi-tenant cartridge

  • Interactive CLI Tool
    Tenants use the command line interface (CLI) tool to manage their subscriptions.

  • Monitoring and metering
    Apache Stratos provides centralized monitoring and metering. Metering is used to measure the levels of resource utilization.

  • REST API
    DevOps can use REST APIs to carry out various administering functions (e.g., deploying a cartridge, registering a tenant and more).

  • Persistent volume support for cartridges If required the DevOps can enable persistent volume for cartridges. If persistent volume has been enabled, Apache Stratos will automatically attach a volume when a new cartridge instance is created.

  • Gracefully shutdown instances
    When scaling down, before terminating an instance the Auto-scaler will allow all the existing requests to the instance to gracefully shutdown; while, not accepting any new requests to that instance.

Resources

License

Copyright (C) 2013-2014 The Apache Software Foundation

Licensed under the Apache License, Version 2.0

stratos's People

Contributors

nirmal070125 avatar imesh avatar isurulucky avatar lahirugmg avatar rekathiru avatar manulachathurika avatar chrishantha avatar chamilad avatar pradeepfn avatar raj-rajaratnam avatar melanj avatar snowch avatar lakwarus avatar dineshbandara avatar ravihansa3000 avatar sajhak avatar chanaka3d avatar lasinducharith avatar dakshika avatar jeffrngu avatar manulaw avatar vimuth avatar dchalfant avatar mre2017 avatar smarru avatar suriyapriya avatar thushara35 avatar ajanthan avatar maicole avatar

Watchers

James Cloos avatar Asiri Liyana Arachchi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.