InfoQ Homepage Development Content on InfoQ
-
A Great Engineer Needs the Liberal Arts
Much of what helps you become a great software engineer, and create outstanding software that people want to use, comes from outside the world of STEM. The ability to effectively analyze a problem, evaluate different options, and engineer a solution requires skills taught in the liberal arts.
-
Crafting a Resilient Culture: Or, How to Survive an Accidental Mid-Day Production Incident
While working at Etsy, Ryn Daniels accidentally upgraded Apache on every single server that was running it, which caused a production incident. Explore lessons learned in this article, including that although automation and orchestration can be great, you should make sure you understand what’s happening under the hood and what to do if your automation goes awry.
-
Exploring HyperLedger: Experience in Being a Framework Early Adopter
Some time ago OpenGift explored deploying a HyperLedger-based blockchain within a production environment. This article presents a story of our attempts to integrate it and the problems we encountered.
-
DevOps and Cloud InfoQ Trends Report - February 2019
An overview of how the “cloud computing” and DevOps space is evolving in 2019 including updates on Kubernetes, Chaos Engineering, Service meshes and more.
-
Tap Compare Testing with Diferencia and Java Microservices
“Tap compare” is a testing technique that allows you to test the behavior and performance of the new service by comparing its results against the old service. This article provides an example of using a new open source tool, Diferencia, and mirroring production traffic across both old and new services to compare the difference in result.
-
Automating Your Java Project Workflow with a Modified Gitflow Branching Model
Gitflow is a collaborative branching model that attempts to exploit the power, speed and simplicity of Git branching. But documentation for Gitflow in an automated build, integrate, and deploy environment is sparse. This article provides a flavor of Gitflow that can be used in an automated build environment.
-
Four Techniques Serverless Platforms Use to Balance Performance and Cost
There are two aspects that have been key to the rapid adoption of serverless computing: the performance and the cost model. This article looks at those aspects, the tradeoffs, and opportunity ahead.
-
Adapting Projects to Use C# 8 and Nullable Reference Types
This report is a case study on upgrading a C# 7 class library to C# 8 with nullable reference types. The project used in this case study is a collection of MVVM style base classes, reflection code, and various utility functions. It was chosen because it is reasonably small and has a good mix of idiomatic and unusual C# patterns.
-
Overcoming RESTlessness
New API protocols like GraphQL, gRPC, and Apache Kafka have risen in popularity as alternatives to REST-inspired HTTP APIs. Instead of seeking to replace REST, the software engineering industry should seek to evolve by building on the maturity of the REST ecosystem while exploiting the technological strengths of the new protocols.
-
The Complete Guide to the Java SE 12 Extended Switch Statement/Expression
A complete guide to Java SE 12 extended switch statement/expression. This article contains details on the proposed extension to the Java switch statement that allows it to be used as either an enhanced switch statement or a switch expression. Examples are included.
-
Rewriting an API Gateway Service from Clojure to Golang: AppsFlyer Experience Report
AppsFlyer processes nearly 70+ billion HTTP requests a day, and is built using a microservices architecture style. The entry point to the system that wraps all of the frontend services is a mission-critical (non-micro) service called the API Gateway. This article is an experience reporting of migrating from a Clojure-based gateway to a newly designed Go-based implementation.
-
Virtual Panel: Kubernetes and the Challenges of Multi-Cloud
Kubernetes is eliminating vendor lock-in and enabling cloud portability. In this panel, the panelists talk about what multi-cloud means as more than a common platform on multiple clouds.