- Our Platform
- About Us
The ePublishing Platform
The ePublishing Software as a Service platform, including our Web Content Management System, is a powerful combination of superior open source technologies. This application "stack" offers the best results for low cost, high reliability and rapid deployment speed. Every aspect, from its application architecture to its hosting infrastructure, has been engineered specifically for high-volume, mission-critical business and eCommerce web sites.
The EPS platform is an application framework with the content management, data capabilities, subscriber access, e-commerce storefront and any custom development leveraging the framework.
Built to Integrate
The inherent openness and flexibility of our architecture allows faster, more reliable integrations with third party systems. It was architected specifically for unique integration challenges – where a site relies not only on the content, solutions and technology from your own systems, but must also work seamlessly with third party applications, vendors and support technology.
Cloud: reliable, secure, cost-effective
Our cloud-based infrastructure offers many advantages to support multiple clients. We focus on data security every day, and are reviewed annually for data security procedures, PCI compliance, and other standards.
Software certifications and audits can be cost prohibitive for one website, but are included as part of a Cloud/SaaS software and systems support service.
Cost Savings: No hardware or software to purchase – you never have to buy servers or install software, but you still have Scalability, on demand.
The ePublishing Architecture
At its core, the ePublishing platform takes advantage of Rails’ “engine” approach where our application is mounted within a specific site. The site then naturally inherits all the functionality provided by the application, including a default set of templates and styles for all pages.
The ePublishing application is a Ruby Gem and as such can be installed on a site simply by using Bundler. The Gem is continually updated to maintain compatibility with the latest stable release versions of Rails and Ruby.
By implementing the application as a gem, sites can simply have their ePublishing gem version upgraded and the site redeployed in order to take advantage of all new features and functionality introduced. This is the true power of the Software as a Service model and allows upgrades and deployments to scale, whether we are upgrading 1 or 1000 sites.
We use CentOS Linux for our Operating System. CentOS provides the same security patch and upgrade approach as that of RedHat but without the enterprise licensing costs. We then run Xen Virtualization on top of the physical servers to create virtual servers running the sites and applications. Virtualization allows ePublishing to add new virtual servers or increase the resources for those virtual servers quickly and in response to increased traffic and resource demand.
On Demand Resources
If your sites need more horsepower, ePublishing delivers.
We deploy Xen Virtualization on top of numerous load-balanced physical servers to create multiple virtual servers running the sites and applications across redundant hardware, power, network gear and racks. This allows ePublishing to add new virtual servers or increase the resources for your sites quickly and in response to increased traffic and resource demand.
Each ePublishing deployment gets a totally unique look and feel.
In order to make this cost effective, a default set of templates is provided by the core application when it is mounted within a site. Then to deliver the unique look and feel for each site, our application loads site-specific templates that partially or fully overwrite the default.
The ePublishing application can then be upgraded, as new features are available without fear of breaking those templates. New features inherit your specific sites’ look and feel but can be easily customized if desired, during or after the upgrade process.
All core business rules within ePublishing are encapsulated by a set of libraries within the application. Like templates, these libraries can be extended or overwritten to accommodate the specific needs of a given site.
For example, site administrators are able to offer articles that are free, require registration, require individual purchase, or require a subscription out of the box. However, if a site has a more complex content gating model, it can be implemented easily without jeopardizing the future upgrades available.
Multiple layers of caching and asset handling are implemented within ePublishing, all with the specific goal of fast, reliable content delivery and functionality, and to enhance user experience and audience engagement.
Template caching has been implemented throughout the default set of templates. We intelligently cache various areas of a given piece of content. For an html page, that may mean we are caching the “Breaking News” area of the page with a shorter expiration than the latest image gallery area in order to ensure fresh content is seen as soon as possible.
Memcached is used as the object cache for the core application. As dynamic data is constructed by the application, that data is stored in memcached so that it does not have to be reconstructed for the next request. An array of article objects can be seen as an example. That array can be stored and accessed directly for subsequent requests for that content.
Query caching further optimizes requests by storing the results of frequently issued queries’ results against the database. All code written to interact with the database is stringently reviewed to ensure the resulting queries can be cached effectively.
ePublishing has been integrated with multiple third party systems, to handle transactions and data transfers in both real-time and in batch processes.
The application contains a built-in scheduler to perform tasks at specified intervals. For example, a file containing new orders may be transferred to a fulfillment company on a nightly basis. Simply inserting the new library into the scheduler creates tasks. Tasks can be told to run in a single-server environment or across all servers in a particular cluster. ePublishing contains many built-in tasks, and we can add completely custom tasks to provide specific functionality required by a site.
In order accommodate real-time integrations, we create “hooks” at various transaction points in the application. Hooks are places where custom code can be executed during the transaction to provide unique functionality needed by the site. For example, a library may be written to send orders as they are completed in real-time to the same fulfillment company. That library is simply deployed for that site and called upon following the successful completion of an order.
We maintain separate environments for development, staging, and production for each site. A central deployment script using Capistrano allows us to update and deploy site in those environments within minutes. We use Nginx and Unicorn for “zero downtime deployments” in those environments. As a result, your site remains up and serving traffic at all times, even during scheduled production maintenance windows for upgrades.
ePublishing utilizes a central source code management system using Git for source control and Jenkins for continuous builds. As updates are made to branches of our application, Jenkins will automatically build a new gem for use in the applications.
In addition, Jenkins will run all Rspec unit and integration tests to ensure no regressions have been introduced. Finally, Jenkins will not build a new gem unless 100% code coverage has been achieved through our unit and integration tests. The environment ensures the success and reliability of all code updates and prevents issues from being introduced into sites.
ePublishing enlists multiple monitoring systems to ensure that we catch any anomalies and exceptions and give them immediate attention.
Nagios– both inside and outside of our network – is used to perform a battery of health checks on a recurring basis. Individual sites and the individual systems that power them are all monitored. CPU load, memory and disk utilization, network performance, and other key metrics are continually analyzed. Any issues are reported directly to our help desk, which our staff monitors 24 x 7.
Airbrakeis a third party service provider that collects all exceptions generated by a site, both in the staging and production environments. Airbrake also funnels Alerts directly to our helpdesk for immediate attention and resolution.
New Relicgives valuable insight down to the process and code level for how our sites and applications are performing. Senior engineers monitor New Relic reports to ensure performance and identify trends requiring further inspection.
The ePublishing Cloud: Hosting & Infrastructure
We tune the ePublishing infrastructure, like our architecture, specifically to provide multiple content types into any delivery channel.
The typical website needs more than just “large pipes.” The challenge of supporting multiple integration points, workflow, high content throughput and numerous partners requires a data center design that is not only high-bandwidth, but low-latency and high-availability.
ePublishing's systems and processes are audited annually by a third-party to ensure the highest level of service and compliance.
ePublishing uses separate gigabit uplinks to our providers. Our bandwidth is a blend of five (5) different long-haul fiber carriers enabling much lower-latency and fewer hops to destination. The wealth of available bandwidth allows ePublishing to easily service large spikes in traffic as well as accommodate features that demand large amounts of bandwidth. This approach also dramatically improves availability and page draw speed.
After the dual-bonded high-availability routers, we run multiple pairs of firewalls in HA. The entire head end of the network is crafted to allow the preservation of session stickiness even if the route changes or if it has to fail over. This is vital to the customer experience especially for any transaction-based activity.
ePublishing offers the most robust, secure, and fastest hosting solution available, built over years of experience in managing high-load, high-availability, enterprise web applications.
Equinix, our independent carrier-neutral facility, is located in Ashburn, VA. Multi-path fiber-optic links and onsite diesel generators with battery backup are integrated into each datacenter building.
Using multiple clustered servers in redundant failover configuration within those data centers provides a backup server for each system in place. If an action fails or causes an error on a server, the problem is instantly recognized and is brought offline, while another comes online in its place.
ePublishing's state-of-the art hosting system provides a highly reliable environment that easily grows both in number of sites and volume of traffic, yet remains cost-effective.
Backup & Disaster Recovery
Multiple Continuous Data Protection (CDP) nodes from R1Soft are used for backup and recovery of all data and systems. CDP allows for restoration down to the table level for data or down to the block level for files. Backups are performed nightly to ensure data availability.
Our internal network is a fully load-balanced, redundant environment focused on high availability. The network is clustered at every level: load-balancers, switches, NetApp Fileservers, cache, application, SMTP and database servers.
This approach drastically improves availability and speed – while also maximizing stability and reliability as our applications are tuned for the environment. The net result is that ePublishing can scale by simply adding more servers into any of the clusters or load-balanced pools.
ePublishing uses a dedicated back-end network for administration, leaving the front-end network fully available for customer traffic and ensuring that sensitive data stays on the closed back-end network. The separation of environments ensures your web site achieves maximum efficiency for delivering your content and products to your customers.