Technical Resources
Educational Resources
Connect with Us
At Papertrail we are software engineers who are passionate about programming, debugging, logging and pretty much everything about building and running applications. We enjoy keeping our coding skills sharp and playing with new technologies. Below are some of things we have picked up along the way.
Fully Functional for 14 Days
These days, containerization is a trendy issue in the tech industry. Although it’s been around for some time, it’s only recently become a prominent trend. You can use Docker or Kubernetes—or even both—to work with containers. Each has its own set of advantages and disadvantages. But which technology is better for which types of projects? To clarify, let’s look at some ways to understand the differences between Docker and Kubernetes.
Syslog is a standard for collecting, routing, and storing log messages. It emerged from the Sendmail project in the 1980s. In 2001, it was standardized as RFC 3164 and then as RFC 5424 in 2009. It’s supported on several different platforms, including Unix/Linux, BSD Unix, macOS, and network devices like printers and routers. Because of the remote syslog capability, the standard has lasted several decades.
Container logging adds some complexities we don’t experience when using VMs or dedicated hardware. With containers, once the container dies, the logs and data for the container also die. This may not be a problem for small applications with little logging. But for more complex applications or applications running in production, you need to start thinking about log persistence and management.
Let’s paint a picture. You’re a developer working on a system broken down into multiple services. These services do their one thing well and all communicate. However, it’s 3 a.m., and you get a call from your boss telling you something’s wrong. People can’t complete the tasks they’re supposed to complete, and there are errors on the webpages they’re using. You’re the first responder and need to figure out what’s going on.
A good application usually has some sort of logging to provide clues when something goes wrong. When it doesn’t, I have to spend time making sure I can get some basic information logged when an issue occurs. In those cases, I used to write files in /var/log for every application or scheduled task. But I came to a point where there were too many files to review when I had to troubleshoot. To simplify troubleshooting, I decided to change my approach to an easier and more convenient system. This post describes what I came up with.
As you automate tasks with PowerShell, those tasks start to become more complex. As a result, logs become larger. Take a look at this huge log that was output from executing commands in PowerShell:
Local Kubernetes clusters are great for both developers and system engineers. When developing applications, programmers can use local clusters to make sure their application can be easily and correctly deployed without the need for configuring real infrastructure. System engineers can use them for testing, creating proofs of concept (POCs), or learning and trying new tools.
Regardless of what language you code in or what type of apps you’re working on, you’re going to end up reading log files. They’re your window into what’s happening inside your code or the server you’re talking to. Linux log management is one of the skills setting an experienced developer apart from the rest.
Creating alerts to spot problems before your users do is simple. However, when you receive too many alerts, you might end up ignoring critical problems.
As a developer, you’ll always face challenges with your applications. Some of these challenges arise from the server after deploying code. It can sometimes be difficult to know what the problem is, especially if the app is running as expected in your development environment. This is something no one can escape. These errors are bound to happen to anyone, regardless of their level of experience as a software engineer or developer.
Fully Functional for 30 Days
Contact our team, anytime.