How Sockets Can Block Node’s Event Loop
Writing good code requires an understanding of how the language’s features fit together. Writing great code requires an understanding of how the code will actually run underneath. If you don’t, your code could cause huge hidden issues.
When we first started implementing our socket logic in Node.js, we didn’t have much experience with doing real-time operations with Node.js. We quickly learned that our socket experience with other stacks was of little use. The more we investigated, the less we understood. To find the solution, we first had to understand Node.js itself.
Using Docker Compose to Build Unlimited Environments
Our team is excited to announce enhanced support for Docker Compose just in time for DockerCon 2017. Runnable provides on-demand staging environments for developers to integrate and test code changes earlier in the dev process. And now, developers using Docker Compose can create an unlimited number of multi-container staging and test environments with ease.
Monoliths, Microservices, and Fish
I recently joined Runnable, a service that’s built on a service and event-driven architecture. Having come from a series of monoliths, it’s taken some adjustments, some of which go well beyond simple syntax. Using microservices and events changed the way I think.
A Better Dev Workflow with Docker Compose
As a follow-up to our previous post on the versatility of Docker Compose, we wanted to emphasize how useful it can be to introduce Compose to your development workflow. Compose lets you take advantage of the benefits of Docker, while abstracting the complexity of your stack and of your Dockerfiles themselves. You may be used to running production images with Compose, but using it in development has benefits of its own.
The Versatility of Docker Compose
According to the official documentation
, Docker Compose is, “a tool for defining and running multi-container Docker applications.” However, I think one important detail is missing. Compose can also build your multi-container Docker applications.
What is interesting is that Compose build and run functionality can be used completely independently. It isn’t opinionated, allowing it to be used it for different use cases and setups.
I’m going to show you some of those use cases and how Compose can be beneficial in pretty much every setup.
Runnable Unveils Kubernetes Integration @ Google Cloud Next
Last week, the Runnable team attended Google Cloud Next and had the privilege to speak with tons of developers and DevOps professionals. We kicked off the conference with the announcement of support for Kubernetes on Google Cloud Platform. We also gave away a ton of swag and sparked several meaningful relationships. A big thanks to everyone who stopped by our booth and said hi! It was awesome to meet and talk to so many of you.
Why is Docker Swarm Consuming All Available RAM?
A few weeks ago we were alerted that Docker Swarm was using over 8GB of RAM. Our investigation led us to discover an unexpected factor that determines its memory usage. After a bit of graphing and math, we were able to locate the code behind this unexpected behavior.
Kubernetes: How Do I Do That?
Kubernetes (lovingly referred to as “K8s”, “K8”, or even “the Kubes”) is becoming the most widely adopted container cluster manager out there. At a very basic level, Kubernetes provides an abstraction layer over containers that allows developers to organize all the different layers of their application through Kubernetes configurations. The challenge with Kubernetes is that you need to understand when and how to correctly use the abstractions it provides.