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 SoftwareBill 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 meetingSergii 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

Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
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
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
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
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
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
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 

Recently uploaded (20)

Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
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
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
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
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
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
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 

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!