Building Microservices: Designing Fine-Grained Systems
Rate it:
Read between December 3 - December 3, 2015
2%
Flag icon
Eric Evans’s book Domain-Driven Design (Addison-Wesley) helped us understand the importance of representing the real world in our code,
2%
Flag icon
Alistair Cockburn’s concept of hexagonal architecture
3%
Flag icon
What Are Microservices? Microservices are small, autonomous services that work together.
3%
Flag icon
Small, and Focused on Doing One Thing Well
3%
Flag icon
Single Responsibility Principle, which states “Gather together those things that change for the same reason, and separate those things that change for different reasons.”
3%
Flag icon
Jon Eaves at RealEstate.com.au in Australia characterizes a microservice as something that could be rewritten in two weeks,
3%
Flag icon
how well the service aligns to team structures. If the codebase is too big to be managed by a small team, looking to break it down is very sensible.
4%
Flag icon
with microservices, we can build systems that handle the total failure of services and degrade functionality accordingly.
4%
Flag icon
smaller teams working on smaller codebases tend to be more productive.
5%
Flag icon
How often have you deleted more than a hundred lines of code in a single day and not worried too much about it?
5%
Flag icon
Service-oriented architecture (SOA)
5%
Flag icon
breaking down a codebase into multiple libraries.
5%
Flag icon
creating code for common tasks that aren’t specific to your business domain that you want to reuse across the organization,
5%
Flag icon
modular decomposition techniques
6%
Flag icon
We aren’t medical doctors or engineers, but nor are we plumbers or electricians. Instead, we fall into some middle ground, which makes it hard for society to understand us, or for us to understand where we fit.
6%
Flag icon
Architects and engineers have a rigor and discipline we could only dream of, and their importance in society is well understood.
6%
Flag icon
in the eyes of the law I am now a qualified architect and I should be held responsible if I get it wrong.”
6%
Flag icon
In the UK, for example, a minimum of seven years study is required
7%
Flag icon
I wouldn’t say that buildings and bridges never fall down, but they fall down much less than the number of times our programs will crash, making comparisons with engineers quite unfair.
7%
Flag icon
Our software isn’t constrained by the same physical rules that real architects or engineers have to deal with, and what we create is designed to flex and adapt and evolve with user requirements.
7%
Flag icon
Our requirements shift more rapidly than they do for people who design and build buildings
7%
Flag icon
The things we create are not fixed points in time. Once launched into production, our software will continue to evolve as the way it is used changes.
7%
Flag icon
we have to accept that once the software gets into the hands of our customers we will...
This highlight has been truncated due to consecutive passage length restrictions.
7%
Flag icon
focus on helping create a framework in which the right systems can emerge, and continue to grow as we learn more.
7%
Flag icon
we should think of our role more as town planners than architects for the built environment.
7%
Flag icon
The city changes over time. It shifts and evolves as its occupants use it in different ways, or as external forces shape it.
7%
Flag icon
our system doesn’t just accommodate users; it also accommodates developers and operations people who also have to work there,
7%
Flag icon
A town planner, just like an architect, also needs to know when his plan isn’t being followed.
7%
Flag icon
As architects, we need to worry much less about what happens inside the zone than what happens between the zones. That means we need to spend time thinking about how our services talk to each other, or ensuring that we can properly monitor the overall health of our system.
8%
Flag icon
“be worried about what happens between the boxes, and be liberal in what happens inside.”
8%
Flag icon
The Coding Architect
8%
Flag icon
I cannot emphasize how important it is for the architect to actually sit with the team! This is significantly more effective than having a call or just looking at her code.
8%
Flag icon
Strategic goals should speak to where your company is going, and how it sees itself as best making its customers happy.
8%
Flag icon
If you’re the person defining the company’s technical vision, this may mean you’ll need to spend more time with the nontechnical parts of your organization (or the business, as they are often called).
8%
Flag icon
Principles are rules you have made in order to align what you are doing to some larger goal,
8%
Flag icon
Heroku’s 12 Factors are a set of design principles structured around the goal of helping you create applications that work well on the Heroku platform.
8%
Flag icon
should be low level enough that any developer can understand them.
8%
Flag icon
Practices could include coding guidelines, the fact that all log data needs to be captured centrally, or that HTTP/REST is the standard integration style.
8%
Flag icon
if you support only CentOS, this will need to be reflected in your practices.
Diego Alonso Uribe Gamez
las practicas se tien que ver reflejadas en el trabajo
8%
Flag icon
You might decide to call the use of HTTP/REST a principle rather than a practice, for example. And that would be fine.
9%
Flag icon
Figure 2-1. A real-world example of principles and practices
9%
Flag icon
Ben Christensen from Netflix puts it, when we think about the bigger picture, “it needs to be a cohesive system made of many small parts with autonomous lifecycles but all coming together.”
9%
Flag icon
Diego Alonso Uribe Gamez
contratos entre las aplicaciones
9%
Flag icon
Monitoring
9%
Flag icon
Interfaces
9%
Flag icon
Architectural Safety
9%
Flag icon
If your circuit breakers rely on HTTP codes, and one service decides to send back 2XX codes for errors, or confuses 4XX codes with 5XX codes,
10%
Flag icon
What if, out of the box, the developers had most of the code in place to implement the core attributes that each service needs?
11%
Flag icon
Governance and Leading from the Center
11%
Flag icon
Normally, governance is a group activity. It could be an informal chat with a small enough team, or a more structured regular meeting with formal group membership for a larger scope.
« Prev 1