Kintone Engineering Blog

Learn about Kintone's engineering efforts. Kintone is provided by Cybozu Inc., a Tokyo-based public company founded in 1997.

Why We Chose Connect-Query over GraphQL

By Nimrod Grinvald (@ngrinvald) If you're a frontend engineer, you've likely heard of GraphQL. It's a powerful tool for building APIs that can simplify frontend communication with the back-end. But when is it not the right choice? In this …

Let’s Reimagine Groupware Together

By Hirotaka Yamamoto (@ymmt2005) and Nimrod Grinvald (@ngrinvald) Step back in time with us to 1997. Two years from now, Marc Benioff will found Salesforce in a San Francisco apartment and declare “The End of Software.” Soon, his product w…

Five Things to Prepare for Cgroup v2 with Kubernetes

By Daichi Sakaue (@yokaze) Above all the effort of the community, Kubernetes is now ready to run with cgroup v2. We recently migrated our on-premises Kubernetes clusters to use cgroup v2 and discovered some key points to know. This blog po…

Introducing MOCO, a modern MySQL operator on Kubernetes

By Hirotaka Yamamoto (@ymmt2005) We are proud to announce a new MySQL operator named MOCO. MOCO manages MySQL clusters on Kubernetes that replicate data using GTID-based semi-synchronous replication. We will be migrating hundreds of MySQL …

Architecture for isomorphic API Client with TypeScript

By Toru Kobayashi (@koba04) This article will introduce how we've built @kintone/rest-api-client and its architecture.

Placemat: Powerful Data Center Virtualization Tool

By Yusuke Suzuki Placemat is our open-source software built to provide data center virtualization for CI automated testing along with technologies like QEMU/KVM virtual machines and Linux networking stacks. Setting up a CI environment for …

Multi-tenancy monitoring system for Kubernetes cluster using VictoriaMetrics and operators

By UMEZAWA Takeshi We are building a large data center system using Kubernetes for various development teams in the same company. To monitor the system activities, we used to rely on Prometheus and Grafana. Recently, we revamped our monito…

Tolerating failures in container image registries

By Akihiro Ikezoe, Hirotaka Yamamoto Have you ever experienced that your Kubernetes cluster cannot create new Pods because Docker Hub or other container registries are down? This article will show you several ways to ensure your Kubernetes…

Rebooting a LOT of Kubernetes nodes in a declarative way

By Daichi Sakaue (@yokaze) Hi, I'm Daichi, and I'm working on developing our on-premise data centers using Kubernetes (k8s). Have you ever spent a whole day rebooting all the machines in a Kubernetes cluster? Just checking the steps and ch…

Delegating CNI requests to a gRPC server for better tracing

By Hirotaka Yamamoto (@ymmt2005) Coil v2 is a Kubernetes network plugin that implements Container Networking Interface (CNI) 0.4.0. CNI defines plugins as executables. In Kubernetes, kubelet or container runtimes such as containerd directl…

Implementing highly-available NAT service on Kubernetes

By Hirotaka Yamamoto (@ymmt2005) In the previous article, we introduced Coil v2 and its opt-in egress NAT feature. The feature allows any Kubernetes Pods to initiate outgoing TCP/UDP communication with external networks. This article dives…

Introducing Coil v2, a Kubernetes network plugin to build Egress gateway

By Hirotaka Yamamoto (@ymmt2005) We are pleased to announce that Coil v2, the second major version of our CNI plugin for Kubernetes, is now generally available. Coil offers bare-metal network performance plus the following features: Multip…

Introducing pvc-autoresizer

By Akihiro Ikezoe. Today, we are excited to announce pvc-autoresizer, which is new, Kubernetes-native, open-source software to provide the ability to expand the size of Persistent Volume Claims (PVCs) on Kubernetes cluster automatically. p…

Production-grade Deployment of PVC-based Rook/Ceph Cluster

By Satoru Takeuchi (@satoru-takeuchi) Introduction Rook/Ceph support two types of clusters, "host-based cluster" and "PVC-based cluster". The former specifies host paths and raw devices to create OSD, and the latter specifies the storage c…

Managing Monorepo using Lerna and Yarn workspaces

By Toru Kobayashi (@koba04) This article shows how to manage multiple packages in a single repository.

Announcing TopoLVM 0.3 & 0.4

By Banji Inoue (@binoue) We are happy to announce that TopoLVM 0.4.0 is released. TopoLVM is a storage plugin for Kubernetes using LVM. It features dynamic provisioning and capacity-aware scheduling among others. Here is news about the rec…

Production-grade delivery workflow using Argo CD

By Banji Inoue (@binoue), Akihiro Ikezoe(@zoetro) Nowadays, GitOps is widely considered the best methodology for continuous delivery. However, the right way of implementing GitOps for production environments is not widely understood. We br…

Automating Lifecycle Management of Kubernetes Clusters

By Hiroshi Muraoka (@tapih) This article introduces Cybozu Kubernetes Engine(CKE), a certificated Kubernetes Conformance Software by CNCF. CKE is designed to reduce the operations burden for large Kubernetes(k8s) clusters as little as poss…

Introducing a New Local Storage for Kubernetes: TopoLVM

By Kazuhito Matsuda (@kazmaz11) Local storage in Kubernetes means storage devices or filesystems available locally on each node server. This article briefly reviews existing local storage solutions in Kubernetes, then introduces a new stor…

Modular, Pure Layer 3 Network for Kubernetes: The Implementation

By Hirotaka Yamamoto (@ymmt2005) As part of Project Neco, we are building a highly scalable data center network for large Kubernetes clusters. In Modular, Pure Layer 3 Network for Kubernetes: The Design, we described the challenges of buil…

Getting Started with BIRD Routing Software

By Hirotaka Yamamoto (@ymmt2005) This is a supplementary material for Modular, Pure Layer 3 Network for Kubernetes: The Implementation to cover the basics of the BIRD Internet Routing Daemon. Although there is an official user's guide, thi…

A Brief Introduction to BGP for Software Engineers

By Hirotaka Yamamoto (@ymmt2005) This is a supplementary material for Modular, Pure Layer 3 Network for Kubernetes: The Implementation to cover the basics of Border Gateway Protocol (BGP) used inside data centers. The intended readers are …

Modular, Pure Layer 3 Network for Kubernetes: The Design

By Shin'ya Ueoka (@ueokande), Hirotaka Yamamoto (@ymmt2005) As part of Project Neco, we are building a highly scalable data center network for large Kubernetes clusters. This is the first of the series of articles to describe the network i…

Project Neco: Building Cloud Native On-Premise Data Centers

By Hirotaka Yamamoto (@ymmt2005) kintone.com, a low-code application platform service, is branded as cybozu.com in Japan. Today, cybozu.com is used by more than 30,000 customer companies. To provide a reliable and cost-effective service, w…