As Infrastructure is increasingly managed by code (IaC), open source IaC modules have the power to expand OSS from WHAT we run, to HOW and WHERE we run it, providing an alternative to commercial SaaS offerings.

Burger and fries, PB and J, OSS and IaC — Some things work better together. Photo by Mike on Unsplash

In the beginning, there were servers. If you wanted to use an open-source tool, such as MySQL, you would download the binaries from the web, and install those on your own. When time came to scale your database to handle a larger load, it required deep knowledge and continuous maintenance.

Then came the SaaS model, promising to save us from these “low level” infrastructure…

Web applications, Single page applications, static websites. They are everywhere. No matter if your back-end is running on Kubernetes or serverless, public cloud or on-premise, if you have a front-end, there is a good chance it is a browser rendered, statically delivered bundle of HTML, CSS and Javascript.

In my previous blog posts, I discussed ‘ Feature Environments’ and ‘ Per-Pull Request Environments’. Making your entire system run such environments is no small feat, especially if you are running complex infrastructure, a very large scale system, or legacy code without IaC. But you can still make a small effort and…

An Isolated Environment
An Isolated Environment

In a recent blog post, I discussed expanding the idea of “Feature branches” to “Feature environments”. Using Infrastructure-as-Code, we can create an environment for every feature we are working on, thereby giving us a more flexible, isolated development environment, and allowing us to test our code early in the development process.

In this post I’d like to continue down that path, and see how we can automatically create an environment for every pull request, and gain a number of advantages over traditional static staging or QA environments.

Pull Requests & Moving Beyond Static Staging

Pull requests are a well known and common workflow step for many development…

Cost visibility you can act on

Giving your dev team the freedom to run cloud environments has never been easier, thanks to IaC and env0’s environments-as-a-service platform. Your developers will love the freedom of self-service cloud environments, your infrastructure team will love the governance, but how will your CFO react?

At env0, one of our main goals is keeping the balance between freedom and governance. While part of that is purely technical (like following conventions, and ensuring security), cost management is also a big part. …

Image by Andrew Martin (Pixabay)

“The advantage of feature branching is that each developer can work on their own feature and be isolated from changes going on elsewhere.” (FeatureBranch)

Feature branches have been around for a long time and are a common practice among dev teams. I couldn’t imagine development in a team without them. It would seem ludicrous if someone asked me to share a branch with a colleague who is working on a different feature. Just the thought makes me uncomfortable. It’s easy to see how the isolation that feature-branches provide, is also needed for testing the application. …

In short, I was able to move my side project — an Express.JS application — from AWS Elastic Beanstalk to Lambda+APIG. It took me less than a day and it resulted in a ~90% reduction of costs.

This could be beneficial for any non-mission critical application (or environment), and I believe that it could be a game-changer for side projects and small endeavors.

First of all, for full disclosure — the application in question is a side project and not subject to any service-level agreement or performance requirements. It is a web site called libhive. libhive scans the code in…

I usually write about more technical topics — but I just wanted to share a small story about how using my own side-project really made my day.

I was doing some coding for the great people at, when I ran into an issue that required getting some stats from the Google Analytics API, on a Node.js server. It didn’t take me long to npm install googleapis, the official Google API client for Node. The Readme file was pretty helpful in getting me started, and then I moved onto the Reference Docs. Those were alright, but since the package really…

The more that you read, the more things you will know.
The more that you learn, the more places you’ll go.

- Dr. Seuss

OK so first let me apologize for that awful click-bait title. But hey — it got you here didn’t it? I do promise that I’ll try to keep it short and that I’ll include a list of links to some amazing code ;)

So why did I lure you here? Because writing code is hard. There are so many things that make up good code, that you are almost bound to get something wrong. That is…

I’ll try to keep this short and simple : This post will go over an implementation of asynchronous server side rendering in a React application. I’ll be using React-Router, Mobx and Koa. The application code is over-simplified and meant to be minimal — it’s just a demonstration.

Why is this a thing ?

React and React-Router come with out-of-the-box server side rendering. Unfortunately — they do not support asynchronous rendering. That means your routes will be handled on the server and your views will be rendered, but if you need to load any data that isn’t on the server (e.g. …

One of the greatest things about Node.js is the community. Using npm we can easily plug into hundreds of thousands of packages, that can help us solve many problems and focus on our more unique challenges. This is not unlike other development environments and their also awesome communities. But great power comes with… you know. Having our production application depend on 3rd party code can be risky, and the trade-off for having access to the products of a wide and fast-moving community are that 3rd party packages, even trusted ones, have their issues. …

Avner Sorek

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store