SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Building a Modern Enterprise SOA at LinkedIn
Agenda
 Building Code at LinkedIn
 Product Development with Multiproduct
 Build Automation with Gradle
 A Peek at the Future
©2013 LinkedIn Corporation. All Rights Reserved. 2
Building Code at LinkedIn
©2013 LinkedIn Corporation. All Rights Reserved. 3
In the beginning there was Network
 Single, relatively homogenous code base
– Build from source, little dependency management
 Java, Spring, Ant, …
 JavaScript, HTML, JSPs, CSS, …
 JARs, WARs, Jetty, Tomcat, …
©2013 LinkedIn Corporation. All Rights Reserved. 4
Then everything went exponential
Number of developers, programming languages, build
systems, frameworks, lines of code, servers, users, page views, …
… and pretty much everything else
©2013 LinkedIn Corporation. All Rights Reserved. 5
Hypergrowth isn’t all fun and games
 Acquisitions came in with their own technology and processes
 Releases became more and more painful
 Productivity and stability suffered
©2013 LinkedIn Corporation. All Rights Reserved. 7
Scaling a software development organization
 Requires sensible code and dependency management
– Source code APIs
– Service APIs
– Versioned dependencies
 Performance is king
– Iterative improvements
 Divide and conquer
– Split and isolate failures
©2013 LinkedIn Corporation. All Rights Reserved. 8
Code Isolation
Network Trunk Development
 All development in Network shifted to trunk
– No branches, no merging
 Continuous releases from trunk
– Deploy multiple times per day
 Work started on break up and clean up
– Migrating build logic to Gradle
©2013 LinkedIn Corporation. All Rights Reserved. 10
Product Development with Multiproduct
©2013 LinkedIn Corporation. All Rights Reserved.
Traditional Software Development
 Use a well-established technology stack
– Homogeneity => Simplicity
 To adopt a new technology:
– Requires “out of the box” thinking and effort
– Do a proof-of-concept implementation
– Present to decision makers to demonstrate ROI => get approval
 Slow-moving by design
– New technology integration expensive
– Top-down management decisions used as barrier
©2013 LinkedIn Corporation. All Rights Reserved. 12
LinkedIn Software Development
 We don’t ever want to be in the box
– Technical experimentation and diversity encouraged
– Living on the bleeding edge, often defining it
 The Need for Speed
– Pace of iteration
– Automation (the human is slow)
– Continuous delivery
 Build versus buy
©2013 LinkedIn Corporation. All Rights Reserved. 13
Chaos Theory
Multiproduct
 Toolset that is architected for a heterogeneous technology world
 Agnostic to version control, build system and programming stack
– Future-proof
 Abstracts common software tasks
– For example: “build”, “test”, “release”
 Provide a default implementation, allow users to override
– i.e. Gradle w/ LI plug-ins
©2013 LinkedIn Corporation. All Rights Reserved. 15
Key Concepts
 Elevate tooling from artifact to product level
 Metadata ties the tooling together
– Ivy
– Version and Build specification
 Pluggable implementation of subsystems
 Version management
 Continuous automated delivery
©2013 LinkedIn Corporation. All Rights Reserved. 16
©2013 LinkedIn Corporation. All Rights Reserved. 17
Source
Control
Build System Deployment
Version Management
 End-of-life dates
– Graceful deprecation and upgrades
 Push version upgrades to consumers
 Dependency Reports
– What products depends on me
– What products do I depend on
©2013 LinkedIn Corporation. All Rights Reserved. 18
Push My Upgrade
©2013 LinkedIn Corporation. All Rights Reserved. 19
Tracking Upgrades
©2013 LinkedIn Corporation. All Rights Reserved. 20
Continuous Delivery in Multiproduct
 Automated pipeline triggered on developer change
– No other developer action needed
 Publishing 10,000+ artifacts per day for 300+ products
– Mean time for a good commit: ~10 minutes
– Mean time counting failures: ~25 minutes
©2013 LinkedIn Corporation. All Rights Reserved. 21
Continuous Delivery
©2013 LinkedIn Corporation. All Rights Reserved. 22
©2013 LinkedIn Corporation. All Rights Reserved. 23
Build Automation with Gradle
©2013 LinkedIn Corporation. All Rights Reserved. 24
Why LinkedIn uses Gradle
 Dependency resolution engine
 Rich plug-in system w/ real programming language
