Teams | Collaboration | Customer Service | Project Management

DevOps

Using Mattermost Operator for Kubernetes to deploy our Community server

One of the key benefits of using Kubernetes is that it’s very flexible and fault tolerant. However, that also means that it has quite a lot of complexity to deal with. A well-built operator abstracts that complexity away and helps manage updates and upgrades seamlessly. The Mattermost Kubernetes operator is basically like having a Mattermost Cloud Engineer running inside your Kubernetes cluster managing Mattermost for you.

How we manage deployment with Freshworks Cloud Platform

Kubernetes is said to be the platform to build platforms on. In Freshworks’ case, this is very true. Once Kubernetes established itself as the de-facto container orchestration platform, we set out to create a platform around it with certain very specific capabilities in mind. Kubernetes is a complex beast and takes some effort to tame. Once that is done, there are tremendous advantages.

Monitoring the Mattermost server with Prometheus and Grafana

Lately we’ve been working on improving different parts of the Mattermost server, including our monitoring and observability capabilities. We’ve been using Prometheus and Grafana to monitor our cluster for a while now, and you can read this great post where my colleague Stylianos explains how we have them working for our multi-cluster environment.

Creating powerful automations with n8n and Mattermost

Tanay is the Head of Developer Relations at n8n. He has published books on WebVR, virtual assistants on Raspberry Pi, and FirefoxOS. He has been listed in the about:credits of the Firefox web browser for his contributions to the different open source projects of the Mozilla Foundation. I’ve been involved in the DevOps world for a while and yet I finished reading The Phoenix Project only recently. The book piqued my interest in how teams execute their incident response playbooks.

Advanced Git with the Free University of Tbilisi

On Monday, March 16, 2020, I had the privilege to (virtually) join Shota Gvinepadze and his students at the Free University of Tbilisi and speak about “Advanced Git @ Mattermost” for a portion of their class time. The following are my speaking notes from the session, slightly modified from the original slides for this format. Keep in mind that the command line examples are illustrative of my workflow, and not meant to be run in isolation.

Lessons Learned Implementing ChatOps

Email overload, distributed teams and excessive meetings have caused many organizations to move their DevOps teams to messaging platforms and thus adopt ChatOps workflows. With thousands of open source installs and hundreds of customer implementations, we have a few lessons to share on interesting DevOps workflows, how incidents can be effectively communicated across distributed teams and what messaging in secure and regulated environments should look like.

Static types in Python, oh my(py)!

Over the last few years, static type checkers have become available for popular dynamic languages like PHP (Hack) and JavaScript (Flow and TypeScript), and have seen wide adoption. Two years ago, a provisional syntax for static type annotations was added to Python 3. However, static types in Python have yet to be widely adopted, because the tool for checking the type annotations, mypy, was not ready for production use… until now!