SlideShare a Scribd company logo
Weeding your micro
service landscape
JCON Europe 2024
©2024 Moderne, Inc. 2
©2024 Moderne, Inc. 3
©2024 Moderne, Inc. 4
Only see current state
Copies of copies of copies
Similarities show common origin
Differences hint at diverging lineage
Patterns in biology
©2024 Moderne, Inc. 5
Only see current state
Copies of copies of copies
Similarities show common origin
Differences hint at diverging lineage
Patterns in software engineering
©2024 Moderne, Inc. 6
CI & deployments are conserved
Hard to survive if you can’t deploy
Database drivers & access co-evolve
Controller endpoints highly variable
Adapt to new purpose
Evolutionary drift
Differences without purpose
Experimentation
Deliberate mutations
Patterns in software engineering
©2024 Moderne, Inc. 7
Why should you care?
©2024 Moderne, Inc. 8
Easy switch between projects
Invest in tooling
1% improvement X projects affected
Maximum impact
Standardization is good
©2024 Moderne, Inc. 9
Helps you evolve
New techniques, libraries,
frameworks, features
Promote successful experiments
Learn from failure
Don’t get stuck in past
Experimentation is good
©2024 Moderne, Inc. 10
Unintentional changes
serve no purpose
Difficult to switch between projects
Hinders innovation
Less effective applying broad changes
Drift is bad
©2024 Moderne, Inc. 11
©2024 Moderne, Inc. 12
A proposed fix
©2024 Moderne, Inc. 13
Who here has heard of OpenRewrite?
©2024 Moderne, Inc. 14
Who here has used OpenRewrite?
©2024 Moderne, Inc. 15
Who here has heard of Moderne?
©2024 Moderne, Inc. 16
Core technology concepts
Lossless Semantic Tree (LST) full-fidelity
representation of source code with type
attribution and formatting
OpenRewrite ecosystem of
deterministic recipes with >2000
recipes available out-of-the box
+ many more!
DATA PROGRAMS
©2024 Moderne, Inc.
17
What real, automated code remediation looks like
No longer define an
expected exception on
the ‘@Test’ annotation
Auto-refactoring relocates
the original contents into a
lambda argument in an
‘assertThrows’ call and
formats per existing code
style
EXAMPLE: JUnit 4 to 5 migration: “assertThrows” call added to the test’s method body
Accurate code changes that match the local code style across 1,000s of repositories.
©2024 Moderne, Inc. 18
Manage technical debt at scale
Examples
Security vulnerability
remediation across a
growing attack surface
Eradicate OWASP Top 10 vulnerabilities
immediately across a codebase with in-depth
code analysis and auto-repair. Upgrade
vulnerable dependencies automatically.
Software
architect
Software migration
engineering coordinating
among repositories
Migrate from Java 8 to 11 to Java 17 to Java 21
in all relevant repositories and infrastructure.
Eliminate vendor lock-in by automating
technology changes—for example, from one
database to another.
Security
engineer
Improving code quality
and compliance
across an organization
Repair SAST issues automatically (reported
by SonarQube, FindBugs, HP Fortify, etc.).
Keeping code clean all the time makes it
easier to work with and maintain.
Developer
Developers drive the
automation to
analyze and fix
source code across
multiple repos.
Moderne replaces
insurmountable
hours of manual
work—making 100%
accurate code
changes that are
easy to review and
commit.
What Moderne does
©2024 Moderne, Inc. 19
Look at our landscape
©2024 Moderne, Inc.
Outdated versions
of frameworks & Java
Abandoned libraries
beyond your control
Time to move away
from the library (not the company)
Changed coordinates
Codehaus, Jakarta
Vulnerable dependencies
20
Looking ahead, not looking back
Dependency drift
©2024 Moderne, Inc. 21
Demo IntelliJ
©2024 Moderne, Inc. 22
Missing or outdated wrappers
Outdated or unversioned plugins
Dead, or http:// repositories
Prefixless expressions ${artifactId}
POM code convention
Enable parallelization
Add Develocity extension
Build tools
Missing or outdated wrappers
Outdated or unversioned plugins
Dead, or http:// repositories
14+ ways for dependency versions
Enable build cache
Enable parallelization
Add Develocity plugin
©2024 Moderne, Inc. 23
Demo Moderne Platform
©2024 Moderne, Inc. 24
Switch base images
Additional scanners
Automated code checks
Graceful shutdown
/health, /liveness, /readiness
apiVersion: extensions/v1beta1
Capture metrics
Set resource limits
Tons of quick wins
CI & deployments
©2024 Moderne, Inc. 25
Apply formatter
.gitignore files
Clean up .DS_Store & .idea files
Resolve static analysis issues
Phase out old feature flags
Small sources of friction
General clean ups
©2024 Moderne, Inc. 26
Demo Moderne CLI
©2024 Moderne, Inc. 27
Moderne scales OpenRewrite automation
Single-repository mode Multi-repository mode
OpenRewrite
OSS Project
Serialize LSTs
to disk
OpenRewrite
Gradle Plugin
OpenRewrite
Maven Plugin
Spring Boot
Migrator
Amazon Q
Code
Transformation
JetBrains
OpenRewrite
Plugin
Microsoft
VSCode Plugin
Moderne
Platform
Moderne CLI
Single-
tenant
SaaS
On-prem
Moderne
proprietary IP
Moderne DX
Air-gapped
service
Shared OSS recipe ecosystem
Codemods, linters, & other refactoring tech
©2024 Moderne, Inc. 28
Collaborating across the enterprise codebase
Moderne DevCenter to always know the
state of your code and take action.
Code visualizations for
understanding your code
like never before.
Code analysis and
recipe
recommendations
Activity
tracking and
coordination
Risk profile of
vulnerabilities plus
available fixes
©2024 Moderne, Inc. 29
Standardize to go fast
Experiment to evolve
Reflect, learn & nurture
Root out to stay healthy
Automate what you can
Takeaways
©2024 Moderne, Inc. 30
Your own recipe library
github.com/moderneinc/rewrite-recipe-starter
docs.moderne.io/user-documentation/
workshops/recipe-authoring
©2024 Moderne, Inc. 31
Where to learn more
docs.openrewrite.org
github.com/openrewrite
youtube.com/@moderne-auto-remediation
moderne.io
©2024 Moderne, Inc. 32
Continuously build a better and more secure codebase.
Danke sehr!

