InfoQ

The Software Architects' Newsletter
March 2020
View in browser

Our thirty-second issue of the Architects’ Newsletter again focuses on the connected topics of architecture styles and governance strategies. The goal is to provide insight into how organizations are choosing effective architecture styles, (whether this is based on functions, (micro)services, or a monolith), and also to explore the related issues of governance and compliance.

We believe these topics are vitally important. They are visible at every stage of adoption in our latest Architecture and Design InfoQ Trends Report, from microservices and event-driven architecture to the concept of "the architect as a technical leader".

News

Zhamak Dehghani on Data Mesh, Domain-Oriented Data, and Building Data Platforms

In a recent InfoQ podcast that focused on the theme of Data Meshes, Daniel Bryant sat down with Zhamak Dehghani, principal consultant and portfolio director at ThoughtWorks. Topics discussed included: the motivations for becoming a data-driven organization; the challenges of adapting legacy data platforms and ETL jobs; how to design and build the next generation of data platforms using ideas from domain-driven design and product thinking, and modern platform principles such as self-service workflows and automating global governance.

Web Components: ING Open-Sources Library and InfoQ Web Trend Report

In InfoQ’s most recent Web Development trend report, we moved web components from early adopter to early majority status, as we believe that they have reached mainstream maturity and are now supported natively in Chrome, Firefox, Safari, and other browsers based on these browser engines such as Edge and Brave.

Web Components is a suite of different technologies that allow engineers to create reusable custom elements, with their functionality encapsulated away from the rest of the code. Since their inception eight years ago, Web Components strives to provide a standard component model for the Web, allowing some interoperability between different web frameworks. Design systems have emerged as a natural use case for web components. It is in this context that InfoQ interviewed Thomas Allmer, core Lion contributor, on the motivation behind ING’s open-source release of the Lion Web Component library.

In a recent InfoQ podcast, Charles Humble spoke to Dylan Schiemann, co-creator of Dojo and InfoQ’s JavaScript and Web Development lead editor, and discussed the key emerging trends in the JavaScript landscape today. Topics discussed included Web Components, Dojo’s adoption of Typescript, and client-side libraries such as Svelte and Stencil.

Istio 1.5: The Service Mesh Moves from Microservices to Monolithic Control Plane

The 1.5 release of the Istio service mesh has introduced a monolithic "istiod" control plane binary to simplify the installation of the service mesh. Steven Dake explains in his blog post that Istio initially used a microservice architecture to support the way teams within Istio were working. At the time, teams were delivering updates and releases for services on different schedules. Teams were using API contracts between themselves and needed independent horizontal scaling.

As Istio’s team and technology matured, the advantages of a microservice architecture waned, and the coordination costs increased. As argued by Christian Posta in a recent blog post, the creation of Istiod is effectively the reversal of the microservice architecture model.

QCon London: The Rise and Fall of Microservices … and Rise Again

As reported by Tim Anderson at The Register, the recent QCon London conference provided an interesting insight into the success and failures of using a microservice-based architecture. Sam Newman, author of Building Microservices and Monolith to Microservices, told attendees at the event that "microservices should not be the default choice". The core issue appeared to be that it is challenging to design and build a microservice-based system effectively; it is all too easy to build "the worst of the monoliths, the distributed monolith".

Matt Heath and Suhail Patel, software engineers from the challenger bank Monzo, presented a success story of using microservices in "Modern Banking in 1500 Microservices". Key observations reported by Anderson included that a lot of thought went into the interface or API that each service exposes. The team favors writing many small services, each dedicated to a single purpose, rather than fewer, more complex services. He also identified that an incremental approach to improvements is more effective than occasional large changes, and that "the way developers interact with each other in a team (and with management) counts for more than whatever development methodology they espouse".

Other recent articles that discuss this topic included Tyk’s "when microservices might be the wrong choice" and LightStep’s "Microservices Architecture: When and How to Move to Microservices".

