Main Page

From Ocean & OceanFront documentation wiki
Jump to: navigation, search
An Ocean system as viewed from the Ocean Tool. video

Ocean is an Open Source framework for creating RESTful JSON Ruby on Rails web services and web applications in the Amazon AWS cloud, featuring aggressive caching and full HTTP client abstraction.

Ocean is also a development, staging and deployment pipeline for continuous integration and delivery in a TDD and/or BDD environment.

Using Ocean, an experienced admin can very quickly set up a cloud environment for a medium-sized or large enterprise to cover the entire production cycle of almost any type of API-based, highly scalable web application.

Why Ocean Came About

Why Ocean Came About – it's actually very simple.

Features at a Glance

  • Complete foundation on which to base any web or JSON API application
  • Micro service HTTPS architecture in the Amazon cloud
  • Extreme scalability
  • Built for high security, resilience and robustness
  • Aggressive, stringent caching model reduces costs and increases speed
  • HATEOAS hypertext conventions reduce coupling to a minimum
  • Chef: infrastructure as code
  • Ruby on Rails used the right way for massive scaling
  • Authentication is based on DynamoDB to handle any number of logins per minute
  • Atomic level authorisation (per HTTP method)
  • Asynchronous Job queues for high scalability and robustness
  • Aggregated high-speed real-time log for all services
  • Scalable email handling
  • Auto-scaling on load and/or weekly schedule
  • Complete, test-driven TDD iterative development pipeline
  • Continuous integration
  • Continuous delivery
  • Front-end matrix testing
  • Multi-variance testing and delivery
  • World-wide delivery of media through CloudFront
  • Multi-language text handling
  • Live metrics are part of the resources (instances, load balancers, etc)
  • Monitoring and automated handling of malfunctioning instances
  • Semaphores and automatic operator email notification
  • Guppies of Disarray (our take on Chaos Monkeys)
  • Web based Admin Client written in OceanFront
  • Ocean Tool – a 3D client for Ocean
  • Easy set-up
  • Open source


OverviewDistributed ArchitecturesThe Pipeline (Dev, CI, QA, Production) • HTTP CachingCaching in OceanTechnologies
API Structure and Conventions
General API ConsiderationsResource RepresentationsResource CollectionsAuthentication and AuthorisationRequests to ServicesResponses from ServicesPartial Table Access: app and contextExamples
Core Services
AuthService, Resource, Right, Role, Group, ApiUser, Authentication
CloudInstance, AutoScalingGroup, DynamoTable, LoadBalancer, Semaphore
CMSText, Medium
JobsAsyncJob, CronJob, ScheduledJob
Core ApiUsersCore RolesCore Groups
Running Ocean • Creating server instances • Tuning the Ocean system • The Ocean Tool
Programming Ocean

Creating a ServiceCreating an SQL based ResourceCreating a DynamoDB based ResourceRoutingModelsViewsControllersCalling Other ServicesAchieving High Scalability using AsyncJobsSetting up Ocean CronJobs and ScheduledJobsWorking with Groups, Roles, and RightsExtending the Aggressive CachingTutorial


OceanFront is a cross-platform Javascript front end browser HTTP client library supporting all major browsers and platforms. Together, Ocean and OceanFront allow you to write front end code completely independent of browser type and client OS, and back end code completely agnostic of whether it is called by a client browser or another server system. OceanFront is object oriented, widget-based and HTML-less.

Core Client Applications
The front end client applications included in Ocean.
Watir - Behaviour Testing
Tips and Tricks
Installing TeamCity Test Agents
Sharing of failed tests screenshots
Reference List
Code Structure
Building apps: How to?