More Related Content

Similar to Weeding your micro service landscape.pdf

VMworld 2015: Container Orchestration with the SDDC
VMworld 2015: Container Orchestration with the SDDCVMworld 2015: Container Orchestration with the SDDC
VMworld 2015: Container Orchestration with the SDDC
VMworld
 
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD PipelinesCollision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
Amazon Web Services
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
Bill Duncan
 
Enterprise DevOps and the Modern Mainframe Webcast Presentation
Enterprise DevOps and the Modern Mainframe Webcast PresentationEnterprise DevOps and the Modern Mainframe Webcast Presentation
Enterprise DevOps and the Modern Mainframe Webcast Presentation
Compuware
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
ghodgkinson
 
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
DigitalOcean
 
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Ashnikbiz
 
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Docker, Inc.
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meeting
Sergii Shmarkatiuk
 
Deploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragilityDeploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragility
Spyros Lambrinidis
 
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit sessionDevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
Sanjeev Sharma
 
Erik Baardse - Bringing Agility to Traditional application by docker
Erik Baardse - Bringing Agility to Traditional application by dockerErik Baardse - Bringing Agility to Traditional application by docker
Erik Baardse - Bringing Agility to Traditional application by docker
Agile Impact Conference
 
Modernize Traditional Applications with Docker EE
Modernize Traditional Applications with Docker EEModernize Traditional Applications with Docker EE
Modernize Traditional Applications with Docker EE
Riedwaan Bassadien
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
IBM UrbanCode Products
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
Siva Rama Krishna Chunduru
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
Heiswayi Nrird
 