How N26 Scales Technology through Hypergrowth

As the European challenger bank N26 grew fast, they had to scale their technology to keep up. This meant scaling not only their infrastructure but also their teams; for instance, they had to decide how to distribute work over teams and what technology to use or not use. Folger Fonseca, software engineer and Tech Lead at N26, shared his experience from scaling technology at N26 at QCon London 2020.

Fonseca mentioned that one thing they learned during hypergrowth was that sometimes if you want to go faster, you first have to slow down. It’s important to take a step back and review practices, processes, and governance in order to look for opportunities for improvement, he said. Having an open culture to receive and provide feedback really helps to identify where you can improve as an organization and as an engineering team.

Edge to Cloud: Building the Tesla Virtual Power Plant

Also at QCon London 2020, engineers from Tesla discussed the Tesla Virtual Power Plant architecture and explained how the software they are building is tackling some of the hardest problems in distributed computing and in renewable energy. The talk was a 50-minute deep dive into how Tesla is leveraging IoT, edge, cloud, and reactive architectures.

A central concept enabling the forecast and control of the edge devices is "digital twins". During the session, the co-presenters Colin Breck and Percy Link, software engineers at Tesla, described the concept of digital twins as: "[...] a physical representation of an IoT device (a battery, inverter or a charger) that is modeled virtually in software". They went on to say this is used to "model and represent the current state" of the devices and their relationships. The system and the digital twins are modeled in the cloud using an actor model on top of Akka.

 

Case Study

What Comes after Microservices? Multi-Runtime Microservices with Bilgin Ibryam at QCon London

Bilgin Ibryam, technical product manager at Red Hat and co-author of the O’Reilly Kubernetes Patterns book, talked at QCon London [slides] about the evolution of distributed systems on Kubernetes and the future architecture trends. Ibryam said that the next trend would be to decouple infrastructure concerns from microservices. He is calling this "multi-runtime microservices", which consists of a service with business logic running alongside a sidecar in charge of the service’s state management, networking, binding, and lifecycle.

In a recent feature-length article for InfoQ, "Multi-Runtime Microservices Architecture", Ibryam provided additional insight into this topic. He began by stating that creating distributed systems is not an easy task. Best practices have emerged around "microservice" architecture and "12-factor App" design, but, implementing these principles consistently, and with an approach that is scalable and maintainable, is challenging.

Traditional technology-focused approaches to addressing these principles included Enterprise Service Bus (ESB) and Message-Oriented Middleware (MOM). While these solutions offered a good feature set, the main challenge was the monolithic architecture and tight technological coupling between business logic and platform.

As cloud, containers, and container orchestrators such as Kubernetes have become popular, new solutions to address these principles have emerged. For example, Knative for delivery, service meshes for networking, and Camel-K for binding and integration. With this approach, the business logic (referred to as "micrologic") forms the core of the application, and sidecar "mecha" components can be created that offer powerful out-of-the-box distributed primitives.

This decoupling of micrologic and mecha components may improve day-2 operations, such as patching and upgrades, and help to sustain the long term maintainability of the cohesive units of business logic.

This case study is a summary of the full-length article that can be found on InfoQ: "Multi-Runtime Microservices Architecture"

To get notifications when InfoQ publishes content on these topics, follow "architecture", "microservices", "governance" and "compliance" on InfoQ.

Missed a newsletter? You can find all of the previous issues on InfoQ.

InfoQ strives to facilitate the spread of knowledge and innovation within this space, and in this newsletter we aim to curate and summarise key learnings from news items, articles and presentations created by industry peers, both on InfoQ and across the web. We aim to keep readers informed and educated about emerging trends, peer-validated early adoption of technologies, and architectural best practices, and are always keen to receive feedback from our readers. We hope you find it useful, but if not you can unsubscribe using the link below.

Unsubscribe

Forwarded email? Subscribe and get your own copy.

Subscribe