Takipi 2.0

Visualize all log events and excpetions in production directly from your JVMs – Send as metrics into more than 20 graphing and alerting tools.

We wanted to share two major features we’re introducing that we thought worth sharing – Trends and DevOps Integrations. We began building Takipi because we were tired of using traditional logs to understand what was going inside of our software in production. We wanted to be able to “see into” each error in staging or production when it happened.

We also wanted to have much better detection capabilities to know when things broke down either because of code or environment changes – without continuously scanning and analyzing massive logs files. This new set of features brings us much closer to that vision, which is why we’re pretty excited about it. So let’s get to it :)

Continue Reading…



How to make sense of your stack trace and solve errors faster

Developer experience, as in User Experience where the user is a developer, is often neglected. Many of the workflows and experiences around crafting code, debugging, testing, monitoring and the whole deployment process are really rough around the edges to say the least. This mainly comes from the need to get full control of what’s going on, at the expense of making the experience smoother and enjoyable. But it doesn’t have to be like this. In fact, it shouldn’t be like this.

Continue Reading…

Tal Weiss at InfoQ

InfoQ interviews Tal Weiss: Debugging strategies for release cycles on steroids

Developer teams want to push code much faster and see its impact in production. Many times it’s also simply the only way for their companies to stay relevant and keep up with the competition. In order to be able to do that, you need to go beyond implementing Continuous Delivery / Continuous Integration practices and create a production debugging strategy to keep your application afloat.

Continue Reading…

Moving to Apache Spark

The top 5 things you need to know before moving to Apache Spark

It seems like everyone’s only talking about the new hottest tech and neglect what it actually means to adopt it. But it’s only natural, right? The new features and promises outshine everything else and the tough challenges and decisions are swept aside.

Not this time. Software architecture is hard, and trade offs are the name of the game.

Continue Reading…

Chef, Puppet, Ansible, Saltstack, Fabric

What are the pros and cons of Chef, Puppet, Ansible, SaltStack and Fabric?

Working in production today often means continuous deployments and an environment distributed all over the world. When your infrastructure is decentralized and cloud-based and you’re dealing with frequent deployments of largely identical services across largely identical servers, having a way to automate the configuration and maintenance of everything is a large boon. Deployment management tools and configuration management tools are designed for this purpose. They enable you to use recipes, playbooks, templates, or whatever terminology to simplify automation and orchestration across your environment to provide a standard, consistent deployment.

There are several considerations to keep in mind when choosing a tool in this space. One is the model for the tool. Some require a master-client model, which uses a centralized control point to communicate to distributed machines, while others can or do operate on a more local level. Another consideration is the makeup of your environment. Some tools are written in different languages and support for particular OSs or setups can vary. Making sure your tool of choice will mesh well with your environment and the particular skills of your team can save you a lot of headaches here.

Continue Reading…

AWS EC2 Speed Test

How to choose which AWS region you should place your EC2 instance at?

Ladies and gentleman, we’re ready to roll up the curtain on the Takipi Amazon Web Services server speeds benchmark for 2015. This year we’re welcoming a brand new region in Frankfurt, Germany, and crowning the fastest region for this year’s speed test. To do so, we’ve set up instances all around the globe and bumped a 10MB file from side to side to see how long would it take for it to complete its journey.

The testing first started a few years back when we wanted to have more data to help us choose where to host our first cluster of servers (Spoiler alert: We’ve chosen Virginia). Since then, we’ve been running the benchmark once per year to get more insight into this rather dark terrain covered by the cloud wars fog of war.

Continue Reading…

Java Deathmatch

Results from the Java Deathmatch – A puzzle minigame for developers

A few months ago we released a new side project of ours with a minisite called Java Deathmatch, and since then over 20,000 developers have given it a try. The site features 20 multiple-choice Java questions and today after we’ve gathered stats from all the games that have been played we’re happy to share some of the results and solutions with you.

Overall we collected 61,872 answers, which gives us about 3,094 answers for each of the 20 questions. Each Java deathmatch session randomly chooses 5 questions and gives you 90 seconds to solve each one. Every question has 4 possible answers. We’ve been criticized that the questions are too hard but, well, it’s not called a deathmatch for no reason! Using those stats, we were able to determine which were the hardest questions, and which were the easiest. In this post we’d like to share the 5 toughest questions from this experiment and solve them together.

Continue Reading…

Hosted ELK

The hosted ELK stack: Centralizing and managing your logs for fun and profit

You don’t look a gift-horse in the mouth. Especially if it’s not a horse and actually an elk. It will poke you with its antlers. Or get drunk on fermented apples and trash your backyard. That’s an occupational hazard we’re willing to accept though so let’s take a look anyhow.

In this post we’d like to share some of our experience with the caveats of deploying and managing the ELK stack on your own and introduce you to the world of hosted ElasticSearch. Or in other words, when does it make sense to move on from managing your own ElasticSearch deployment, and what are the options you have when you decide to flip the switch. Having been on both sides, and understanding each team and system will have their own unique requirements, we wanted to share some insights to help you reach the right decision for your environment.

Continue Reading…

Top Scala Library on GitHub

What are the top libraries used by some of the most popular Scala projects on GitHub? Based on analyzing 64,562 dependencies

In this post we turned to GitHub on a mission to find out what the most popular Scala libraries out there in the wild are. To answer this question we pulled 64,562 dependencies out of 7,321 of the most popular Scala repositories. This resulted in 5,627 unique libraries that these projects use, and we’re excited to share the top 100 with you today. Our next mission would be to benchmark beer consumption by brewery in Scala meetups. Well… maybe some other time.

With resemblance to the previous research we’ve done with Java libraries on GitHub, apart from the usual suspects, there are many interesting new trends showing up. We also compared the stats to the last round of results we pulled out about a year and a half ago. Now, let’s have a first look at the results and insights we’ve found.

Continue Reading…

Alerting Tools

What are some of the best alerting tools for tracking errors and uptime?

Having all the automation and management in the world can only take you so far if you have no clue what’s actually happening in your production app. Alerting tools provide insight into the workings and status of your app. Some reach out to you to notify you when something worth your attention pops up, some provide a dashboard for error tracking, and others test your app on a continuous basis. There are alerting tools for the developer-side with issues like errors and exceptions, and for the operations side with issues like uptime. Visibility is an important consideration for alerting tools. The more a tool requires you to integrate it into your environment, the more you are dependent on the tool’s frameworks, which can also lead to issues down the road.

Continue Reading…