– DSL has high learning curve, but powerful
 Visions align
– Automation
– Continuous delivery
©2013 LinkedIn Corporation. All Rights Reserved. 25
LinkedIn Gradle plug-ins
 Customize built-in plug-ins for LinkedIn’s environment
– i.e. Java, Scala, War, FindBugs, Cobertura
 Add custom artifact types
– For example database patches, static content, and Hadoop workflows
 Create metadata for publishing and deployment tooling to consume
 Elevate concepts from artifact to product level
©2013 LinkedIn Corporation. All Rights Reserved. 26
Dependency Graph powered by Gradle
©2013 LinkedIn Corporation. All Rights Reserved. 27
©2013 LinkedIn Corporation. All Rights Reserved. 28
End-of-life enforcement
Our own gradlew: ligradle
 Our own custom Gradle wrapper
 Provisions Gradle and plug-ins
– Allows each product to define versions it uses
 Provides lifecycle management for Gradle and plug-ins
– End-of-life
 Usage data
– Used to track usage and discover problems
©2013 LinkedIn Corporation. All Rights Reserved. 29
Usage Data
©2013 LinkedIn Corporation. All Rights Reserved. 30
Source vs Binary Dependencies
 Source offers incremental updates and flexibility  intra-product
 Binary offers stability and speed inter-product
There’s no right answer, but there are plenty of wrong answers!
©2013 LinkedIn Corporation. All Rights Reserved. 31
Network migration to Gradle
 3,600 build.xml files to convert
– Many of them with custom logic
 300 developers to train
 Performance targets
– 2x speed-up for clean builds
– 5x speed-up for incremental builds
©2013 LinkedIn Corporation. All Rights Reserved. 32
Proof of Concept
 Migrated 1,100 modules
 Tested single large build versus isolated
segments
– Single large build simpler
 Scale feasible
– Requires scalability and performance
work in Gradle core
©2013 LinkedIn Corporation. All Rights Reserved. 33
Gradle features required for migration
 Configuration on demand
– Only configure the task graph you need
 Refactored cache logic for performance
– Task history
– Dependency descriptors
 Candidate performance improvements
– Parallel configuration
– Daemon stores project model
– Daemon performs continuous up-to-date checks
©2013 LinkedIn Corporation. All Rights Reserved. 34
Daemon Heap Usage
©2013 LinkedIn Corporation. All Rights Reserved. 36
Project Timeline – 1 year
 Q1: Proof-of-concept and prep work
 Q2: Implementation 
 Q3: Roll-out
 Q4: Clean-up
©2013 LinkedIn Corporation. All Rights Reserved. 37
A Peek at the Future
©2013 LinkedIn Corporation. All Rights Reserved. 38
Gradle Features
 Faster
– Use the daemon effectively in development and CI
– Intra-project parallel execution
 More scalable
– Heap usage
 Ease of use
– IDE integration
©2013 LinkedIn Corporation. All Rights Reserved. 39
More Multiproduct Intelligence
 Analytics
– Common exceptions
– Usage and error patterns
 Verification suite
– CheckStyle, FindBugs and Cobertura
 Automation and Integration
 Ease of use
©2013 LinkedIn Corporation. All Rights Reserved. 40
Distributed Build Automation
 Distribute build and testing on a cluster
 Automatic provisioning
 Artifact sharing at scale
©2013 LinkedIn Corporation. All Rights Reserved. 41
©2013 LinkedIn Corporation. All Rights Reserved. 42

Weitere ähnliche Inhalte

Was ist angesagt?

Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015
Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015
Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015Darryl Nelson
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformRohit Kelapure
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283Global Knowledge Technologies
 
Cloud Native Batch Processing: Beyond the What and How
Cloud Native Batch Processing: Beyond the What and HowCloud Native Batch Processing: Beyond the What and How
Cloud Native Batch Processing: Beyond the What and HowVMware Tanzu
 
State of Mainframe DevOps
State of Mainframe DevOpsState of Mainframe DevOps
State of Mainframe DevOpsDevOps.com
 
Perspectives on software factory
Perspectives on software factoryPerspectives on software factory
Perspectives on software factoryUday Bhaskarwar
 
Nodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEWNodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEWNodejsFoundation
 
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 dockerAgile Impact Conference
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?Rohit Kelapure
 
Decomposing applications for deployability and scalability(SpringSource webinar)
Decomposing applications for deployability and scalability(SpringSource webinar)Decomposing applications for deployability and scalability(SpringSource webinar)
Decomposing applications for deployability and scalability(SpringSource webinar)Chris Richardson
 
Microservices
MicroservicesMicroservices
MicroservicesPT.JUG
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with commentsLior Bar-On
 
Useful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaUseful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaPT.JUG
 
Dev opscon survey summary 2013
Dev opscon survey summary 2013Dev opscon survey summary 2013
Dev opscon survey summary 2013Alan Shimel
 
Continuous Delivery with CloudBees Core
Continuous Delivery with CloudBees CoreContinuous Delivery with CloudBees Core
Continuous Delivery with CloudBees CoreBhavani Rao
 

Was ist angesagt? (20)

Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015
Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015
Intro to SW Eng Principles for Cloud Computing - DNelson Apr2015
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platform
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283
 
Cloud Native Batch Processing: Beyond the What and How
Cloud Native Batch Processing: Beyond the What and HowCloud Native Batch Processing: Beyond the What and How
Cloud Native Batch Processing: Beyond the What and How
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
 
State of Mainframe DevOps
State of Mainframe DevOpsState of Mainframe DevOps
State of Mainframe DevOps
 
Perspectives on software factory
Perspectives on software factoryPerspectives on software factory
Perspectives on software factory
 
Nodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEWNodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEW
 
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
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?
 
Decomposing applications for deployability and scalability(SpringSource webinar)
Decomposing applications for deployability and scalability(SpringSource webinar)Decomposing applications for deployability and scalability(SpringSource webinar)
Decomposing applications for deployability and scalability(SpringSource webinar)
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with comments
 
Useful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaUseful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with Java
 
Dev opscon survey summary 2013
Dev opscon survey summary 2013Dev opscon survey summary 2013
Dev opscon survey summary 2013
 
Modern application development with heroku
Modern application development with herokuModern application development with heroku
Modern application development with heroku
 
Continuous Delivery with CloudBees Core
Continuous Delivery with CloudBees CoreContinuous Delivery with CloudBees Core
Continuous Delivery with CloudBees Core
 

Andere mochten auch

Continuous Integration & Continuous Delivery
Continuous Integration & Continuous DeliveryContinuous Integration & Continuous Delivery
Continuous Integration & Continuous DeliveryKonstantin Chukhlomin
 
Measuring Usability
Measuring UsabilityMeasuring Usability
Measuring UsabilityIndira Pai
 
Rest in Practice, Brazil 2010
Rest in Practice, Brazil 2010Rest in Practice, Brazil 2010
Rest in Practice, Brazil 2010Thoughtworks
 
Beyond Continuous Delivery
Beyond Continuous DeliveryBeyond Continuous Delivery
Beyond Continuous DeliveryChris Hilton
 
What is Accessibility
What is AccessibilityWhat is Accessibility
What is AccessibilityThoughtworks
 
Continuous Delivery and Patterns @xpdays 2013
Continuous Delivery and Patterns @xpdays 2013Continuous Delivery and Patterns @xpdays 2013
Continuous Delivery and Patterns @xpdays 2013Marcel Birkner
 
General Continuous Delivery for Agile Practitioners Meetup May 2014
General Continuous Delivery for Agile Practitioners Meetup May 2014General Continuous Delivery for Agile Practitioners Meetup May 2014
General Continuous Delivery for Agile Practitioners Meetup May 2014Chris Hilton
 
Branching and Merging and Bears, Oh My!
Branching and Merging and Bears, Oh My!Branching and Merging and Bears, Oh My!
Branching and Merging and Bears, Oh My!Imaginet
 

Andere mochten auch (8)

Continuous Integration & Continuous Delivery
Continuous Integration & Continuous DeliveryContinuous Integration & Continuous Delivery
Continuous Integration & Continuous Delivery
 
Measuring Usability
Measuring UsabilityMeasuring Usability
Measuring Usability
 
