Download - Circuit 2015 Keynote - Carsten Ziegeler
![Page 1: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/1.jpg)
CIRCUIT – An Adobe Developer Event Presented by ICF Interactive
State of the Platform
Avoiding the Clutter in Architecture
![Page 2: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/2.jpg)
Y = 8 + X Y >> 8
2
![Page 3: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/3.jpg)
• RnD Adobe Research Switzerland • Team Lead / Founder of Adobe
Granite • Member of the Apache Software
Foundation • VP of Apache Felix and Sling • OSGi Core Platform and Enterprise
Expert Groups • Member of the OSGi Board • Book / article author, technical
reviewer, conference speaker
3
@cziegeler
![Page 4: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/4.jpg)
So what?
4
![Page 5: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/5.jpg)
Motivation
• How to build a large enterprise application? • Sustainable, surviving hypes • Ready for “The Fog”
5
![Page 6: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/6.jpg)
From the Marketing Department
6
![Page 7: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/7.jpg)
Back to the Future
7
![Page 8: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/8.jpg)
Back in the Days…CQ 4
8
![Page 9: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/9.jpg)
Day/Adobe CQ5
9
![Page 10: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/10.jpg)
Adobe Experience Manager
10
![Page 11: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/11.jpg)
Sustainability
11
Y = 8 + X
![Page 12: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/12.jpg)
Turning the Tide in 2006
• Aged code base – Monolithic – Highly entangled – Growing complexity and functionality
• API or Implementation?
12
![Page 13: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/13.jpg)
The Downside of Success
• Increasing customer base • Team growth
13
![Page 14: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/14.jpg)
The „standard“ architecture in 2006
MySQL
Hibernate
SQL Server
SOAP Bridge
ADO.NET
Oracle
EJB 3.0
Lucene Index
Crawlers
JSF Flash
Spring
14
![Page 15: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/15.jpg)
Portal
The „standard“ architecture in 2006
MySQL
Hibernate
SQL Server
SOAP Bridge
ADO.NET
Oracle
EJB 3.0
Lucene Index
Crawlers
JSF Flash
Spring
15
![Page 16: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/16.jpg)
Portal
The „standard“ architecture in 2006
MySQL
Hibernate
SQL Server
SOAP Bridge
ADO.NET
Oracle
EJB 3.0
Lucene Index
Crawlers
JSF Flash
Spring
16
Where is the data? Really? Content?
Layered Architecture? Frontend? Driving System?
Bo>lenecks? Scaling?
![Page 17: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/17.jpg)
Architectural Failure
• Implementation too expensive • Operations too expensive • Fragile, too many things can go wrong • Not scalable / too expensive • Unflexible (Features / Integration)
17
![Page 18: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/18.jpg)
Sounds Familiar?
• Nobody got fired for buying $$$ • We have been doing it this way forever • Let‘s use BLA, everybody is talking about it • How will FOO look on my resume?
18
![Page 19: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/19.jpg)
19
![Page 20: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/20.jpg)
Developers, Developers, Developers!
• Destroy the death star • Join the rebel forces • And ignore Jar Jar Bings
20
![Page 21: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/21.jpg)
Keep IT Simple
• Think and Resist
21
![Page 22: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/22.jpg)
Modularity, Modularity, Modularity!
• Manage growing complexity • Support (dynamic) extensibility • Clear contracts
22
![Page 23: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/23.jpg)
Plethora of Choice in 2006
• Spring? • Other open source component frameworks? • DIY? • OSGi????
23
![Page 24: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/24.jpg)
Benefits of OSGi
• Modules • Versions • COP • SoC • LC, DB
24
![Page 25: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/25.jpg)
The Road to Modularity
• Start with a single big module? • Embedding OSGi framework? • Complete rewrite?
25
![Page 26: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/26.jpg)
The Fun Way : Complete Rewrite
• New architecture – New backend (Apache Jackrabbit) – New web application framework (Apache Sling) – New UI
• Think modules from the start • Control evolution • (Provide tools for migration from old solution)
26
![Page 27: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/27.jpg)
KISS
Content Repository
OSGi
Apache Sling ScripLng Extensions Extensions Extensions Extensions
Frontend
27
![Page 28: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/28.jpg)
World Happiness
• Quickstart • Webapp • Portal vs Portlet
28
![Page 29: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/29.jpg)
Road to Perdition?
• OSGi ?!? • Apache Sling ? • Best Practices? • And…Tooling?
29
![Page 30: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/30.jpg)
Can We Fix It? Yes We Can, Bob!
• OSGi Spec Implementations • Tooling • Processes • Operations • Bazaar
30
![Page 31: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/31.jpg)
A New Star Was Born Productive, efficient, high quality development of maintainable, extensible, scalable web solution
31
![Page 32: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/32.jpg)
AEM Stack
32
Java Runtime Environment
REST Framework
JCR Repository
Servlet Engine
OSGI Framework
AEM 6 Product Family Sites, Assets, Communities, Apps, Forms
Application Services
Custom Project Code
![Page 33: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/33.jpg)
Architecting the Web
• URL Space – Meaningful URLs – REST principles
• Content vs. Technology
33
![Page 34: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/34.jpg)
Resource Tree
• One (simple) API to rule them all • Direct mapping • Built-in Security • Flexibility
34
![Page 35: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/35.jpg)
Benefits in a Nutshell
• Stable RESTful architecture • Service model • Modules • Clear separation
35
![Page 36: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/36.jpg)
Hitting the Real World
• High load / high concurrency • Dynamic nature of OSGi • Developer habits • FUD
36
![Page 37: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/37.jpg)
37
![Page 38: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/38.jpg)
Multi Tenancy
• 3P5O problem (not C3PO)
38
![Page 39: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/39.jpg)
Multi Tenancy Considerations
• Friendly vs hostile • Content • Code • Services / Configurations • Billing J
39
![Page 40: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/40.jpg)
Today‘s Challenges
• Quickly adapt • Integrations • Massive scale • IoT • Reduce (operational) cost
40
![Page 41: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/41.jpg)
Amount of Software
41
2015
2008
2001
1994
1987
1980
2022
![Page 42: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/42.jpg)
Surviving the Super Bowl
42
Website traffic
![Page 43: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/43.jpg)
A Short History of Infrastructure/Deployment
43
2000 Physical Hardware
2006 Virtual Servers Hardware disappeared
Deploys into all public clouds
Now Containers Operating systems disappear
![Page 44: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/44.jpg)
Docker, Foo, Bar and Friends
• http://blog.circleci.com/its-the-future/ • http://blog.circleci.com/it-really-is-the-future/
44
Do do do
Thief
De
Enimy
Police
De
Director
Da da da
Who
Foo Bar
Friend
![Page 45: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/45.jpg)
Keep IT Simple
• Think and Resist
45
Resistance is NOT fuLle!
![Page 46: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/46.jpg)
46
![Page 47: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/47.jpg)
47
![Page 48: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/48.jpg)
Instances
48
Pets vs cattles
![Page 49: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/49.jpg)
Farmville
49
![Page 50: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/50.jpg)
Herding
50
Repository
Web 1 Web 2 Web 3
Worker A 1
Worker B 1
Worker B 2
![Page 51: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/51.jpg)
Maximize Resource Usage - Containers
51
![Page 52: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/52.jpg)
Maximize Resource Usage - Containers
52
![Page 53: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/53.jpg)
Modularity ^2
• Spezialized instances • Create / Destroy on demand • Independent scaling • Faster dev/test/prod cycles
53
![Page 54: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/54.jpg)
New Kid on the Block
54
MICROSERVICES
![Page 55: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/55.jpg)
Traditional vs MS Architecture
55
Database
Business Logic
Frontend Frontend
Database
MS1
MS2
MS3
MS2 MS2
![Page 56: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/56.jpg)
BTDT
56
Frontend
Database
MS1
MS2
MS3
![Page 57: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/57.jpg)
Games without Frontiers
• Topology • REST • Distributed OSGi
57
![Page 58: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/58.jpg)
Single Instance
58
Bundle C
Service Z
Bundle A
Service X
Bundle B
Service Y
![Page 59: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/59.jpg)
Two Instances
59
Bundle C
Service Z
Bundle A
Service X
Bundle B
Service Y
![Page 60: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/60.jpg)
Up
60
ArLfact Repository
Model Repository
Orchestrator
![Page 61: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/61.jpg)
Fully automated: auto diagnosis and self healing
61
ArLfact Repository
Model Repository
Orchestrator
Cowboy
![Page 62: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/62.jpg)
In the Cloud
• The Twelve-Factor App (12factor.net) • Logging • Monitoring • Administration
62
![Page 63: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/63.jpg)
DRY KISS
63
OrchestraLon Herding
CDN
ELB
DB
Logging
Monitoring
![Page 64: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/64.jpg)
Interstellar
• Flexible deployment model • Easily customizable • Versions easily diffable • Elastic Scaling • Updates without downtime
64
![Page 65: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/65.jpg)
Take Away
• Architecture should be simple • Modularity is key • KISS • DRY • Think • Resist
65
![Page 66: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/66.jpg)
Ready for the Fog
66
![Page 67: Circuit 2015 Keynote - Carsten Ziegeler](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55d37f58bb61ebf5378b47c2/html5/thumbnails/67.jpg)
CIRCUIT – An Adobe Developer Event Presented by ICF Interactive
The END
67