Get Out of the Building

This talk is based on two real projects.

The demo application contains the techology stack and all concepts which were learned in these projects.

https://github.com/zutherb/AppStash/

Fork me on GitHub

Innovation =
Idea + Product + Customer Usage

DIN SPEC 77555-1:2013-09 Innovation Management - Part 1: Innovation Management System

Be faster than your competitors

Survival of the fittest

Continuous Improvement

How can we increase sales?

Mike Tyson

Everyone has a plan until they get punched in the face.

A/B Testing

Conversion

  • act of converting site visitors into paying customers
  • proportion of visits to a website which take action to go beyond a website visit

FeatureToggle

public class TopSellerRecommendationPanel extends AbstractShopBasePanel {

    @SpringBean
    private FeatureToogleBean featureToogleBean;

    ...

    @Override
    protected void onConfigure() {
      super.onConfigure();
      setVisible(featureToogleBean.isTopSellerFeatureEnabled());
    }

    ...

}

Architecture

What have we done?

How does it work?

Disadvantages with the way we develop software

  • Development:
    • Long feature development cycles
    • Long feedback times
    • Long build time
    • Strange behavior after changes
    • Application scalability
  • Product Management:
    • Long time to market
    • A/B testing difficult to achieve
    • Scalability of workload

How can we build software smarter?

Microservice

  • fits in one brain,
  • designed for replaceability,
  • autonomy (organisation & technology)

Microservice Taxonomy

Online Shop - Use cases

Online Shop - Migration

Flexibility

Improve feedback times

Scalability

Challenges of Microservices

  • Require integration.
  • Require a multi deployment pipeline.
  • Require automation of deployment and configuration.
  • Require logging and monitoring.

Microservice - Communication

Adrian Cockcroft

if every service has to be updated at the same time it’s not loosely coupled

Postel’s Law (1980)

RFC 761 (Transmission Control Protocol)

be conservative in what you do, be liberal in what you accept from others

Postel’s Law

{
        firstname: "Bernd",
        lastname: "Zuther",
        street: "Elsenheimerstraße 55a",
        city: "München",
        zip: 80687
}

Postel’s Law

{
        firstname: "Bernd",
        lastname: "Zuther",
        birthday: "1983/08/15",
        street: "Elsenheimerstraße 55a",
        city: "München",
        zip: 80687
}

Postel’s Law

{
        firstname: "Bernd",
        lastname: "Zuther",
        birthday: "1983/08/15",
        addresses : [{
          street: "Elsenheimerstraße 55a",
          city: "München",
          zip: 80687,
          type: "WORK"
        }]
}

Postel’s Law

{
        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"
        }]
}

Alternatives

  • URL:
    • simply whack the API version into the URL, e.g. https://shop/api/v2/cart/all
  • Custom request header:
    • same URL as before but add a header “api-version: 2”
  • Accept header:
    • modify accept header to specify the version, e.g. “Accept: application/vnd.cart.v2+json”

Continuous Delivery

How we can deliver faster?

Multi Deployment Pipeline

Improve Build Times

Deployments get more complex

Deployment Overview

How can we package and describe infrastructure of our products?

Kubernetes - Cluster Management

Question

What is most critical piece of infrastructure?

Icinga / Nagios

Availability - Big Data for DevOps

Availability - Big Data for DevOps

  • Mean Time To Failure (MTTF)
  • Mean Time To Recover (MTTR)

Big Data

Analysis Failures - Big Data for DevOps

Research Customers - Big Data for POs

Research Customers - Big Data for POs

Experiment with your customers!

Work Smarter not Harder

Summary

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
Microservices do not guarantee more conversion!
You need to run experiments with your customers!

<Thank You!>

Links

Links

Links

Images

Images