DevOps Case Studies
DevOps Case StudiesDevOps Case Studies
DevOps Case Studies
WhiteHedge Technologies Inc.
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
Weaveworks
 
Curiosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CDCuriosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity Software Ireland
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
Davide Veronese
 

Similar to Weeding your micro service landscape.pdf (20)

VMworld 2015: Container Orchestration with the SDDC
VMworld 2015: Container Orchestration with the SDDCVMworld 2015: Container Orchestration with the SDDC
VMworld 2015: Container Orchestration with the SDDC
 
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD PipelinesCollision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
Enterprise DevOps and the Modern Mainframe Webcast Presentation
Enterprise DevOps and the Modern Mainframe Webcast PresentationEnterprise DevOps and the Modern Mainframe Webcast Presentation
Enterprise DevOps and the Modern Mainframe Webcast Presentation
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
 
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
 
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot Chanana
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meeting
 
Deploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragilityDeploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragility
 
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit sessionDevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
 
Erik Baardse - Bringing Agility to Traditional application by docker
Erik Baardse - Bringing Agility to Traditional application by dockerErik Baardse - Bringing Agility to Traditional application by docker
Erik Baardse - Bringing Agility to Traditional application by docker
 
Modernize Traditional Applications with Docker EE
Modernize Traditional Applications with Docker EEModernize Traditional Applications with Docker EE
Modernize Traditional Applications with Docker EE
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
DevOps Case Studies
DevOps Case StudiesDevOps Case Studies
DevOps Case Studies
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
 
Curiosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CDCuriosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CD
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
 

Recently uploaded

Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 

Recently uploaded (20)

Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 

