InfoQ Homepage Architecture Content on InfoQ
-
Improving Testability of Java Microservices with Container Orchestration and a Service Mesh
In enterprise test scenarios, software needs to be tested in the same way as it will run in production. This article provides a practical demonstration of testing Java microservices that are running on Kubernetes with the Istio service mesh. K8s service abstractions enable mocking, and Istio enables us to re-route traffic and inject faulty responses or delays to verify our services' resiliency.
-
How Contract Tests Improve the Quality of Your Distributed Systems
Catching bugs at the end of a development cycle is costly, but how do you incrementally test complex distributed systems? In this article, Marcin Grzejszczak looks at an integration testing approach for communication between components. He reviews contract testing, and Spring Cloud Contract, as one solution.
-
Packaging Applications for Docker and Kubernetes: Metaparticle vs Pulumi vs Ballerina
Metaparticle, Ballerina, and Pulumi have introduced different approaches by empowering developers to handle deployment automation within programing language itself without having handwriting YAMLs. This is becoming a trend and will change the DevOps practice in the software industry.
-
Coaching Technical Practices
In the past 4-5 years I have been working as a software development coach, helping organizations around London improve their technical practices. I focus on XP practices, specifically TDD, Pair Programming, Refactoring and Simple Design. In this article I share my experiences organizing coaching sessions, including subject selection and sequencing, exercises for each subject and session formats.
-
Q&A on the Book Testing in the Digital Age
The Book Testing in the Digital Age by Tom van de Ven, Rik Marselis, and Humayun Shaukat, explains the impact that developments like robotics, artificial intelligence, internet of things, and big data are having in testing. It explores the challenges and possibilities that the digital age brings us when it comes to testing software systems.
-
Building an API Gateway with the Ballerina Programming Language
An API Gateway is a layer in an architecture pattern that allows the business API to focus on the business functionality while taking care of the request dispatching, policy enforcement, protocol translations and analytics. This article is about how we built an API Gateway in Ballerina for the WSO2 API Manager.
-
How to Adopt a New Technology: Advice from Buoyant on Utilising a Service Mesh
When adding a new technology like a service mesh into your production stack, be mindful of the impact this will have on you and your colleagues. Be clear about what problem you are solving, and define appropriate acceptance criteria. Run experiments that attempt to show how a service mesh can make life better for the various stakeholders.
-
People Re-Engineering How To’s: Leadership Enablement
There is no doubt that leadership is the management model that is now influencing the software industry, under the enormous challenges imposed by the Digital Transformation Age. People re-engineering elevates the value of leadership by taking “Leadership Enablement” as one of its basic threads, which brings vitality and vigor to a software organization.
-
Service Mesh: Promise or Peril?
Service meshes such as Istio, Linkerd, and Cilium are gaining increased visibility as companies adopt microservice architectures. The arguments for a service mesh are compelling: full-stack observability, transparent security, systems resilience, and more. But is a service mesh really the right solution for you? This article examines when a service mesh makes sense and when it might not.
-
App Architecture, iOS Application Design Patterns in Swift Review and Author Q&A
App Architecture, iOS Application Design Patterns in Swift by Chris Eidhof, Matt Gallagher, and Florian Kugler presents a number of architectures for iOS Swift applications, from the ubiquitous Model-View-Controller to a few more experimental ones. The book is accompanied by a set of videos that are available as a separate purchase and add a live-coding dimension to the book content.
-
The C4 Model for Software Architecture
Software architecture diagrams can be a very useful communication tool, but many teams have scaled back on the creation of diagrams, and when diagrams are created, they are often confusing and unclear. The C4 model consists of a hierarchical set of software architecture diagrams for context, containers, components, and code.
-
The SOA Journey: from Understanding Business to Agile Architecture
If your monolith is tightly coupled and not cohesive, you could split it in order for a business to be more agile. There are a lot of wrong ways that you can do that. They result in the same tightly coupled and non-cohesive monolith, but which is distributed across a network. This article examines how you can align your technical services and business-capabilities.