servicification: modularizing...

28
2018 | Proprietary {blundell, clamy, rjkroege}@chromium.org Servicification: Modularizing Chromium

Upload: others

Post on 05-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

{blundell, clamy, rjkroege}@chromium.org

Servicification:Modularizing Chromium

Page 2: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

What we want:Isolation

Insert high resolution image

Page 3: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

What is Isolation?

Page 4: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

What is Isolation?

Source

Reusable code.

Page 5: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

What is Isolation?

Source

Reusable code.

Run-Time

Isolate state. Sandbox. Guard against crashes & exploit.

Page 6: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

What is Isolation?

Source

Reusable code.

Run-Time

Isolate state. Sandbox. Guard against crashes & exploit.

Component

Download only what is needed.

Page 7: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

What is Isolation?

Source

Reusable code.

Run-Time

Isolate state. Sandbox. Guard against crashes & exploit.

Component

Download only what is needed.

Product

Different teams, with different repositories and release schedules.

Page 8: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Cornerstone of security model

Process model

BrowserGPU

Tab 1 Tab 2 Tab 3 Flash f(x)

Page 9: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Insert high resolution image

Dealing withOrganic growth

Page 10: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Content refactor

//content

Chrome ContentShell

Page 11: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Content refactor

//content

Chrome ContentShell

Page 12: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Content refactor

WebView

//content

Chrome ContentShell

Page 13: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Content refactor

OperaWebView

//content

Chrome ContentShell

Page 14: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Content refactor

ElectronOperaWebView

//content

Chrome ContentShell

Page 15: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Content refactor

ElectronOperaWebView

//content

Chrome ContentShell

Page 16: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Insert high resolution image

TowardsModularization

Page 17: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Post content refactor

← Chrome code architecture, ~2017

~10M lines of code

Page 18: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Conceptual system layercake

Foundation

Framework/Runtime

Application

Page 19: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Conceptual system layercake

Foundation

Framework/Runtime

Application

}Chrome’s Architecture derived from this layer.

Page 20: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Conceptual system layercake

Foundation

Framework/Runtime

Application

}Web Platform Runtime & API lives here.

Page 21: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Post “servicification”

Service Manager

Package Manager Network File

SystemWindow Server

Viz: Compositor

& GPU

Navigation Bluetooth USB Identity Wallet ...

Blink PDF MediaEmbedder

Definedf(x)

Chrome Chromecast

ChromeOS

System UIChrome’

Page 22: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Some Major Ongoing Servicification Projects

Service Manager

Package Manager Network File

SystemWindow Server

Viz: Compositor

& GPU

Navigation Bluetooth USB Identity Wallet ...

Blink PDF MediaEmbedder

Definedf(x)

Chrome Chromecast

ChromeOS

System UIChrome’

Page 23: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

● Network Service○ Use case: Chrome’s net stack without a browser○ Use case: Survive net stack crashes in Chrome○ Status: OOP Network Service launched on desktop Canary! Beta at 50%!

● UI Service○ Use case: Decoupling ChromeOS SysUI from the browser○ Status: Come on up, Rob!

Zooming In On These Efforts: Network and UI

Page 24: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Zooming In on These Efforts: UI Service (MUS) & Viz

Page 25: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

● Identity Service○ Use case: Access user’s Google identities outside of the browser○ Status: Identity Service built, major effort underway to use it in the browser

● Content Service○ Use case: Display web content without the browser being live!○ Use case: “Chrome WebView”○ Status: In design exploration

Zooming In On These Efforts: Identity and Content

Page 26: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

● Each one of these stretches across all of Chromium!

● Meanwhile, hundreds of engineers adding code “the old way”

● How are we tackling this challenge?

Zooming Out: Our Approach to These Services

Page 27: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

● “Surge toward success”○ Get a project ready to topple and coalesce resources on it

● Tremendous impact from collaboration with Igalia○ Critical to launch of Network Service on beta○ Now expanding to Identity Service

● Excited about this model more broadly for Chromium○ We care about the long-term health of the codebase○ Impactful projects beyond servicification (e.g., Blink Onion Soup)

Zooming Out: Our Approach to These Efforts

Page 28: Servicification: Modularizing Chromiumwebengineshackfest.org/2018/slides/servicification-modularizing-chromium-by...Excited about this model more broadly for Chromium We care about

2018 | Proprietary

Thank you.Questions?