Weird Java

Some of the weirdest Java puzzlers that we had a chance to get our hands on

Even the most experienced Java developers will find the questions in this post confusing. Or at the very least, amusing (And absolutely unfair). After our adventure with the Java Deathmatch we’ve decided to publish a different set of questions this time around, highlighting some of the unusual and quirky things you can do with Java. For the results of our previous quizzes, you can check out this post and see if you can solve the question that 4 out 5 of developers got wrong.

Do try this at home (or office). But please, please don’t use it in real life Java applications! Unless you’re trying to troll someone and in that case, everything goes. A huge huge thanks goes out to Peter Lawrey for sharing most of these questions with us. The solutions are available at the bottom of this post, but try giving them an honest try and see how many of them you manage to explain.

Continue Reading…

Aurora vs MySQL

Amazon Aurora: The next generation of hosted database services put to the test

In this post we’re taking a closer look at Amazon Aurora to see how it fares against MySQL and if it delivers on the promise of a 5x performance boost. Recently reaching general availability, Aurora is Amazon’s home grown MySQL compatible database. Currently available on three AWS regions (Virginia, Oregon and Ireland) on top of RDS, Amazon’s Relational Database Service.

Aurora is basically the next stage in the evolution of Amazon’s hosted services. If now we’re used to using EC2 for our servers, and RDS was introduced for optimized database instances, Aurora is the next step in this offering. Fully compatible with any operation you’d run through MySQL so no code changes are needed.

Continue Reading…

Java Performance Metrics

The Java performance metrics you need to follow for understanding how your application behaves in production

Unlike the days when software used to be shipped in boxes and there was no way of knowing how it will perform in production, today almost any metric you can think of can be tracked down and reported. The problems we’re now dealing with are coming from information overload and scale, rather than not having enough information. With tens or hundreds of servers at play, this becomes even harder to keep track of. One thing that remained from those boxed software days are logs, which stayed pretty much the same for over 20 years now. Most developers still depend on those for insights into their production systems, but now they’re gradually being replaced.

For this post we’ve decided to gather some of the most insightful metrics you can follow to understand how your application behaves in production, WITHOUT relying on log files in any way. Aside from external factors like user loads (or… AWS downtime), new deployments are probably the most common influence on how Java performance indicators behave. So following up on them becomes even more critical right at those sensitive times following new deployments.

Continue Reading…

Production Tools

Review: Alerting, Log Management, Visualization, APM, and Deployment Management Tools

We’re often asked about the differences and trade-offs between the tools in the Java production tooling ecosystem, so we’ve decided to release a tools guide and gather all our insights in one place. In this post you can see the topics that were covered in the guide, and additional research that we’ve done in each of these spaces. We hope you’ll find it useful.

Continue Reading…

Takipi 2.0

Visualize all log events and exceptions 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…