Operations | Monitoring | ITSM | DevOps | Cloud

Engineer Gleb Lesnikov on Why Splitting a Monolith into Microservices May Sink Your Business

Gleb Lesnikov has been developing the system behind Dodo Pizza, an international fast-food chain, since joining the company in 2015. Over the years, the local business turned into a company running over 1,600 restaurants. When Dodo expanded rapidly, Gleb had to take key technical decisions that allowed the company to scale and succeed. Looking back, he reflects on the period when the company moved to a microservices architecture and explains how he managed to solve problems that could have caused the company to collapse.

The case against the internet's most optimistic button

The save for later button has quietly developed a bad reputation. It is associated with every overflowing bookmarks folder, every article we'll "definitely read this weekend", and every YouTube playlist titled Watch Later that's slowly turning into a historical archive. Somehow, the blame always lands on the same little button. It's become the internet's favorite accomplice for procrastination. I'd like to offer a defense.

Let's break autovacuum in Postgres: reproducing failures to make it observable

Autovacuum is one of those Postgres background jobs that quietly keeps your database healthy. It cleans up the dead row versions that every UPDATE and DELETE leaves behind, and it keeps the database away from a hard transaction-ID limit that would take it offline. Most of the time you don't think about it, because it just works.

Security at Scale: What Changes When Everyone Can Deploy using AI

In our first series post, The New Software Creator, we mapped out a structural shift in the industry: AI is turning non-technical team members into creators of software. In our second post, When Anyone Can Build Software, Deployment Governance Is What Keeps It Safe, we argued that deployment is the single control layer that can secure this explosion of output without choking innovation.

How to structure a log

You’ve decided to step up your logging game and start sending more valuable, structured logs that you can query, aggregate, and use for debugging in production. Go, you! Now, uh, how do you actually write them? We’re not going to spend much time on what you should log. We’ve covered that already, a few times before. What we will be covering is how to actually write those logs, answering questions like: What makes a log structured is not just pairing messages with arbitrary JSON objects.

Don't add a read replica until you've read this

As the size and complexity of their relational database workload grows, every company eventually goes through the process of off-loading work on a read replica. It comes with lots of benefits, but at a cost of increased complexity. This article is about how we dealt with that, a lot of learnings, and some useful techniques. incident.io is an incident management product relied on by thousands of customers to be the thing that supports them through anything from a minor blip to a full outage.

Introducing AI Agent Deployment in Harness Continuous Delivery | Harness Blog

‍Teams building agents have converged on something that looks a lot like the software development lifecycle, but reshaped around a system whose output isn't deterministic: prototype an agent against a framework, evaluate it against a dataset of expected behavior, deploy it somewhere real, observe how it behaves against live traffic, and feed what you learn back into the next prototype. Call it the agent development lifecycle (Agent DLC).

How to Test IT Workflows for Enterprise Workflow Automation

Enterprise workflow automation can deliver faster resolution and ultimately more time back for IT teams. But not every workflow is ready to automate on day one, is it? This is where many automation programs stumble. Teams often start with signals like the most visible problem or the workflow that creates the most frustration. These are useful signals, but they’re not enough on their own. The best automation candidates are usually repeatable, measurable, and have clear inputs and outputs.