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