Development

Product Management

Build Measure Learn Cycle

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());
    }

    ...

}

Disadvantage of a Monolith

  • Reduction of development speed
  • Increase of turnaround times
  • Increase of build time
  • Unforeseen behavior after changes
  • Increase of time to market
  • A/B testing of process changes nearly impossible
  • Scalability (e.g. application and teams)

Functionality / Data

Microservice Architecture

Unix Pipeline (1973)

vagrant@app-server-node-4:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  29640  4300 ?        Ss   08:38   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    08:38   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    08:38   0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   08:38   0:00 [kworker/0:0H]
...
vagrant@app-server-node-4:~$ ps aux | grep java
root      1827  1.4  7.2 2458576 149452 ?      Sl   08:39   8:26 java -classpath
/usr/share/shop/product/lib/product-microservice-0.5.5.jar:/usr/share/shop/produ
ct/lib/scala-library-2.10.3.jar:/usr/share/shop/product/lib/akka-actor_2.10-2.2.
4.jar:/usr/share/shop/product/lib/spray-can-1.2.1.jar:/usr/share/shop/product/li
...
vagrant@app-server-node-4:~$ ps aux | grep java | wc -l
6

Service-Oriented Architecture (SOA / 1996)

  • SOA is an architectural style that supports service-orientation.
  • Service-orientation is a way of thinking in terms of services.
  • A service:
    • Is a logical representation of a repeatable business activity
      (e.g., submit order)
    • Is self-contained
    • May be composed of other services
    • Is a “black box” to consumers of the service

SOA taxonomy

Differences to SOA

  • Lightweight infrastructure and protocols (e.g. REST)
  • Greater flexibility of architecture (e.g. can contain GUI)
  • Managed as products, with their own lifecycle and delivery
  • Deployed as processes (Unix packages or Container)

Online Shop - Use cases

Online Shop - Migration

Challenges of Microservices

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

Leavitt - Communication Structure

Type Star Chain Circle Complete Structure
 
centralization high medium low very low
communication low medium much very much
controllability much medium low very low

Conway's Law

Rest Communication

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

Rest Communication

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

Rest Communication

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

Golden Rules of Continuous Delivery

  • Don’t break your Customer
  • Don’t break the Code Base, Builds, Tests, and Production
  • Don’t break the Delivery Flow

Versionless Rest Communication

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

Multi Deployment Pipeline

Deployment

Unix Repository

Cluster Management

Learn from your customers

Summary

Pro Needs
better A/B testing monitoring
effective technologies centralised logging
solution orientation fully automated deployment pipeline
incremental migration cluster management
Microservices do not guarantee more conversion!
You need to run experiments with our customers!

<Thank You!>

Links

Links

Images