-
Bernd Zuther
Everyone has a plan until they get punched in the face.
public class TopSellerRecommendationPanel extends AbstractShopBasePanel {
@SpringBean
private FeatureToogleBean featureToogleBean;
...
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(featureToogleBean.isTopSellerFeatureEnabled());
}
...
}
if every service has to be updated at the same time it’s not loosely coupled
be conservative in what you do, be liberal in what you accept from others
{
firstname: "Bernd",
lastname: "Zuther",
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687
}
{
firstname: "Bernd",
lastname: "Zuther",
birthday: "1983/08/15",
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687
}
{
firstname: "Bernd",
lastname: "Zuther",
birthday: "1983/08/15",
addresses : [{
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687,
type: "WORK"
}]
}
{
firstname: "Bernd",
lastname: "Zuther",
birthday: "1983/08/15",
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687,
addresses : [{
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687,
type: "WORK"
}]
}
bz@cc $ docker build -t zutherb/product-service . bz@cc $ docker push zutherb/product-service bz@cc $ docker pull zutherb/product-service bz@cc $ docker run zutherb/product-service bz@cc $ docker ps CONTAINER ID IMAGE COMMAND CREATED 87bb5524067d zutherb/product-service:latest "/product-0.6/bin/pr 14 seconds
MDC.put("correlationId", "A8FFA290");
Logger logger = LoggerFactory.getLogger(SimpleMDC.class);
logger.info("Create Order");
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout>
<Pattern>[%X{correlationId}] - %m%n</Pattern>
</layout>
</appender>
| Pro | Needs |
|---|---|
| supports A/B testing | monitoring |
| effective technologies | centralised logging |
| solution orientation | fully automated deployment pipeline |
| incremental migration | cluster management |
| organisation must be ready |