Difference between revisions of "Main Page"
From Ocean Framework Documentation Wiki
(→Your workstation) |
(→Your workstation) |
||
(21 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
* '''A fast, powerful Ruby on Rails programming framework and microservice architecture''' 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: all you need to create your scalable application. Yet Ocean is a thin layer which never gets in your way. You can just get on with the task at hand. | * '''A fast, powerful Ruby on Rails programming framework and microservice architecture''' 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: all you need to create your scalable application. Yet Ocean is a thin layer which never gets in your way. You can just get on with the task at hand. | ||
* '''Complete development pipelines''' in the cloud, implementing continuous integration and continuous delivery for each service. | * '''Complete development pipelines''' in the cloud, implementing continuous integration and continuous delivery for each service. | ||
− | * '''A modern, extremely scalable, highly available, resilient, highly secure and autoscaling architecture''' following best practices for the cloud | + | * '''A modern, extremely scalable, highly available, resilient, highly secure and autoscaling architecture''' following best practices for the cloud. |
− | Ocean can be set up on AWS in half an hour and is equally suitable for small startups using Ruby on Rails as for large enterprise-level systems | + | Ocean can be set up on AWS in half an hour and is equally suitable for small startups using Ruby on Rails as for large enterprise-level systems. |
== Features at a Glance == | == Features at a Glance == | ||
Line 41: | Line 41: | ||
* Semaphores and automatic operator email notification | * Semaphores and automatic operator email notification | ||
* Guppies of Disarray (our take on Chaos Monkeys) | * Guppies of Disarray (our take on Chaos Monkeys) | ||
− | * Web based Admin Client | + | * Web based Admin Client |
* Ocean Tool – a 3D client for Ocean | * Ocean Tool – a 3D client for Ocean | ||
* Easy set-up | * Easy set-up | ||
Line 49: | Line 49: | ||
== Ocean == | == Ocean == | ||
− | + | === Architecture === | |
− | :[[Overview]] • [[Distributed Architectures]] • [[The Pipeline]] ([[The | + | :[[Overview]] • [[Distributed Architectures]] • [[The Pipeline]] ([[The Dev Environment|Dev]], [[The Continuous Integration Environment| CI]], [[The Staging Environments|QA]], [[The Production Environment| Prod]]) • [[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]] | :[[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 - Authentication and Authorisation|Auth]] – [[Service]], [[Resource]], [[Right]], [[Role]], [[Group]], [[ApiUser]], [[Authentication]] | :[[Auth - Authentication and Authorisation|Auth]] – [[Service]], [[Resource]], [[Right]], [[Role]], [[Group]], [[ApiUser]], [[Authentication]] | ||
− | :[[Cloud - AWS Metrics and Cloud Management|Cloud]] – [[Instance | + | :[[Cloud - AWS Metrics and Cloud Management|Cloud]] – [[Instance]], [[DynamoTable]], [[LoadBalancer]] |
:[[CMS - Content Management System|CMS]] – [[Text]], [[Medium]] | :[[CMS - Content Management System|CMS]] – [[Text]], [[Medium]] | ||
:[[Jobs]] – [[AsyncJob]], [[CronJob]], [[ScheduledJob]] | :[[Jobs]] – [[AsyncJob]], [[CronJob]], [[ScheduledJob]] | ||
Line 69: | Line 69: | ||
=== AWS === | === AWS === | ||
+ | The installation procedure is currently being converted to CloudFormation. Check back in a few weeks. | ||
* [[Installation on AWS]] | * [[Installation on AWS]] | ||
=== Your workstation === | === Your workstation === | ||
+ | The OS X installation procedure is currently being converted to use Docker containers, rbenv, etc. Check back in a few weeks and you'll be able to install, develop and run Ocean locally using docker-compose. | ||
* [[Dev environment on OS X]] | * [[Dev environment on OS X]] | ||
* [[Amazon Command Line Interface tools setup on OS X]] | * [[Amazon Command Line Interface tools setup on OS X]] | ||
* [[Cloning the Ocean Repos]] | * [[Cloning the Ocean Repos]] | ||
− | |||
− | |||
== Operation == | == Operation == | ||
Line 83: | Line 83: | ||
== Programming == | == Programming == | ||
− | |||
− | |||
− | + | ;[[Tutorial]] | |
+ | : How to create your own microservice to manage Notes and their Comments, test it and deploy it. | ||
− | + | ;Specifics (work in progress) | |
− | + | :[[Creating a Service]] • [[Creating an SQL based Resource]] • [[Creating a DynamoDB based Resource]] • [[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]] | |
− |
Revision as of 08:37, 13 June 2018
Ocean is a synergy of three things:
- A fast, powerful Ruby on Rails programming framework and microservice architecture 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: all you need to create your scalable application. Yet Ocean is a thin layer which never gets in your way. You can just get on with the task at hand.
- Complete development pipelines in the cloud, implementing continuous integration and continuous delivery for each service.
- A modern, extremely scalable, highly available, resilient, highly secure and autoscaling architecture following best practices for the cloud.
Ocean can be set up on AWS in half an hour and is equally suitable for small startups using Ruby on Rails as for large enterprise-level systems.
Features at a Glance
|
|
Ocean
Architecture
- Overview • Distributed Architectures • The Pipeline (Dev, CI, QA, Prod) • 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, DynamoTable, LoadBalancer
- CMS – Text, Medium
- Jobs – AsyncJob, CronJob, ScheduledJob
- Log – LogExcerpt
- Mail – Mail
- Rollout – App
Installation
AWS
The installation procedure is currently being converted to CloudFormation. Check back in a few weeks.
Your workstation
The OS X installation procedure is currently being converted to use Docker containers, rbenv, etc. Check back in a few weeks and you'll be able to install, develop and run Ocean locally using docker-compose.
Operation
• Rails ENV Variables • Core Client Applications • The Ocean Tool
Programming
- Tutorial
- How to create your own microservice to manage Notes and their Comments, test it and deploy it.
- Specifics (work in progress)
- Creating a Service • Creating an SQL based Resource • Creating a DynamoDB based Resource • 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