SmartSupport Architecture

Safeharbor is built on cutting edge technology that emphasizes convention over configuration. At its core, the application is streamlined for easy integration into any web-based environment and smooth continuous platform improvement, from updates to custom modifications. The application is written in Ruby on Rails and hosted on Heroku, which as a programming framework and a Cloud platform, accordingly, are considered to be at the forefront of modern web-application development. Ruby on Rails is renowned for its intelligent design that emphasizes simplicity and speed while Heroku is considered the leader in deploying, hosting, and scaling Ruby on Rails applications. The document is intended to provide more information about the architecture of the SmartSupport™ Application and its component parts – Ruby on Rails and Heroku.

The Foundation:

The foundation of SmartSupport™ is its advanced, multi-tenant cloud platform which is one of the world’s first SaaS enterprise-grade knowledge base and community application that is built as a unified solution. The all-in-one, plug-and-play application allows companies to provide their customers and employees full flexibility in accessing, interacting with and updating support content information. Compared with its software counterparts, that require roundthe-clock maintenance coupled with a hefty price tag, SmartSupport™ is easy to understand and easy to use. There are no expensive data centers, no software, and no complex upgrades – just powerful knowledge management that is all managed for you.

Programming Network

What makes the powerful cloud-based foundation possible is Ruby on Rails – a programming framework that delivers incomparable scalability, control and mobility. There are many advantages to using Ruby on Rails. From a technical aspect, unlike other productive web scripting languages, Ruby is a fully featured object-oriented language. Its dynamic nature gives it power beyond static languages such as .NET and Java, and the benefits are apparent by how the Rails framework has been put together itself. For development productivity, the shorter the gap between the change and test cycle the better. In Rails, changes are reflected immediately within the runtime environment so developers can quickly iterate between fix and test cycles without any expensive redeploys. Ruby code is also easily testable. Methods and objects can be replaced at runtime so software components can easily be tested without resorting to external tools or generators. This means that as your business grows, SmartSupport™ seamlessly grows with you.

Cloud Platform:

The cloud platform that gives SmartSupport™ its dynamic flexibility is Heroku – one of the most trusted hosting platforms which is used by many Fortune 500 companies. The Heroku Platform offers a number of advantages. Heroku allows you to manage your knowledge as a process, not a snapshot in time; you can continually create, review, deliver, analyze, and improve your content. Since it’s delivered by the Cloud, your knowledge is available wherever your customers and employees need it. Your agents have the right answers at their fingertips to communicate over the phone, send out through an email, or share via forums and chat. The same knowledge base is available on your website, whether it’s a secure portal or part of your public site. If you want to take advantage of social channels like Twitter or Facebook, you can easily share knowledge while you tap into the wisdom of the crowd to capture new ideas or answers. The entire process is done securely and you can always control exactly who sees what information, and how.

SmartSupport™ Tools

Ruby on Rails:

Ruby on Rails was created by David Heinemeier who shared commit right to the platform (released the full public version) in February 2005. The framework first achieved public recognition in August 2006 when Apple announced that it would ship Ruby on Rails with Mac OS X v10.5 “Leopard”, which was released in October 2007. This milestone achievement was met with an avalanche of developers who recognized the advantage of the cutting edge and lightweight framework, ushering in tens of thousands of companies like Hulu, Yellow Pages, and Lighthouse.

Heroku

Heroku is a Platform as a Service (PaaS) for Ruby on Rails Cloud applications. Essentially, Heroku takes over the maintenance duties such as managing servers, deployment, ongoing operations, and scaling, allowing the development teamto dedicate all of their time to writing and improving the actual application. Heroku was recently purchased by SalesForce, a Fortune 100 company, further expanding its services and security.

PostgreSQL

PostgreSQL is a powerful, open source objectrelational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems. An enterprise class database, PostgreSQL boasts sophisticated features such as Multi-Version Concurrency Control (MVCC), point in time recovery, tablespaces, asynchronous replication, nested transactions (savepoints), online/hot backups, a sophisticated query planner/optimizer, and write ahead logging for fault tolerance. It supports international character sets, multibyte character encodings, Unicode, and it is locale-aware for sorting, case-sensitivity, and formatting. PostgreSQL is highly scalable both in the sheer quantity of data it can manage and in the number of concurrent users it can accommodate.

Architectural Terminology

Port scans are notified as violations. These violations are taken seriously, and every reported violation is investigated. When port scanning is detected, it is stopped and blocked. Port scans of the system are generally ineffective because, by default, all unused ports are closed.

Dyno:A dyno is a single process of any type running on the Heroku platform. This can include web processes (such as a Mongrel or Thin process), worker processes (such as a Delayed Job or Resque worker), and any process types declared in the application.

Process Management: Each dyno process is monitored for responsiveness. Misbehaving dynos are taken down and new dynos are launched in their place.

Distribution and Redundancy: Dynos are distributed across a distributed execution environment known as the dyno manifold. An application configured with two web dynos, for example would be running two processes, however, each process is running in a separate physical location. If a machine goes down, your site stays up – even with only two dynos.

Multi-Tenant platform and Hosting Environment: The application does not require its own servers, slices, or clusters. As a result, you benefit from continuous platform improvements.

Continual deployments: The dyno manifold insures all parts of the application are updated and bounced gracefully which allows for smooth routing and enables traffic manipulation for data migrations when necessary. They create testing, staging, and production versions of the application and allow developer to transition between them seamlessly.

Scaling: Allows for full control, instant spin-up, infinite capacity and independent scaling for each component of the application.

Routing: Incoming web traffic is automatically routed to web dynos that are equipped with intelligent distribution
allowing the application to load instantly as it’s scaled. Rich APIs allow fine-grained control of DNS, domains, SSL, maintenance, and error handling.

HTTP Reverse Proxy: Point of entry for all requests coming into the platform.

HTTP Cache: All requests, big or small, flow through the HTTP cache. If the requested content is available in the cache, the cache responds immediately and the request never reaches the dynamic application.

Routing Mesh: The routing mesh balances requests across your app’s dynos, tracking load and intelligently routing traffic to available resources. This make the application scalable and fault tolerant, as it can rout traffic around misbehaving or overloaded servers, as well as issue request for new ones.

Elasticity: The number of dynos allocated to the application can be increased or decreased at any time.

About Safeharbor