Tech & Work World
How Microservices Fixes the Slow Train Problem
I write little columns for the internal Pivotal newsletter we have sometimes. Here’s one that’s about to go out.
The ideas of “dependencies” and “coupling” are important touch points for understanding and conveying the software delivery benefits of a microservices approach to architecture.
“Coupling” between services means that changes to one service have a big impact on another service. Coupling is considered bad in software architecture. Among other reasons, strong coupling usually means that each service can only be released as “fast” as the slowest changing service. For example, you might have an identity service and a reservation lookup service. Let’s say the reservation service can be updated weekly – the team working on it is fast! But, the identity service releases takes six months. Thus, the reservation service is forced to deliver on a six-month schedule.
Among other things, microservices remove the release cadence dependency. The goal is to allow each service to evolve as fast as makes sense for the business. Of course, there are some “new problems” to address:
- Ensuring backward API compatibility is a good idea. If we remove or change parts of identity services’ API and don’t change the reservation system, things break. Thus, it’s good to slowly remove functionality (or never do that!) with lots of testing, with the ability to rollback changes if/when things go haywire in production.
- Services should be able to isolate failures in order to “quarantine” errors in other services. If there’s an error in the identity service in production, we’d like the reservation service to gracefully fail. Operations patterns like the circuit breaker included in Spring Cloud, help manage these types of operational complexities.
Another benefit of decoupling services comes from shorter release cycles. The longer you wait to release code, the more code you’ll bundle into a release. Six months worth of code, across multiple services is a lot. When errors occur in production – and they will! – finding bugs in this ball of yarn will be much harder than finding the bad code in, say, a week’s worth of code.
Think of it as train tracks. If five tracks all converge at one point, a problem on one of the tracks can cause confusion and delay for the other trains’ schedules—they’re strongly coupled. If each of the five tracks operates on its own schedule without having to converge, then of course there is no cascading schedule problem.
New Pivotal Cloud Foundry Release – a $100m/year business
Pivotal Cloud Foundry 1.6 – there’s a new version of the product I work on (well, not coding, but you know, in my capacity of whatever it is I do). Check out my quick summary of what’s in it and, from the dormant analyst in me, an attempt to write-up the customer momentum we have.
I notice that most coverage of Pivotal doesn’t really focus on the business side of things, which is going excellent – like, we make real money and all that! Other than being nifty, I like that aspect because it means people (“customers”) find our work actually valuable enough to pay for.
If you’re interested in more “market talk,” check out the podcast I did with James Watters on the topic, GM of the business.
And, here’s some more coverage of Pivotal Cloud Foundry 1.6
Shameless Self Promotion
- AutomaCon 2015: Nordstrom’s Infrastructure as Code Journey – good stuff coming out the retail sector recently.
- 8 surprising facts about real Docker adoption – Datadog – Run on 6% of the hosts DataDog monitors, n=7,000. “At companies that adopt Docker, containers have an average lifespan of 3 days, while across all companies, traditional and cloud-based VMs have an average lifespan of 12 days.”
- The Future of News Is Not An Article – Just need that part about how you get he money.
- The Power, Patterns, and Pains of Microservices – The Power, Patterns, and Pains of Microservices – DZone Java
- Best Buy CEO Hubert Joly: 7 Leadership Tips For A Corporate Turnaround – these things are usually cheesy, but this one is a-OK.
- The Power of People in Digital Banking Transformation – “Banks don’t need a head of digital—that’s the CEO.”
- Enterprise Software Co Atlassian Files IPO On Sales Of $320M, Net Income Of $6.8M In 2015
- Del Monte Foods set up a brand new, cloud-only infrastructure in less than a year – ‘Weaver also pointed out how traditional day-to-day responsibility and efforts related to deploying, maintaining and upgrading the IT infrastructure to support an on-premises deployment “literally disappears.”‘
- IBM Design profile in NY Times – “The recruiting pitch made by Mr. Gilbert and his colleagues has been essentially twofold: First, you can make a difference in socially important fields because IBM’s technology plays a crucial role in health care, energy, transportation, water and even agriculture. Second, you can be part of a groundbreaking effort to apply design thinking in business.”
- Bechdel test – “…asks whether a work of fiction features at least two women who talk to each other about something other than a man. The requirement that the two women must be named is sometimes added.”
- Legacy Application Strangulation : Case Studies – one of the more interesting take-aways is that you’re looking at 1-2 years to complete, if not more. Slow and steady.
- No One Has Time to Tell You How to Do Your Job – Good one.
- Citrix to spin off GoTo, focus on enterprise, cut 1,000 jobs – Strategy wise, Citrix is a fascinating company. We’ll see what happens.
Fun & IRL
I that steak at Roast in Detroit. I think it might be the best steak I’ve ever had. Would eat again, many times.