Devoxx PL 2022

Quick & Dirty (&Right)

  • Tech debt == financial debt; There is this concept of good financial debt
  • No credit cards == low credit score
  • Personal note: "A person can quit == get rid of a tech debt. In real life this is not possible"
  • Deliberate decisions: for example using a credit card. Debt == value sooner
  • Plan to pay off !!!

 

Quick & Dirty (&Right)

  • We life in the "throw-away code" age
  • Example project with C++, designed to be there for > 70 years, simply replaced
  • We upgrade tools just to be cool
  • NEST is gone
  • Unit tests is more close to AGILE than clean code - my fav :) 
  • OODA

Quick & Dirty (&Right)

Quick & Dirty (&Right)

Quick & Dirty (&Right)

Quick & Dirty (&Right)

Context is king

  • Doamne fereste :)
  • I learned how to do a very very bad presentation

Diagrams as code

  • https://structurizr.com/
  • C4 model
  • Problems: no rules, missing automation
  • https://structurizr.com/help/lite - as Docker image
  • Render tool independent!!!
  • Content != presentation
  • GitHub will support Mermaid diagrams within Markdown fields and files -> https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/

Team topologies

  • value stream mapping
  • https://teamtopologies.com/

Team topologies

Security and service mesh

  • Trust is exploitable
  • KUMA (by https://konghq.com/) - another service mesh like Istio; Platform agnostic.
  • https://github.com/kumahq/kuma
  • mTLS - CP automates it 

Security and service mesh

Security and service mesh

Security and service mesh

Security and service mesh

We had fun :) 

Quarkus

  • Continuation
  • Dev mode...nice :) 
  • Continuous testing
  • Dev services
  • It uses Vert.x
  • Hibernate reactive - Panache
  • https://quarkus.io/guides/hibernate-orm-panache

Istio lab

  • Envoy proxy (C++): api based 
  • K8S service == SD because it provides you a ClusterIP
  • DNS == SD; Not because this...DNS can hold multiple records for the same domain name. DNS can return the list of IP addresses for the same domain name.
  • SD promoted by Consul, Eureka etc is not SD :)
  • https://en.wikipedia.org/wiki/Service_discovery
  • Load balancer != SD (this is just half of a K8S Service)
  • Blue/green deployment != rollout upgrades

Istio lab

  • https://github.com/boredabdel/istio-workshop-gcp

OptaPlanner

  • Solves problems like: vechile routing, employee rostering, task assignment
  • https://en.wikipedia.org/wiki/Integer_programming
  • https://github.com/dupliaka/2022-devoxx-poland-school-timetabling
  • Score function must be scalable !!!
  • If we also define constraints; then the score function can be calculated incrementally
  • Better than OR Tools -> https://developers.google.com/optimization
  • Do not work well for "percentages"
  • Question about airplanes routing :) 
  • https://www.optaplanner.org/

Service Mesh

  • From CPU to Network communication
  • Move communication concerns outside app
  • Idea K8s plugin :) !
  • IP tables rules that forwards traffic to proxy == The pod cannot be unintentionally called !!!
  • Proxy calls directly == not load balancing == that's why it is called mesh

Service Mesh

Service Mesh

Service Mesh

Service Mesh

Service Mesh

Service Mesh

Service Mesh

Service Mesh

  • Istio has a lot of features 
  • Debugging very hard -> big problems; took years to learn and master it

K8S operators

  • helm tests
  • helm create
  • resource policy keep
  • Operator == human interaction knowledge or SRE
  • Operator == K8S api extended
  • Backups ??!!

 

We had fun :)

We had fun :)

https://fearlesschangepatterns.com/

Devoxx PL 2022

By Bogdan Posa

Devoxx PL 2022

  • 339