2018 June

06-29 From Java to Go, and Back Again

In Lisp, you don’t just write your program down toward the language, you also build the language up toward your program. As you’re writing a program you may think “I wish Lisp had such-and-such an operator.” So you go and write it.

06-25 Kubernetes' Complexity

Over the past month, I started rebuilding the Raspberry Pi Dramble project using Kubernetes instead of installing and configuring the LEMP stack directly on nodes via Ansible (track GitHub issues here).

06-22 Web Assembly and Go: A look to the future

It’s no secret that I’m resistant to learning Javascript and frontend development. I learned HTML back before CSS was even a thing, and even Javascript came long after I started doing web development.

06-21 Scaling Kubernetes for 25M users

tl;dr: when moving more than 500 containers to k8s we ran into some problems. Scroll and read the big titles below to see what they were and how we solved them. MEE6 has been growing fast, going from 0 to 25M users in about 18 months with the CEO also serving as the sole developer.

06-20 React Native at Airbnb

This is the first in a series of blog posts in which we outline our experience with React Native and what is next for mobile at Airbnb. When Airbnb launched 10 years ago, smartphones were in their infancy.

06-15 GKE vs AKS vs EKS

The state of managed Kubernetes by industry’s top cloud providers. Update: This post was last updated on June 13, 2018.

06-15 How We Switched to a Continuous Delivery Pipeline in 3 months

We organize the project by the Agile methodology. We have begun by a “kickoff” page under confluence to initiate the project. A formal kick-off meeting must be set up if at least one of the following conditions is met:

06-14 Netlify CMS launches support for GitLab

Making it possible that “everyone can contribute” is our mission, and any development that brings us closer to it is great news! That’s why we’re happy to tell you that open source content management system Netlify CMS is launching support for GitLab as a back end today.

06-11 Creating Static E-commerce site with GatsbyJs

So, a few days ago I saw tweet Kayle Gill about building static e-commerce site using GatsbyJs. That time I was in process of building an e-commerce website for my wife using NextJs (which is also awesome!). Instead of building the site with NextJs I tried GatsbyJs.

06-10 Use Satellite 6 as an Inventory Source in Ansible Tower

Welcome to another entry in the Getting Started series! In this post we’ll talk about how to use Red Hat Satellite 6 as an inventory source within Ansible Tower. A common scenario we see is the use of Satellite 6.

06-05 Advanced multi-stage build patterns

Multi-stage builds feature in Dockerfiles enables you to create smaller container images with better caching and smaller security footprint.

06-04 A perf cheat sheet

Right now I’m working on finishing up a zine about perf that I started back in May, and I’ve been struggling with how to explain all there is to say about perf in a concise way.

06-04 Skaffold: happy Kubernetes workflows

Skaffold is my top Kubernetes developer tool of the year so far. Since its accidental reveal about 3 months ago, it already got 3,700 stars on GitHub. Clearly the community is lovin’ it.

06-01 Helm Breaks Free From Kubernetes Project, Joins CNCF

The Cloud Native Computing Foundation (CNCF) voted to move Helm from underneath the wing of Kubernetes and into its own incubation-level hosted project. The move is set to allow Helm to prosper on its own as well as allow Kubernetes to maintain a focus on its evolution.

06-01 Drupal 8 progressive decoupling with React

Progressive decoupling and ES6 support on Drupal 8 are definitely gaining some momentum. After having tested several methods to make use of React within Drupal, I had a look a the React Comments module. What I like about the approach that the maintainers took, is that React is:

2018 May

05-30 Kubernetes best practices: mapping external services

A very common scenario is when you are hosting your own database, but doing so outside the cluster, for example on a Google Compute Engine instance. This is very common if you run some services inside Kubernetes and some outside, or need more customization or control than Kubernetes allows.

05-30 How Company Frameworks Increase Technical Debt

I focus on helping teams and organizations reduce technical debt. This means a lot of work in legacy applications. But once technical debt has been reduced, it’s important to think about how we will avoid creating too much new technical debt in the future.

05-25 The Long Road to Drupal 9

When Drupal 9 is released, it will be the first major release since sematic versioning and six-month minor release cycles were adopted.

05-22 Kubernetes: Where Helm And Related Tools Sit

Package management, dependency management, configuration management, and who knows how many other forms of management exist when it comes to computing systems. We have managers for managers for operators of applications.

05-15 Intégrer vos logs serveurs dans Data Studio automatiquement

Si il y a bien une donnée SEO qui est de mode, c’est bien les logs serveurs. En même temps, il serait vraiment dommage de s’en passer si vous avez la possibilité d’y accéder. Le problème, c’est que les fichiers sont vite indigestes. Il faut les télécharger, les traiter et les trier.

05-15 APIs as infrastructure: future-proofing Stripe with versioning

When it comes to APIs, change isn’t popular. While software developers are used to iterating quickly and often, API developers lose that flexibility as soon as even one user starts consuming their interface. Many of us are familiar with how the Unix operating system evolved.

05-14 The G-Unit Stack: Go, GraphQL, and gRPC

One of the technologies that has caught my eye in recent days is GraphQL. Additionally, I’ve been doing a lot of work with Go and gRPC at work, so I was curious if there was a way that these technologies could play nicely with one another. Then, it hit me.

05-12 Pyre: Fast Type Checking for Python

Today, we’re excited to announce Pyre, a static type checker for Python. Pyre is designed to help improve the quality and development speed in large Python codebases by flagging type errors interactively in your favorite editor.

05-09 CloudEvents, Multi-Cloud, and the Gloo Between Them

We at Solo believe the future of serverless platforms will be to enable building serverless applications across cloud vendors.

05-03 UML sequence diagrams

The classic case discussed for branch by abstraction is the changing of one persistence technology for another. In the original article⇩ for this, it was swapping out Java’s ‘Hibernate’ technology for ‘iBatis’ (now MyBatis). That was hypothetical for the blog entry.

05-03 Open-sourcing gVisor, a sandboxed container runtime

With traditional containers, the kernel imposes some limits on the resources the application can access. These limits are implemented through the use of Linux cgroups and namespaces, but not all resources can be controlled via these mechanisms.

05-03 How to break a Monolith into Microservices

As monolithic systems become too large to deal with, many enterprises are drawn to breaking them down into the microservices architectural style. It is a worthwhile journey, but not an easy one.

05-03 Making a Gmail bot with Apps Script and TypeScript

Google Apps Script is one of the best hidden features of Gmail. Did you ever want just a bit more flexibility from a filter? Maybe the ability to remove a label, or match on a header, or just decide the order they are applied in.

2018 April

04-18 Go Range Loop Internals

While they are very convenient, I always found Go’s range loops a bit mystifying. I’m not alone in this: Today’s #golang gotcha: the two-value range over an array does a copy. Avoid by ranging over the pointer instead.https://t.co/SbK667osvA

04-11 How A Tiny Go Microservice Coded In Hackathon Is Saving Us Thousands

In the past few weeks we’ve rolled out a Go microservice called “KIB” to production, which reduced a huge portion of the infrastructure necessary for Movio Cinema’s core tools: Group Builder and Campaign Execution.