00:00:02.419
Hello everyone, konichiwa! I'm super happy to be here and talk to you.
00:00:12.410
Since 2016, I've been involved with cloud-native technologies, and today I'm going to discuss how Ruby can survive in the cloud-native world.
00:00:21.119
Do you know what cloud-native means? Today, I'm going to explain how I believe Ruby can thrive in this new environment.
00:00:39.390
First, let me introduce myself. My name is Uchio Kondo, and I am a software engineer at GMO capable. I'm from Co corner. Here are a few of my projects, which are primarily written in Japanese. These are my open-source products, including a client for Ruby called Haconiwa.
00:01:11.970
I have been involved with container orchestration for several years now. In 2016, I released Haconiwa, a container runtime using mruby. My experience has taught me valuable lessons about the usability of Ruby in container technologies.
00:01:23.130
As the organizer of the Cocoa Regional group, I have had the chance to explore cloud-native technologies in depth. Regarding frameworks, my main tool has been the Ruby-based library for orchestration.
00:01:53.909
Let's start by discussing what cloud-native is. Cloud-native refers to an approach used to build and run applications that take full advantage of the cloud computing model.
00:02:10.550
The Cloud Native Computing Foundation (CNCF) promotes the cloud-native movement, describing cloud-native applications as dynamic and orchestrated microservices. This means they can automatically adjust and scale according to load.
00:02:26.220
Emerging technologies, such as container orchestration and microservices, are becoming vital for developers and operators. My question is: why are these technologies gaining more attention now?
00:02:48.770
I would like to answer these questions based on my experiences and insights into the past few years regarding containerization and orchestration.
00:03:17.180
Now I will share what I have worked on over the last few years to address issues related to containers and orchestration. Let’s start with how I decided to create my own container language.
00:03:45.270
In my role at my company, we needed a system that could scale efficiently. We began using containers, but we faced significant challenges with configuration and management.
00:04:16.470
For instance, managing container configuration was challenging. I created a configuration system that utilized a Ruby-based stack, allowing the containers to dynamically adjust their resource allocations.
00:05:06.060
These adaptations presented obstacles, such as requiring a restart for memory changes. To overcome many of these challenges, I aimed to create a container system that streamlined these operations.
00:06:09.720
The result was Haconiwa, which I released in 2016. Haconiwa allowed for flexible use cases and was built around the concept of ease of deployment.
00:06:22.590
The design of Haconiwa offered us a domain-specific language which simplified container setup. Using this, we could adjust parameters like namespaces and resource allocations dynamically.
00:07:01.210
Later, I released a hosting platform powered by these containers, using Haconiwa as a foundation. This experience confirmed for me the potential of Ruby in cloud-native environments.
00:07:20.110
Despite some initial skepticism from colleagues about the product’s utility compared to other container solutions, I maintained that Haconiwa was advantageous due to its customizability and the simplicity of adding features.
00:08:17.610
I received feedback that highlighted the distinct advantages of Haconiwa, including its compatibility with existing tools and the ease of extending functionalities.
00:08:57.840
Additionally, we developed capability hooks within the system, enhancing usability for specialized requirements.
00:09:34.130
This flexibility made Haconiwa an attractive choice for hosting environments, where features like resource management were crucial.
00:10:03.630
However, the architecture had its challenges; we encountered issues with resource allocation and adaptation as various features required careful integration and management.
00:10:50.860
One of the solutions we identified was utilizing the concept of ephemeral containers, designed to run only for the one-time requests and terminate afterward. This dynamic approach enhances agility.
00:11:44.220
Ephemeral containers also needed a state management system to track their status for seamless operation replacements.
00:12:01.870
For orchestration, we required a reusable system to manage multiple container lifecycles efficiently.
00:12:22.250
In this landscape, we developed system tools in Ruby and integrated these with existing orchestration frameworks.
00:12:37.710
For managing resources effectively and maintaining operational control, we implemented core API frameworks.
00:12:49.700
Throughout the development process for containers, we focused on ensuring our system was robust while remaining easily customizable.
00:13:03.240
We integrated Ruby capabilities into our orchestrators and centralized management approaches, allowing us to leverage existing knowledge effectively.
00:13:30.750
However, we found that existing orchestrators such as Kubernetes posed limitations regarding deep customization targeting resource allocation amongst containers.
00:14:08.590
Our goal was to build a tailored orchestration layer that allowed for extensive control, which we achieved through Ruby's flexibility.
00:14:33.060
As we pushed forward into developing this new orchestration layer, we incorporated several Ruby and container technologies to enhance scalability and efficiency.
00:15:06.830
Looking ahead, our team aims to create a fully integrated ecosystem for managing containers and orchestration, focusing on flexible resource scaling and efficient deployment.
00:15:57.690
While this concept is still in development, I envision a series of continuous operations that will redefine how we interact with cloud-native platforms.
00:16:29.580
In conclusion, I believe that with the right frameworks and tools, Ruby can thrive in the cloud-native environment, enabling developers to create efficient and powerful solutions.
00:17:13.260
Thank you for your time. I look forward to collaborating more as we explore cloud-native technologies that elevate development and operational efficiencies.