Starter Ignite Benefits

Detailed info on the benefits of using Starter Ignite

Starter Ignite Platform is specifically built with the following priorities in mind:

  1. Code portability
    The server platform is built on Starter’s Ignite platform which is simply a thoroughly tested, standard set of Enterprise grade technologies 100 percent written in Java and using Enterprise Java (JEE) which means that the code for the server can run on every modern server including Windows, Linux, Mac OS X, and even embedded systemsPractically speaking this means if for any reason you decide to move the server to another host or cloud provider or another cluster of servers this will be easily achieved at minimal cost.Currently the platform runs without modification on Starter development systems (Mac OS X), staging servers running Linux on Terminal.com, and production instances on Amazon’s Linux instances running in the AWS cloud.

    Starter Inc. also provides a working virtual machine running on Terminal.com as well as a self-contained Web Application Archive (WAR file) deployable to any Tomcat 7.x JEE server instance.

  2. Stack portability
    The platform in general terms consists of a number of components, the server code mentioned in item 1. is the “engine” that ties all of the parts together and provides the glue aka business logic and running service endpoint (aka http://exmple.com/1.0/system/-1/version) that the mobile and web applications connect to for providing data, file, login, security, messaging and other services.The other parts of the platform include one or more SQL database servers which store the data records for the system including user information (user names, addresses, etc.) site data, courseware data, and any information that should belong in a structured, record-based, query-able system.  We typically use MySQL as the database of choice for its ubiquity, low cost, open source, and highly fast scalable and functional capabilities.  MySQL is a free, open source database application owned and supported by Oracle Corp.  We use MySQL instances that run on the Amazon AWS cloud using the “RDS” service which provides great bonus features like automatic backups, redundancy, and failover/replication to remote data centers.System data also consists of files, such as photo and video uploads, or documents, which are not suitable for SQL database storage. These files are stored in a cloud file storage system called S3 which is an Amazon AWS web service and is considered the “gold standard” for application cloud file storage.

    Because the Java app, Tomcat app server, and MySQL database run on any modern server (Linux, Unix, Mac OS X, Windows) there is no operating system platform lockin and future instances of the app can be run in a variety of heterogenous server environments.

  3. Code extensibility
    Based upon scalable, MVC architecture, the platform is easily extended in a variety of ways.The core Java code is readily enhanced through object oriented code techniques.  The Java code consists of objects (i.e.: User, Location, Calendar) that are exposed to the REST api directly using Apache Jersey
    https://jersey.java.netThe server code has access to any other publicly accessible REST apis and endpoints (for example Facebook, Twitter, Google Maps, WordPress sites, Ushahidi, and 3rd party data sources.)

    Using these services to exchange data from the server with REST api calls means data and functionality can be seamlessly integrated into the functionality of the platform, thus extending the capabilities only limited by the specifics of the 3rd party implementations (rate limits, service costs, security caveats etc.)

  4. Code maintainability
    Using open source Java code libraries as much as possible, and providing GIT access to well documented source code along with documents such as this one which fully detail the workings of the platform are a guarantee that future teams and contributors will be readily able to immediately understand and begin work on the code.Starter is committed to open source, to clean coding standards and thorough documentation.  Because of this there is a built-in guarantee that future development will be as efficient and effective as possible with no vendor or platform lock-in.
  5. Platform Security
    Starter uses industry standard 256-bit SSL “end-to-end” encryption which means the client apps (mobile and web front-ends) are only allowed to connect to the Ignite in a secure manner.  Non secure connections are disallowed and furthermore logged in an administrative alert as this represents a possible hacking attempt.End-to-End encryption means the client encryption to the app server is over SSL and then furthermore the app server connection to the database is over SSL, and the access from the app server and the client to files stored in S3 is also over SSL. Furthermore all 3rd party APIs are by policy to be connected only over SSL and with a separate set of login credentials, thus eliminating “man-in-the-middle” attacks of unencrypted data over the wire as well as limiting any possible damage should a 3rd party site be compromised out of our control there would be no way to intrude from a compromised 3rd party site into the Ignite system.The Starter Ignite service records each and every connection request so that it is impossible to connect to the app in any way without having a full timestamped recording of IP address and other details.

    Alerts are setup though the system monitoring server to watch for any suspicious connections and we have the ability to redirect, and block these connections based upon the details of the situation.

    The app itself runs on secure AWS linux instances that require a unique encrypted certificate to securely connect to (for admin purposes.)  There is no way to connect to these systems without encryption.

    In addition to automated system monitoring, and architectural end-to-end encryption, we also perform regular updates and software patches to instances and libraries and continuously monitor industry news for threats, hacks, and security compromises.

  6. Platform Scalability using AWS
    Enterprise Java is known for robust scalability and powers countless huge commercial sites such as Amazon and Ebay.Beyond choice of language and platform, as the AWS architecture provides Elastic Load Balancer — which we use extensively.Using ELB we setup an auto-scaling cluster of Tomcat instances behind a load balancing firewall.  As server load peaks, for example during a high-load event like a crisis or disaster — the ELB service will automatically launch new Tomcat instances to handle the demand.  Then when peak demand wanes, it gracefully shuts down service nodes in order to save on hosting costs.

    ELB allows for setting up server clusters in multiple Global data centers including Frankfurt Germany, Singapore, and the west and east coasts of the USA.

  7. Platform Reliability
    Depending upon where the client app is being run, Starter Ignite clients can be configured to pick the appropriate data center location for the least amount of latency and fastest app response times possible.Naturally these global data centers can be configured to replicate app data (RDS and S3) between each other, further increasing the reliability, scalability, and failover capability expontentially.