Enterprise PaaS Evaluation Guide
1 Defining the Enterprise PaaS There are several competing definitions of Platform-as-a-Service (PaaS) and a broad range of service offerings bearing that label. For the purposes of this guide, we ll be using the term Enterprise PaaS to refer to middleware providing: Self-serve application deployment for end users Application hosting and scaling On-demand data services A quota and/or usage tracking system for users Load balancing and fault tolerance In this guide we will not consider public PaaS offerings (i.e. hosted, subscription services) because it is assumed that the scope of and specialization required for an Enterprise PaaS goes beyond what can be provided to a tenant of a public PaaS. The Enterprise PaaS can be hosted on premises, deployed on a cloud hosting provider s IaaS, or set up with some hybrid of the two. It can be used by organizations for internal development teams, or offered to external customers. Configuration Management is not PaaS It s important to remember that configuration management is not PaaS. While configuration management tools such as Chef, Puppet, Ansible and CFEngine are an important part of IT s arsenal for managing complexity, they are a fundamentally IT-centric solution to the challenges of software deployment. When discussing deployment workflow solutions, configuration management is often conflated with Platform-as-a-Service. Configuration management tools can be used in the setup and maintenance of a PaaS, but they should not be considered a complete solution if the end goal is to provide direct routes from code development to production deployment. Essential Elements of an Enterprise PaaS The primary purpose of a PaaS is to make software application deployment easier for end users, primarily developers. If the solution does not provide this it should not be considered a PaaS, even though it may still fall into one of the related categories of configuration management, cloud orchestration, or Cloud Enabled Application Platform (CEAP). There are three benefits when adopting an Enterprise PaaS: Faster application delivery (Time to Market): PaaS should provide instantaneous or nearly instantaneous application and service provisioning. It should enforce a consistent software environment at each stage of an application s lifecycle to reduce the potential for breakage between development, QA testing, and production. A PaaS can be made part of automated continuous integration/deployment systems. Easier administration: PaaS needs some sort of self-service interface for end users so administrators in IT are not burdened with the configuration of infrastructure for each application. End users should be able to automatically install and configure supporting software for user applications. They consume services rather than accessing their own virtual machines, as with the IaaS model. ddddddddddd Enterprise PaaS Evaluation Guide
Greater cooperation between development and operations: PaaS should appeal to people and organizations with a DevOps mindset, and an openness to agile IT practices. However, PaaS can also help clearly delineate the responsibilities of Operations/IT and Development: IT operates the PaaS, Dev consumes the services. In addition, the system should encourage and promote communication between these groups by allowing for an online dialog around any applicationbased event, such as allocating more resources, application restarts, or scaling events. 2 PaaS Requirements Checklist The table below outlines the functionality your PaaS needs to provide: Security: Keeping Your Apps Protected in the Cloud Leverage a multi-tenant architecture so each application resides in its own secure container to prevent security breach attempts against your application.»» Provide security updates quickly that can be easily applied. Security is a never-ending battle; your platform needs to be able to handle updates efficiently and effectively. Configure resource quotas easily at the user level. Stackato lets you limit individuals rights, memory, services and application quotas, and application URIs allotted Agility: Flexibility to Develop in Any Language and Deploy to Any Cloud Provide the variety of frameworks, runtimes and languages that your developers needed to do their job.»» Be infrastructure agnostic - who wants to be locked into a vendor? You should be able to work with a wide array of infrastructures and hypervisors. Allow you to easily deploy to any type of cloud: public and/or private. It shouldn t matter what type of cloud, you need the freedom to deploy to any environment. Reliable: Ensure Apps will be Up and Running Provide you with the ability to let you know when your application is failing. You need to be able to monitor your system and report the status of each node so you can anticipate any potential failures. Monitor applications to ensure that the requested number of instances are always running and automatically restart any that fail. Re-route automatically and instantly if hosts go down. Performance: Apps Continuously Meet End-User Demand Observe how your applications are performing. Real-time monitoring needs to be available so you can quickly see how well your applications are performing and respond accordingly. If you don t know what s happening to your apps, you won t be able to maintain a positive user experience.»» Scale your applications automatically. In addition to being able to monitor, your PaaS needs to be able to respond to demand by automatically scaling your application, delivering the performance your end users expect. Innovation: Empower Developers to Efficiently Start New Projects Provide functionality to create new projects quickly. With a system that automatically configures the application environment, developers can create and start contributing to an existing project right away. Reduce the time-consuming manual configuration during the application lifecycle so developers can prototype and test new and innovative ideas more frequently. Sign up for the FREE 20GB Stackato Cluster License: www.stackato.com/download
3 Simplicity of Setup In addition to solving the above business issues, your PaaS needs to be simple enough to set up and manage. Stackato is distributed as a VM image (in several formats) which can be used as a stem cell to create a large production PaaS cluster. VMs are cloned on the IaaS or hypervisor and configured with one or two commands each to take on specific roles in the PaaS cluster. Production clusters can be set up in a matter of hours by system administrators with no prior experience with Stackato. The process can be easily automated using tools such as Chef, Puppet, or CloudInit to decrease cluster setup even further. Minimize Impact on Workflow Adopting PaaS means adopting a new way of working, but the change should not introduce any unnecessary barriers to adoption. Stackato is the only private PaaS that has been designed to accommodate and anticipate the needs of the IT admin team that will ultimately be responsible for managing the system once it is up and running. For example, the Orgs and Spaces feature in Stackato allows administrators to give shared access to applications and services to entire development teams. Permissions and quotas for each is configurable through a web interface, along with most of the important system parameters. System log streams also make day-to-day tracking and monitoring of user applications and the system easy to integrate with existing log analysis tools. A Comprehensive Evaluation Ultimately, the choice of PaaS software will come down to which product delivers the best productivity gain for the total cost of implementation and ownership. To get an accurate picture of these values, some experimentation will be necessary. A proof of concept (POC) deployment is recommended to find the deficiencies and strengths of the PaaS software you are evaluating. The cost estimates should include not only the vendor s price for software licenses, but the costs incurred in setup and support of that software by the IT organization. Is it worth it for the IT or DevOps staff to spend time learning a new build system just to support the PaaS? Could that time be better spent actually deploying the PaaS and supporting the users? Likewise, the productivity gains can only be accurately measured when a baseline has been established to compare with the new system. Does the application delivery timeline shorten significantly as a result of implementing the PaaS? Does the software quality of internal development teams improve as a result? What features are external customers looking for? To answer all of these questions definitively, the software must be tested. Stackato offers the lowest barrier to entry for POC implementation on premises or in a cloud hosted environment, with setup of a small cluster taking only a few hours. These hours spent in hands-on usage will quickly show which solution has been properly engineered to solve the problems faced by developers, DevOps, and IT staff. Conclusion Companies are looking to PaaS in order to obtain a competitive edge in the market. By reducing the friction and delays that can plague the application life cycle, PaaS enables you to get your application to your customers faster by making your process run more efficiently. However, all Enterprise PaaS options on the market are not the same and you need to ensure that the PaaS you select provides your organization with the necessary security, agility, reliability, application performance and empowers developer innovation. ddddddddddd Enterprise PaaS Evaluation Guide
4 Use the Enterprise PaaS Feature Checklist below for your PaaS vendor evaluation Enterprise PaaS Feature Checklist Hypervisor Support VMWare Fusion / Player VirtualBox KVM vsphere IaaS/Cloud Support OpenStack CloudStack Eucalyptus Amazon EC2 HP Cloud Architecture/Security Cloud Foundry-based Multi-tenant Containers (Docker) AppArmor/SELinux Application Single Sign On (SSO) Optional External Authentication Scalability Application Autoscaling App Host (DEA) Autoscaling Integration with External HA Services Availability Zone Support Application Deployment Cloud Foundry V2 REST API CLI Client IDE Plugins (Eclipse, STS) Jenkins Plugin Customizable App Store Staging and Pre-running Hooks App Portability Rollback and Versioning SSH to Containers Stackato Your PaaS / Alternatives Sign up for the FREE 20GB Stackato Cluster License: www.stackato.com/download
5 Enterprise PaaS Feature Checklist Language Support Any (Heroku Buildpacks) PaaS Cluster Setup Stem-cell VMs Cluster Configuration CLI Cluster Configuration Web Console Placement Zones Administration/Monitoring Admin Web Console Application Monitoring Cluster Dashboard Router Statistics Admin Log Streams Application Log Streams Usage API for Billing Integration Databases/Services SQL Databases (PostgreSQL, MySQL) NoSQL Data Stores (MongoDB, Redis) Persistent File System Port Forwarding Service AMQP Service (RabbitMQ) Oracle DB connector Service Brokers Other WebSocket & SPDY Support 3rd Party Plug-ins/IDE Support Team Communication (Activity Stream) Stackato Your PaaS / Alternatives ActiveState empowers innovation from code to cloud smarter, safer, and faster. ActiveState s cutting edge solutions give developers and enterprises the power and flexibility to develop in Java, Ruby, Python, Perl, Node.js, PHP, Tcl, and more. Stackato is ActiveState s groundbreaking enterprise private Platform-as-a-Service (PaaS), and is the secure and proven way to develop and deploy apps to the cloud. ddddddddddd Sign up for the FREE 20GB Stackato Cluster: www.stackato.com/download ActiveState Software Inc. 1700-409 Granville Street Vancouver, BC V6C 1T2 stackato-sales@activestate.com Phone: 1.778.786.1100 Fax: 1.778.786.1133 NA Toll-free: 1.866.631.4581 Enterprise PaaS Evaluation Guide