Weeding your micro service landscape.pdf

  • 1. Weeding your micro service landscape JCON Europe 2024
  • 4. ©2024 Moderne, Inc. 4 Only see current state Copies of copies of copies Similarities show common origin Differences hint at diverging lineage Patterns in biology
  • 5. ©2024 Moderne, Inc. 5 Only see current state Copies of copies of copies Similarities show common origin Differences hint at diverging lineage Patterns in software engineering
  • 6. ©2024 Moderne, Inc. 6 CI & deployments are conserved Hard to survive if you can’t deploy Database drivers & access co-evolve Controller endpoints highly variable Adapt to new purpose Evolutionary drift Differences without purpose Experimentation Deliberate mutations Patterns in software engineering
  • 7. ©2024 Moderne, Inc. 7 Why should you care?
  • 8. ©2024 Moderne, Inc. 8 Easy switch between projects Invest in tooling 1% improvement X projects affected Maximum impact Standardization is good
  • 9. ©2024 Moderne, Inc. 9 Helps you evolve New techniques, libraries, frameworks, features Promote successful experiments Learn from failure Don’t get stuck in past Experimentation is good
  • 10. ©2024 Moderne, Inc. 10 Unintentional changes serve no purpose Difficult to switch between projects Hinders innovation Less effective applying broad changes Drift is bad
  • 12. ©2024 Moderne, Inc. 12 A proposed fix
  • 13. ©2024 Moderne, Inc. 13 Who here has heard of OpenRewrite?
  • 14. ©2024 Moderne, Inc. 14 Who here has used OpenRewrite?
  • 15. ©2024 Moderne, Inc. 15 Who here has heard of Moderne?
  • 16. ©2024 Moderne, Inc. 16 Core technology concepts Lossless Semantic Tree (LST) full-fidelity representation of source code with type attribution and formatting OpenRewrite ecosystem of deterministic recipes with >2000 recipes available out-of-the box + many more! DATA PROGRAMS
  • 17. ©2024 Moderne, Inc. 17 What real, automated code remediation looks like No longer define an expected exception on the ‘@Test’ annotation Auto-refactoring relocates the original contents into a lambda argument in an ‘assertThrows’ call and formats per existing code style EXAMPLE: JUnit 4 to 5 migration: “assertThrows” call added to the test’s method body Accurate code changes that match the local code style across 1,000s of repositories.
  • 18. ©2024 Moderne, Inc. 18 Manage technical debt at scale Examples Security vulnerability remediation across a growing attack surface Eradicate OWASP Top 10 vulnerabilities immediately across a codebase with in-depth code analysis and auto-repair. Upgrade vulnerable dependencies automatically. Software architect Software migration engineering coordinating among repositories Migrate from Java 8 to 11 to Java 17 to Java 21 in all relevant repositories and infrastructure. Eliminate vendor lock-in by automating technology changes—for example, from one database to another. Security engineer Improving code quality and compliance across an organization Repair SAST issues automatically (reported by SonarQube, FindBugs, HP Fortify, etc.). Keeping code clean all the time makes it easier to work with and maintain. Developer Developers drive the automation to analyze and fix source code across multiple repos. Moderne replaces insurmountable hours of manual work—making 100% accurate code changes that are easy to review and commit. What Moderne does
  • 19. ©2024 Moderne, Inc. 19 Look at our landscape
  • 20. ©2024 Moderne, Inc. Outdated versions of frameworks & Java Abandoned libraries beyond your control Time to move away from the library (not the company) Changed coordinates Codehaus, Jakarta Vulnerable dependencies 20 Looking ahead, not looking back Dependency drift
  • 21. ©2024 Moderne, Inc. 21 Demo IntelliJ
  • 22. ©2024 Moderne, Inc. 22 Missing or outdated wrappers Outdated or unversioned plugins Dead, or http:// repositories Prefixless expressions ${artifactId} POM code convention Enable parallelization Add Develocity extension Build tools Missing or outdated wrappers Outdated or unversioned plugins Dead, or http:// repositories 14+ ways for dependency versions Enable build cache Enable parallelization Add Develocity plugin
  • 23. ©2024 Moderne, Inc. 23 Demo Moderne Platform
  • 24. ©2024 Moderne, Inc. 24 Switch base images Additional scanners Automated code checks Graceful shutdown /health, /liveness, /readiness apiVersion: extensions/v1beta1 Capture metrics Set resource limits Tons of quick wins CI & deployments
  • 25. ©2024 Moderne, Inc. 25 Apply formatter .gitignore files Clean up .DS_Store & .idea files Resolve static analysis issues Phase out old feature flags Small sources of friction General clean ups
  • 26. ©2024 Moderne, Inc. 26 Demo Moderne CLI
  • 27. ©2024 Moderne, Inc. 27 Moderne scales OpenRewrite automation Single-repository mode Multi-repository mode OpenRewrite OSS Project Serialize LSTs to disk OpenRewrite Gradle Plugin OpenRewrite Maven Plugin Spring Boot Migrator Amazon Q Code Transformation JetBrains OpenRewrite Plugin Microsoft VSCode Plugin Moderne Platform Moderne CLI Single- tenant SaaS On-prem Moderne proprietary IP Moderne DX Air-gapped service Shared OSS recipe ecosystem Codemods, linters, & other refactoring tech
  • 28. ©2024 Moderne, Inc. 28 Collaborating across the enterprise codebase Moderne DevCenter to always know the state of your code and take action. Code visualizations for understanding your code like never before. Code analysis and recipe recommendations Activity tracking and coordination Risk profile of vulnerabilities plus available fixes
  • 29. ©2024 Moderne, Inc. 29 Standardize to go fast Experiment to evolve Reflect, learn & nurture Root out to stay healthy Automate what you can Takeaways
  • 30. ©2024 Moderne, Inc. 30 Your own recipe library github.com/moderneinc/rewrite-recipe-starter docs.moderne.io/user-documentation/ workshops/recipe-authoring
  • 31. ©2024 Moderne, Inc. 31 Where to learn more docs.openrewrite.org github.com/openrewrite youtube.com/@moderne-auto-remediation moderne.io
  • 32. ©2024 Moderne, Inc. 32 Continuously build a better and more secure codebase. Danke sehr!