Skip to main content
Kinetic Community

Request CE - Preferred Architecture

Overview

This document outlines the preferred architecture for Kinetic Request CE. We use this architecture for our own internal instances.  Kinetic Request CE will run on other hardware and software.

Kinetic Data encourages the use of the latest stable releases for all software supporting our applications.  All versions referenced in this document are the latest stable release at the time of this writing.

Hardware

  • Web Application Server (Minimum 2)
    • CPU Cores - 4+
    • RAM - 8+GB
    • Storage - HDD or SSD - 500GB minimum
    • OS - Ubuntu 16.04 LTS
  • Cassandra Database Server (Minimum 3)
    • CPU Cores - 4+
    • RAM - 8+GB
    • Storage - Solid State Drive (SSD) - 1TB minimum
    • OS - Ubuntu 16.04 LTS

Software

Preferred Architecture Diagrams

FAQs

  1. Where can I go to learn more about the Cassandra Database?
    DataStax provides enterprise support for Cassandra as well as a number of free community resources including a full architectural write up here: https://docs.datastax.com/en/cassandra/3.x/pdf/cassandra3x.pdf
  2. What distributions and versions of Cassandra are compatible with Kinetic Request CE?
    You can run either the Apache Project distribution or any DataStax distribution.  We recommend version 3.11 or higher of Cassandra for Kinetic Request.

  3. Does Kinetic Data support Cassandra ?
    Kinetic Data includes hardware and software requirements for the database, an initial schema and will support getting the application running on the required infrastructure.  However, we do not provide ongoing support for Cassandra.

  4. Does Kinetic Data Support the OS and/or Application Server (Tomcat)?
    Kinetic Data includes hardware and software requirements for the OS and Application Servers in order to get the application running in your environment.  However, we do not provide ongoing support for the OS or Application Server.

  5. Do I need a three-node cluster for Cassandra?
    For production, yes; for development a single node can be used.  Why?  A two node cluster does not provide an adequate “majority” necessary for Cassandra’s distributed nature.  If development only uses a single node, it loses out on the opportunity to be recovered by simply adding a new node.  Additionally, performance has the potential to vary greatly when using a different number of nodes or datacenters, and using similar configurations has diagnostic advantages.

  6. Can I run Cassandra on Windows?
    Kinetic Data most heavily uses and tests with Linux and strongly recommends its use.  The Apache Cassandra project does not provide a Windows version, however the third party vendor DataStax does provide a Windows based installer.

  7. Can I deploy Kinetic Request CE, Kinetic Bridgehub, Kinetic Filehub, Kinetic Task, Kinetic Calendar, Kinetic Schedule, etc on the same server as Cassandra?  Same server as each other?  Same tomcat as each other?
    We install all of the components and database on a single server with a single Tomcat for our development environments.  However, for production the database should be split out into a three-node cluster (see earlier answer) and separate from the application server.  Often we also see customers install Kinetic Task on a different server and load-balance this separately depending on integration/automation load.  

    Also, some maintenance scenarios will required a Tomcat restart, so isolating these either by load balancing or separate Tomcat instances might be recommended (example: adding a new BridgeHub adapter). This can be mitigated in some situations using the Tomcat Manager to deploy/restart a specific app versus the whole Tomcat instance. 
    See preferred architecture diagram.

  8. How can I harden/secure my install of Cassandra?
    The Last Pickle (a well-known Cassandra consulting company) has a number of great posts on hardening your environment including:

    1. http://thelastpickle.com/blog/2015/09/30/hardening-cassandra-step-by-step-part-1-server-to-server.html

    2. http://www.slideshare.net/planetcassandra/the-last-pickle-hardening-apache-cassandra-for-compliance-or-paranoia

  9. Does Kinetic Request support database encryption at rest?
    The standard Apache distribution of Cassandra does not currently support encryption at rest.  The DataStax Enterprise distribution does.  There are also some third-party open source options available: http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/sec/secDSE.html

  10. Does Kinetic Request include support for Cassandra authentication and encryption in transit? 
    Starting in 1.0.4 Kinetic Request will support these options currently available via the Cassandra driver we use.  Prior to 1.0.4 we recommend protecting the database via network and port settings.

  11. What are my scaling options in the future?
    All of the Kinetic Request components listed above can be load balanced/scaled horizontally.  The Cassandra database uses a peer-to-peer architecture with no master/slave.  This provides less overhead for better scalability and throughput increases linearly with the number of nodes added. (http://www.slideshare.net/planetcassandra/201404-cluster-sizing).  Because both the application components and the database can be scaled horizontally, it is very easy to build an initial environment based upon current performance needs and still handle future performance needs without migrations or significant planning.

  12. Can I use Java 9 with Cassandra?
    Cassandra 3.11 is not supported with Java 9. You must use Java 8.

  13. Can I use Java 9 with Kinetic Request CE web application?
    Java 9 will be supported with version 2.1.0.  Previous versions require Java 8.

 

Questions/RFEs

Send emails to - support@kineticdata.com