In our sixteenth issue of the Architects’ Newsletter we are returning to the topic of microservices. In the year since we last looked at the topic it really has become mainstream, and we consider it as having "crossed the chasm" into early majority status. Inevitably, as more and more teams are adopting this style of architecture, each organisation brings its own culture and perspective on the technology adoption curve. Understanding all the emerging microservice patterns, contraindications, and technologies is therefore essential for a software architect.
News
The Microservices Workflow Automation Cheat Sheet
In a recent Medium post Bernd Rücker provided guidance on the core architecture decisions required for a microservices architecture that embraces workflow automation. He argues that most of the theory in this area is a "shade of gray", and so he presents certain aspects of this approach using a concrete business example for readers to follow along with.
In his example, he examines the following aspects:
- Track or manage -- choreography or orchestration?
- Three communication alternatives -- asynchronous communication using commands and events, RPC-like point-to-point communication, and work distribution using the workflow engine
- Central vs. decentralized workflow engine
- Ownership of workflow models
Decoupling in the Cloud Era: Building Cloud Native Microservices with Spring Cloud Azure
In this recent InfoQ article, Zhongwei Zhu states that "cloud native" applications should exploit the full advantages of cloud, rather than simply "lifting and shifting" into the cloud, and that microservices go with cloud native hand in hand. He argues that centralized config, services discovery, asynchronous message driven and distributed tracing are essential microservice infrastructure.
Spring Cloud provides common microservice patterns and abstractions without locking a team into a vendor-specific implementation. Spring Cloud Azure follows abstractions provided by Spring Cloud, and provides seamless integration with Azure services.
Microservice Architecture at Medium
At Medium, the technical stack started with a monolithic Node.js app back in 2012, discussed by Xiao Ma in a recent Medium post, but as the system became more complex and the team grew, they moved to a microservice architecture in early 2018. Ma, chief architect at Medium, shared his experiences of doing this effectively, and also provided details on how the organisation has avoided various "microservice syndromes".
So far, he is positive about the move to microservices: "it dramatically increased the development productivity, allowed us to think big and make substantial product improvement, and unlocked the engineering team to safely test new technologies."
Apache Releases TomEE 7.1 with Support for Java 8 and MicroProfile 1.2
The Apache TomEE community has released TomEE 7.1, a significant upgrade to the Java EE application service that features support for Java SE 8 and Eclipse MicroProfile 1.2. The MicroProfile framework is targeted at engineers looking to leverage enterprise Java within a microservices architecture.
TomEE 7.1 serves as a gateway release for TomEE 8 that will be compliant with Java EE 8 / JakartaEE and MicroProfile 1.3. David Blevins, founder and CEO of Tomitribe, also spoke to InfoQ about this latest release.
Google's Apigee API Platform Enhanced with API Monitoring and "Extensions" to Connect GCP Services
Google Cloud's "full lifecycle" API management platform, Apigee, provides customers control over and visibility into the API's that connect applications and data across their enterprises and clouds. Recently, Google announced the general availability of various new Apigee capabilities, such as Apigee API monitoring, Apigee extensions, and Apigee hosted targets.
The announcement blog post states that with the new monitoring capability customers can now "accurately and quickly identify the root-cause of API issues" based on contextual insights into API performance - whether in a developer application, an API proxy, or a backend (micro)service.
Microsoft Updates Azure Event Grid with Event Domains, Advanced Filtering Features and More
With Azure Event Grid, organisations can manage all of their events in one place in the Azure cloud. Recently, Microsoft announced enhancements to this service with two new features, advanced filters, and Event Domains. The team responsible for Event Grid has been working to improve the developer experience, adding GA support for Apache Kafka, and has made Event Grid available in more regions.
Case Study
The Human Side of Microservices
A microservices architecture is a game changer for team communication, not a purely technical solution argued Armağan Amcalar, head of software engineering at unu GmbH, as he spoke about the human side of microservices at Codemotion Berlin 2018. He continued by stating that if different teams don't have stable, direct communication channels, the software they produce will suffer.
In today's world of distributed computing and microservices, a clean software architecture is crucial for keeping a multitude of moving parts under control. This is best achieved through a coherent understanding of the whole ecosystem, and software architecture is the key to it. The five key properties crucial for a successful microservices implementation are zero-configuration, auto-discovery, high redundancy, self-healing, and fault tolerance.
Conway's Law emphasizes the communication structures of an organization and relates these structures to the structures of the systems they design. Microservices is also all about communication patterns of different pieces of software, said Amcalar. Companies comprised of isolated teams have to use architectures that utilize isolated services.
Teams would do best if they acknowledged the reason why they want to adopt microservices. While there are benefits like granular scaling abilities, it’s mostly about coordinating independent moving pieces.
Ultimately this is a choice that stems more from the way the teams want to work, and much less from the technical perspective, said Amcalar. No one picks microservices because it's the easiest or the most effective way to build software; they choose it for psychological reasons, he said. The teams that are early to embrace this fact are more likely to succeed with microservices. They will know how and where to pivot when the time comes.
A more comprehensive version of this article, written by Ben Linders and including a Q&A with Armağan Amcalar, can be found on InfoQ.
To get notifications when InfoQ publishes content on this topic follow Microservices on InfoQ.
Missed a newsletter? You can find all of the previous issues on InfoQ.
This edition of The Software Architects' Newsletter is brought to you by:
|
Distributed Tracing: Pinpointing the Root-Cause of Microservices Latency
In the last 20 years applications have become far more powerful and complex which makes it much harder to measure and explain their performance – especially in real time. Despite that, the way that we reason about and measure performance has barely changed over the years.
Traditional methods of reasoning about software performance, such as averages or simple percentiles to represent latency are no longer sufficient. Modern tools must identify, triage, and explain latency issues, as organizations adopt microservices. Learn how you can utilize distributed tracing and latency histograms to pinpoint the root cause of performance issues.
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.
Forwarded email? Subscribe and get your own copy.
|