Rest in Practice, Brazil 2010
Rest in Practice, Brazil 2010Rest in Practice, Brazil 2010
Rest in Practice, Brazil 2010
 
Beyond Continuous Delivery
Beyond Continuous DeliveryBeyond Continuous Delivery
Beyond Continuous Delivery
 
What is Accessibility
What is AccessibilityWhat is Accessibility
What is Accessibility
 
Continuous Delivery and Patterns @xpdays 2013
Continuous Delivery and Patterns @xpdays 2013Continuous Delivery and Patterns @xpdays 2013
Continuous Delivery and Patterns @xpdays 2013
 
General Continuous Delivery for Agile Practitioners Meetup May 2014
General Continuous Delivery for Agile Practitioners Meetup May 2014General Continuous Delivery for Agile Practitioners Meetup May 2014
General Continuous Delivery for Agile Practitioners Meetup May 2014
 
Branching and Merging and Bears, Oh My!
Branching and Merging and Bears, Oh My!Branching and Merging and Bears, Oh My!
Branching and Merging and Bears, Oh My!
 

Ähnlich wie Building a Modern Enterprise SOA at LinkedIn

Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Applying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesKartik Kanakasabesan
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSDevOps.com
 
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 Toolsghodgkinson
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...Sanjeev Sharma
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Kiko Monteverde
 
Challenges In Modern Application
Challenges In Modern ApplicationChallenges In Modern Application
Challenges In Modern ApplicationRahul Kumar Gupta
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdfMasahiko Umeno
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksIRJET Journal
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...OpenWhisk
 
Scaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the EnterpriseScaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the EnterpriseCollabNet
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014nyolles
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Nate Yolles
 
Google cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGoogle cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGDSCNiT
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdfVinothini Raju
 
Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...
Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...
Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...HostedbyConfluent
 

Ähnlich wie Building a Modern Enterprise SOA at LinkedIn (20)

Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Grails at Linkedin
Grails at LinkedinGrails at Linkedin
Grails at Linkedin
 
Applying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomes
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
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
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
 
Challenges In Modern Application
Challenges In Modern ApplicationChallenges In Modern Application
Challenges In Modern Application
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdf
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web Frameworks
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
 
IBM Bluemix Openwhisk
IBM Bluemix OpenwhiskIBM Bluemix Openwhisk
IBM Bluemix Openwhisk
 
Resume
ResumeResume
Resume
 
Scaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the EnterpriseScaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the Enterprise
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014
 
Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014Adobe CQ at LinkedIn Meetup February 2014
Adobe CQ at LinkedIn Meetup February 2014
 
Google cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGoogle cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptx
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
 
Ahmed El Mawaziny CV
Ahmed El Mawaziny CVAhmed El Mawaziny CV
Ahmed El Mawaziny CV
 
Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...
Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...
Standing on the Shoulders of Open-Source Giants: The Serverless Realtime Lake...
 

