-
Notifications
You must be signed in to change notification settings - Fork 0
Home
At Fireworks Project, Platform.X is the name we've given to the conglomeration of components and services assembled to run our service oriented web application platform. Simply put, Platform.X is Fireworks Project Inc.
- Overview (below)
- Design Goals (below)
- Component List
Virtual Machine Types
The easiest way to think about Platform.X is to break it down into the two types of virtual machines used: 1) Webserver and 2) Swiss Army Knife (aka SAK server).
The user facing portions of Platform.X are running on a single virtual machine, hosted on Amazon EC2, which we simply call the Webserver. This is where web applications are actually served from.
For more, check out the Webserver wiki page. There is also a Git repository for Webserver configuration and setup scripts.
Background processes and other tasks that should not interfere with serving traffic to web applications are handled by the Swiss Army Knife Server (aka SAK Server). The SAK server is a utility VM hosted on the Rackspace platform which handles a lot of unrelated tasks; resulting in the name "Swiss Army Knife". Currently the main responsibility of the SAK server is hosting private Git repositories, although that expand soon.
For more, check out the SAK Server wiki page. There is also a Git repository for SAK Server configuration and setup scripts.
Platform.X is designed to be a generalized collection of
components providing all the required services for running most any kind of web
application. Platform.X is designed to provide web developers a scalable and extensible
environment which will enable them to differentiate their web
applications. In addition, Platform.X is designed to host many applications simultaneously
, which we refer to as cotenancy.
Extensibility is important. Not only being able to choose different services for their relative strengths and weaknesses (ie CouchDB vs MySQL), but allowing the extension of the basic application environment and protocols (ie text messaging through a third party service using an HTTP API), will allow developers to leverage the scalability of Platform.X, while still creating competitive differentiation.
Cotenancy is no longer a design goal, at least temporarily.
While extensibility is important, cotenancy is a conflicting goal. Platform.X
must create a safe sandbox that insulates applications from one another and
insulates the system from the applications, but allows for most of the freedoms
required by the extensibility goal at the same time.
The emergent goal of Platform.X is to provide an Application Workbench allowing applications to be composed and deployed using commonly understood business languages. Although it will be difficult, it is the long term goal of Platform.X to discover ways in which the full capabilities of the underlying system can be leveraged using non-technical interfaces.
See Martin Fowler's description of what he calls the Language Workbench.