Focus on business logic
in serverless environment

Maximize development efficiency with CI / CD standard schema-driven Scaffold
Achieve global scale with lower management costs

Ruby Serverless Framework "SOULs"

SOULs is a cloud-era Ruby serverless framework that delivers robustness, flexible scaling, and fault tolerance while maintaining development speed to meet business demands.

The SOULs project was launched with the goal of reducing software development, operation and maintenance costs. This project has been certified as Advanced Research and Development (WBSO) by the Dutch Government.

Fast development experience

We focused on increasing safety and changeability while maintaining the fast development experience of Ruby on Rails, and reducing the worry of server management. This is to respond to businesses that are changing at an ever-increasing rate.

We can't forget the excitement of getting Ruby on Rails. We wanted to achieve a similar development experience in a cloud-native environment, so we adopted Active Record and rebuilt the schema-driven Scaffold for distributed systems.

From the type definition file to the test file, all the necessary files are generated based on the Model, and the routing is done automatically, so you can concentrate on the business logic without troublesome repetitive work.

Safe operational experience

The test gives immediate feedback so that changes can quickly detect any negative impact on other parts of the system. Write unit tests with RSpec and perform independent verification for each code to prevent bugs from entering.

From Ruby 3.0, static type checking by RBS is possible. Combined with Steep's IDE support, you'll be able to find bugs as you code, increase your ability to respond to the moment you create a bug, and prevent bugs from getting into your codebase. Providing a type-safe development environment reduces unnecessary mistakes, makes building large-scale applications more secure, and keeps teams agile.

Using RuboCop for Linter and Formatter unifies the coding style within the team and brings order and transparency to the code base. We will try to match the development intentions and reduce the burden of operation and maintenance.

Reliable maintenance experience

Minimize code integration issues by using GitHub Actions to auto-deploy small with each commit.

If the test fails, you won't bring the error into production, so you can check the results and make calm corrections.

Also, even if you have a distributed system, you can manage the logs in one place, so you can quickly identify the problem you are having.

News

Thank you for watching

RubyWorld Conference 2021


Session - 6:Ruby Serverless Application Framework “SOULs”

Thursday, December 16, 2021 15:20 - 15:50

RubyWorld Conference is the largest business conference in Japan for the programming language Ruby.

Program detail page

Technologies that support SOULs

Active Record and Scaffold

We can't forget the excitement of getting Ruby on Rails. We wanted to achieve a similar development experience in a cloud-native environment, so we adopted Active Record and rebuilt the schema-driven Scaffold for distributed systems.

RBS type checking

Ruby v3, which is three times faster than before, will shine even more in the cloud. Providing a type-safe development environment with RBS reduces unnecessary mistakes, makes the construction of large-scale applications safer, and keeps the team agility high.

RuboCop Linter/Formatter

Historically, we've been plagued by esoteric code that looks like a lithograph. Unifying coding styles brings order and transparency to the code base. Simple and easy-to-read code is easy to manage.

Testing with RSpec

The test gives immediate feedback so that changes can be quickly detected if they adversely affect other parts of the system. Independent verification is performed for each code to prevent bugs from entering.

GitHub Actions (CI/CD)

Minimize code integration issues by auto-deploying small each commit. If the test fails, the error will not be brought into production, so you can check the results and make calm corrections.

GraphQL API

Designed to improve speed, flexibility, and ease of use for developers, it also provides an integrated development environment (IDE) that allows you to see what's going on. Requests from multiple data sources can be configured with a single API call.

Supports fixed IP restrictions

In a distributed system that scales to multiple instances and processes requests, it has been difficult to meet fixed IP restrictions. SOULs solves this problem by using Cloud NAT.

Effortless Routing

The task of routing is simple but widespread and prone to error. SOULs automates routing-related work as much as possible, including GraphQL Query and Mutation, as well as Pub / Sub worker topics.

Docker container

By coding the infrastructure and sharing files, you can create the same environment anywhere. You can continue development on a reproducible infrastructure without being bothered by environmental differences.

SOULs Serverless Architecture

SOULs is a serverless architecture that runs on GCP (Google Cloud Platform). By separating apps by Docker File unit instead of FaaS (Function as a Service), familiar management is possible and troublesome problems when considering practical application such as cold start are solved.

Cloud Run

Cloud Run automatically scales from scratch almost instantly in response to traffic, eliminating the need for any infrastructure management. Also, you will only be charged for the exact amount of resources you use. Cloud Run makes application development and deployment simpler and faster.

Cloud SQL

Cloud SQL automatically ensures the reliability, security, and scalability of your database so you can keep your business running uninterrupted. Cloud SQL maintains over 99.95% availability anywhere in the world while automatically backing up, replicating, encrypting, patching, and increasing capacity.

Cloud Pub/Sub

Synchronized interzone message replication and per-message inbound tracking enable reliable delivery at all scales. Partitionless autoscaling and autoprovisioning eliminates planning and enables production-ready workloads.

Cloud Storage

Object storage for businesses of all sizes. There is no limit to the amount of data that can be saved. You can retrieve the data as many times as you want. By storing your data in different storage classes, you can save money without sacrificing performance.

Cloud NAT

Cloud NAT gives you controlled and efficient access to the Internet for updates, patching, configuration management, and more. External resources cannot directly access your private instance beyond your Cloud NAT gateway, so you can isolate and protect your VPC.

Cloud Scheduler

Cloud Scheduler is an enterprise-class, fully managed cron job scheduler. You can schedule almost any job. It automates all tasks such as retrying in the event of a failure, reducing manual and human intervention and centrally managing all automated tasks.

Firebase Authentication

It aims to facilitate the construction of secure authentication systems and improve the end user login and initial registration experience. It supports email address and password combinations, phone verification, Google, Twitter, Facebook, GitHub login, and more.

Container Registry

Centrally manage Docker images and analyze vulnerabilities. Fine-grained access control also allows you to decide which users are allowed access to what. Get quick feedback by setting up a fully automated Docker pipeline.

GitHub Actions

GitHub Actions makes it easy to automate all your software workflows with world-class CI / CD. You can build, test, and deploy your code directly from GitHub. SOULs uses it in combination with the Container Registry.

Virtual Private Cloud (VPC)

A single VPC allows you to communicate across multiple regions without going through the public Internet. On-premises allows you to share the connection between your VPC and your on-premises resources with all the regions in a VPC.

IAM

Identity and Access Management (IAM) allows only authorized users to perform actions on specific resources. This helps you centralize, visualize, and manage your Google Cloud resources.

Cloud Logging

Real-time log management and analysis on an enterprise scale. Supported across Google Cloud services, you can set alerts and quickly troubleshoot infrastructure and application-wide issues.

Partner

Get $ 200 free credit 🎉

Whether you're new to GCP (Google Cloud Platform) or already using Google Cloud, you can get $ 200 in free credit from the link below.

Receive free credits 💰

SOULs is frameworks born from the development field

Designed to get your business up and running quickly and keep improving