Kürzlich hochgeladen

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Kürzlich hochgeladen (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Building a Modern Enterprise SOA at LinkedIn

  • 1. Building a Modern Enterprise SOA at LinkedIn
  • 2. Agenda  Building Code at LinkedIn  Product Development with Multiproduct  Build Automation with Gradle  A Peek at the Future ©2013 LinkedIn Corporation. All Rights Reserved. 2
  • 3. Building Code at LinkedIn ©2013 LinkedIn Corporation. All Rights Reserved. 3
  • 4. In the beginning there was Network  Single, relatively homogenous code base – Build from source, little dependency management  Java, Spring, Ant, …  JavaScript, HTML, JSPs, CSS, …  JARs, WARs, Jetty, Tomcat, … ©2013 LinkedIn Corporation. All Rights Reserved. 4
  • 5. Then everything went exponential Number of developers, programming languages, build systems, frameworks, lines of code, servers, users, page views, … … and pretty much everything else ©2013 LinkedIn Corporation. All Rights Reserved. 5
  • 6.
  • 7. Hypergrowth isn’t all fun and games  Acquisitions came in with their own technology and processes  Releases became more and more painful  Productivity and stability suffered ©2013 LinkedIn Corporation. All Rights Reserved. 7
  • 8. Scaling a software development organization  Requires sensible code and dependency management – Source code APIs – Service APIs – Versioned dependencies  Performance is king – Iterative improvements  Divide and conquer – Split and isolate failures ©2013 LinkedIn Corporation. All Rights Reserved. 8
  • 10. Network Trunk Development  All development in Network shifted to trunk – No branches, no merging  Continuous releases from trunk – Deploy multiple times per day  Work started on break up and clean up – Migrating build logic to Gradle ©2013 LinkedIn Corporation. All Rights Reserved. 10
  • 11. Product Development with Multiproduct ©2013 LinkedIn Corporation. All Rights Reserved.
  • 12. Traditional Software Development  Use a well-established technology stack – Homogeneity => Simplicity  To adopt a new technology: – Requires “out of the box” thinking and effort – Do a proof-of-concept implementation – Present to decision makers to demonstrate ROI => get approval  Slow-moving by design – New technology integration expensive – Top-down management decisions used as barrier ©2013 LinkedIn Corporation. All Rights Reserved. 12
  • 13. LinkedIn Software Development  We don’t ever want to be in the box – Technical experimentation and diversity encouraged – Living on the bleeding edge, often defining it  The Need for Speed – Pace of iteration – Automation (the human is slow) – Continuous delivery  Build versus buy ©2013 LinkedIn Corporation. All Rights Reserved. 13
  • 15. Multiproduct  Toolset that is architected for a heterogeneous technology world  Agnostic to version control, build system and programming stack – Future-proof  Abstracts common software tasks – For example: “build”, “test”, “release”  Provide a default implementation, allow users to override – i.e. Gradle w/ LI plug-ins ©2013 LinkedIn Corporation. All Rights Reserved. 15
  • 16. Key Concepts  Elevate tooling from artifact to product level  Metadata ties the tooling together – Ivy – Version and Build specification  Pluggable implementation of subsystems  Version management  Continuous automated delivery ©2013 LinkedIn Corporation. All Rights Reserved. 16
  • 17. ©2013 LinkedIn Corporation. All Rights Reserved. 17 Source Control Build System Deployment
  • 18. Version Management  End-of-life dates – Graceful deprecation and upgrades  Push version upgrades to consumers  Dependency Reports – What products depends on me – What products do I depend on ©2013 LinkedIn Corporation. All Rights Reserved. 18
  • 19. Push My Upgrade ©2013 LinkedIn Corporation. All Rights Reserved. 19
  • 20. Tracking Upgrades ©2013 LinkedIn Corporation. All Rights Reserved. 20
  • 21. Continuous Delivery in Multiproduct  Automated pipeline triggered on developer change – No other developer action needed  Publishing 10,000+ artifacts per day for 300+ products – Mean time for a good commit: ~10 minutes – Mean time counting failures: ~25 minutes ©2013 LinkedIn Corporation. All Rights Reserved. 21
  • 22. Continuous Delivery ©2013 LinkedIn Corporation. All Rights Reserved. 22
  • 23. ©2013 LinkedIn Corporation. All Rights Reserved. 23
  • 24. Build Automation with Gradle ©2013 LinkedIn Corporation. All Rights Reserved. 24
  • 25. Why LinkedIn uses Gradle  Dependency resolution engine  Rich plug-in system w/ real programming language – DSL has high learning curve, but powerful  Visions align – Automation – Continuous delivery ©2013 LinkedIn Corporation. All Rights Reserved. 25
  • 26. LinkedIn Gradle plug-ins  Customize built-in plug-ins for LinkedIn’s environment – i.e. Java, Scala, War, FindBugs, Cobertura  Add custom artifact types – For example database patches, static content, and Hadoop workflows  Create metadata for publishing and deployment tooling to consume  Elevate concepts from artifact to product level ©2013 LinkedIn Corporation. All Rights Reserved. 26
  • 27. Dependency Graph powered by Gradle ©2013 LinkedIn Corporation. All Rights Reserved. 27
  • 28. ©2013 LinkedIn Corporation. All Rights Reserved. 28 End-of-life enforcement
  • 29. Our own gradlew: ligradle  Our own custom Gradle wrapper  Provisions Gradle and plug-ins – Allows each product to define versions it uses  Provides lifecycle management for Gradle and plug-ins – End-of-life  Usage data – Used to track usage and discover problems ©2013 LinkedIn Corporation. All Rights Reserved. 29
  • 30. Usage Data ©2013 LinkedIn Corporation. All Rights Reserved. 30
  • 31. Source vs Binary Dependencies  Source offers incremental updates and flexibility  intra-product  Binary offers stability and speed inter-product There’s no right answer, but there are plenty of wrong answers! ©2013 LinkedIn Corporation. All Rights Reserved. 31
  • 32. Network migration to Gradle  3,600 build.xml files to convert – Many of them with custom logic  300 developers to train  Performance targets – 2x speed-up for clean builds – 5x speed-up for incremental builds ©2013 LinkedIn Corporation. All Rights Reserved. 32
  • 33. Proof of Concept  Migrated 1,100 modules  Tested single large build versus isolated segments – Single large build simpler  Scale feasible – Requires scalability and performance work in Gradle core ©2013 LinkedIn Corporation. All Rights Reserved. 33
  • 34. Gradle features required for migration  Configuration on demand – Only configure the task graph you need  Refactored cache logic for performance – Task history – Dependency descriptors  Candidate performance improvements – Parallel configuration – Daemon stores project model – Daemon performs continuous up-to-date checks ©2013 LinkedIn Corporation. All Rights Reserved. 34
  • 35.
  • 36. Daemon Heap Usage ©2013 LinkedIn Corporation. All Rights Reserved. 36
  • 37. Project Timeline – 1 year  Q1: Proof-of-concept and prep work  Q2: Implementation   Q3: Roll-out  Q4: Clean-up ©2013 LinkedIn Corporation. All Rights Reserved. 37
  • 38. A Peek at the Future ©2013 LinkedIn Corporation. All Rights Reserved. 38
  • 39. Gradle Features  Faster – Use the daemon effectively in development and CI – Intra-project parallel execution  More scalable – Heap usage  Ease of use – IDE integration ©2013 LinkedIn Corporation. All Rights Reserved. 39
  • 40. More Multiproduct Intelligence  Analytics – Common exceptions – Usage and error patterns  Verification suite – CheckStyle, FindBugs and Cobertura  Automation and Integration  Ease of use ©2013 LinkedIn Corporation. All Rights Reserved. 40
  • 41. Distributed Build Automation  Distribute build and testing on a cluster  Automatic provisioning  Artifact sharing at scale ©2013 LinkedIn Corporation. All Rights Reserved. 41
  • 42. ©2013 LinkedIn Corporation. All Rights Reserved. 42

Hinweis der Redaktion

  1. Homogenous -> HeterogenousBuild vs buy, starting taking on more tasks internally. Started open-sourcing our own stuff to pay it forward.
  2. When there are more people who are new than established it’s hard to maintain anything
  3. We needed to scale ourselves. The answer was to establish tools team to focus on internal productivity, code management and process.Performance improvements -> waterfall releases to every 2 weeks to every day to N times per day to continuous dev
  4. If your code doesn’t impact my code then failures in your unit tests should not stop me from releasing my codeProducts move at different paces: experimentation, heavy development, stable and mature, maintenance mode etc.Public APIs at the code and service layers abstracts the messiness underneath.
  5. “out of the box” thinking should make you ask why the heck you were in the box in the first placeAutomation requires trust in the system
  6. But there must be basic sanity checks: our operations team must be able to configure and operate the products at scale, the organization must maintain focus and prioritize, have to consider compliance (legal, government, ethical)There’s constructive and destructive chaos. Multiproduct tries to define constructive chaos.
  7. A product can publish a single or many artifacts
  8. EOL dates solve several problems:I need certain versions to go away because they have bugs or flawsI need to not maintain too many versions. Focus my resources where they matter
  9. Currently a manual step for product owners to promote to production (need more trust in verification to remove this step)
  10. Dependency management probably what we need the build tool to do the mostXML is not a programming language.Groovy DSL has extreme learning curve, but our audience are programmers anyway.
  11. We are able to ask Gradle complex dependency questions and get the answers we need
  12. An example of where we elevate functionality to the product level using the Gradle plug-ins
  13. ~5,000 gradle executions per workday. ~10,000 mint executions
  14. We need daemon and parallel execution to make this possible
  15. Already made great progress: both in Gradle and in our plug-ins