Ocean is a synergy of three things:
- A fast, powerful Ruby on Rails programming framework where all the difficult problems already have been solved for you: authentication and authorisation, users, roles, groups, aggregated logging, aggressive caching, flooding protection, string translation, asynchronous job handling, and much more. Yet Ocean is a thin layer which never gets in your way. You can just get on with the task at hand.
- A complete development, testing, QA and production pipeline in the cloud, implementing continuous integration and continuous delivery.
- A modern, extremely scalable, highly available, resilient, highly secure and autoscaling architecture following best practices for the cloud, designed by a certified AWS Solutions Architect.
Ocean can be set up on AWS in an hour and is equally suitable for small startups using Ruby on Rails as for large enterprise-level systems. Start small and cheap and grow painlessly in an massively scalable architecture.
Features at a Glance
- Overview • Distributed Architectures • The Pipeline (Dev, CI, QA, Production) • HTTP Caching • Caching in Ocean • Technologies
- API Structure and Conventions
- General API Considerations • Resource Representations • Resource Collections • Authentication and Authorisation • Requests to Services • Responses from Services • Partial Table Access: app and context • Examples
- Core Services
- Auth – Service, Resource, Right, Role, Group, ApiUser, Authentication
- Cloud – Instance, AutoScalingGroup, DynamoTable, LoadBalancer, Semaphore
- CMS – Text, Medium
- Jobs – AsyncJob, CronJob, ScheduledJob
- Log – LogExcerpt
- Mail – Mail
- Rollout – App
- Rails ENV Variables • Instance Creation Commands • Executing commands in parallel on multiple Chef nodes • Elastic Scaling • Tuning • Monitoring and Measuring • Core Client Applications • The Ocean Tool
- Programming Ocean
- Creating a Service • Creating an SQL based Resource • Creating a DynamoDB based Resource • Adding a New Project to the chef-repo • Adding a New Project to TeamCity • Routing • Models • Views • Controllers • Calling Other Services • Achieving High Scalability using AsyncJobs • Setting up Ocean CronJobs and ScheduledJobs • Working with Groups, Roles, and Rights • Extending the Aggressive Caching • Tutorial