Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Architecture 201x
Search
Stefan Tilkov
February 06, 2014
Technology
4
1.7k
Architecture 201x
Lessons learned from modern web-based systems for Enterprise IT
Stefan Tilkov
February 06, 2014
Tweet
Share
More Decks by Stefan Tilkov
See All by Stefan Tilkov
API Approaches: An Overview
stilkov
1
140
Microservices – A Taxonomy
stilkov
2
520
Software Architecture, Processes, Organization—and Humans
stilkov
4
550
Architekturoptionen für moderne Web-Frontends
stilkov
6
430
Software Architecture for Agile Enterprises
stilkov
2
590
Software Architecture, Processes, Organization—and Humans
stilkov
2
630
Software Architecture for Agile Enterprises
stilkov
1
210
Good Enough Architecture
stilkov
8
1.3k
“Good enough” Architecture
stilkov
2
1.1k
Other Decks in Technology
See All in Technology
東京大学「Agile-X」のFPGA AIデザインハッカソンを制したソニーのAI最適化
sony
0
150
Dify on AWS 環境構築手順
yosse95ai
0
170
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
0
110
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
190
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
160
「タコピーの原罪」から学ぶ間違った”支援” / the bad support of Takopii
piyonakajima
0
150
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
4
900
頭部ふわふわ浄酔器
uyupun
0
240
プレイドのユニークな技術とインターンのリアル
plaidtech
PRO
1
500
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
160
OpenCensusと歩んだ7年間
bgpat
0
200
プロファイルとAIエージェントによる効率的なデバッグ / Effective debugging with profiler and AI assistant
ymotongpoo
1
540
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.7k
Documentation Writing (for coders)
carmenintech
75
5.1k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
How STYLIGHT went responsive
nonsquared
100
5.9k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Practical Orchestrator
shlominoach
190
11k
We Have a Design System, Now What?
morganepeng
53
7.8k
Side Projects
sachag
455
43k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Writing Fast Ruby
sferik
630
62k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Transcript
#Architecture201x Stefan Tilkov | innoQ
[email protected]
@stilkov Thursday 6 February
14
Disclaimer first Thursday 6 February 14
Let’s start with the enterprise Thursday 6 February 14
The J2EE(TM) 1.4 Tutorial, http://docs.oracle.com/cd/E17802_01/j2ee/j2ee/1.4/docs/tutorial-update2/doc/Overview7.html Thursday 6 February 14
GỬI PHẢN HỒI, http://ejbvn.wordpress.com Thursday 6 February 14
DB Application Browser Thursday 6 February 14
DB Backend Frontend Browser Thursday 6 February 14
Assumptions to be challenged One single system One single environment
Predictable load Clear & distinct roles Planned releases Built because they have to be Thursday 6 February 14
Somewhat Limited Agility Thursday 6 February 14
Increased Desaster Potential Thursday 6 February 14
Cut Things into Pieces 3 2 1 Thursday 6 February
14
Small, lightweight, focused apps Thursday 6 February 14
My favorite programmer’s story Thursday 6 February 14
Task: Read a file of text, determine the n most
frequently used words, and print out a sorted list of those words along with their frequencies. Thursday 6 February 14
Donald Knuth Doug McIlroy Dr. Drang, http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/ 10-page literal Pascal
program, including innovative new data structure tr -‐cs A-‐Za-‐z '\n' | tr A-‐Z a-‐z | sort | uniq -‐c | sort -‐rn | sed ${1}q Thursday 6 February 14
Small, lightweight, focused apps Thursday 6 February 14
Simple process run model Thursday 6 February 14
Back to building servers Thursday 6 February 14
Closer to the metal Thursday 6 February 14
http://12factor.net Thursday 6 February 14
Isolation and independence Thursday 6 February 14
Polyglotism Thursday 6 February 14
Built for replacement, not for re-use Thursday 6 February 14
FAQ Press Release Customer Experience User Manual Werner Vogels, http://www.allthingsdistributed.com/2006/11/working_backwards.html
Thursday 6 February 14
Dismantled monolith Backend & front-end services (Re-Implementation in Node.js) https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/
Thursday 6 February 14
DB Service Frontend Browser Service Service Thursday 6 February 14
DB Service Frontend Browser Service Service DB DB Thursday 6
February 14
DB Service FE Browser Service Service DB DB FE FE
Thursday 6 February 14
Organization ⟷ Architecture Thursday 6 February 14
Kraus, Steinacker, Wegner: Teile und Herrsche – Kleine Systeme für
große Architekturen, http://bit.ly/152cXbx Independent “Verticals” REST-based macro architecture Individual micro architecture Thursday 6 February 14
App DB Browser App App DB DB Thursday 6 February
14
Services as DNA “Dogfooding” Two-pizza rule Steve Yegge, https://plus.google.com/110981030061712822816/posts/AaygmbzVeRq Thursday
6 February 14
Tools Play Node.js Modern Java EE containers Akka Embedded Jetty
vert.x DropWizard Netty Thursday 6 February 14
Thursday 6 February 14
Integrate pieces to form a whole 3 2 1 Thursday
6 February 14
Robust systems Unreliable networks Thursday 6 February 14
S1 S2 S3 Thursday 6 February 14
Tools Hystrix Akka Finagle Thursday 6 February 14
Smart aggregation Thursday 6 February 14
REST APIs Client-specific orchestration Streaming architecture Thursday 6 February 14
Browser DB Service Frontend Service Service DB DB Mobile App
Thursday 6 February 14
Browser DB Service Frontend Service Service DB DB Mobile App
Orch 1 Orch 2 Thursday 6 February 14
S1 S2 S3 S4 S5 S6 Thursday 6 February 14
Tools ql.io Storm Rx Play spray Thursday 6 February 14
Web-native front-end integration Thursday 6 February 14
Service Interface Service Interface Client Logic Thursday 6 February 14
Service Interface Service Interface Client Logic Thursday 6 February 14
Service Interface Service Interface Client Logic Thursday 6 February 14
Service Interface Service Interface Presentation Logic Orchestration Logic Thursday 6
February 14
Business Logic Business Logic Presentation Logic Thursday 6 February 14
Business Logic Business Logic Presentation Logic Presentation Logic Thursday 6
February 14
Simple semantic HTML Open Data Single domain – no portal
“Google as the homepage” Polyglot environment https://gds.blog.gov.uk/govuk-launch-colophon/ Thursday 6 February 14
Tools & Approaches RESTful HTTP ROCA MVC Web Frameworks Thursday
6 February 14
Change & run efficiently 3 2 1 Thursday 6 February
14
Horizontal scaling Thursday 6 February 14
Virtualized operating system as container Thursday 6 February 14
Fully automated, repeatable deployment Thursday 6 February 14
Transparent monitoring Thursday 6 February 14
Small changesets Everyone deploys Fast deploys Change flags Graphs/metrics Fix
fast/roll forward Ross Snyder, http://www.slideshare.net/beamrider9/continuous-deployment-at-etsy-a-tale-of-two-approaches Thursday 6 February 14
Fully cloud-based Self-made PaaS Simian Army Adrian Cockcroft, http://www.infoq.com/presentations/Netflix-Architecture Thursday
6 February 14
Tools Puppet Metrics docker Vagrant Chef logstash Zipkin Packer Thursday
6 February 14
Thursday 6 February 14
Summary Thursday 6 February 14
Build smaller Thursday 6 February 14
Aggregate smartly Thursday 6 February 14
Merge run & change Thursday 6 February 14
Thank you! Questions? Comments? Stefan Tilkov, @stilkov
[email protected]
http://www.innoq.com/blog/st/ Phone:
+49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein Germany Phone: +49 2173 3366-0 innoQ Schweiz GmbH Gewerbestr. 11 CH-6330 Cham Switzerland Phone: +41 41 743 0116 www.innoq.com Ohlauer Straße 43 10999 Berlin Germany Phone: +49 2173 3366-0 Robert-Bosch-Straße 7 64293 Darmstadt Germany Phone: +49 2173 3366-0 Radlkoferstraße 2 D-81373 München Germany Telefon +49 (0) 89 741185-270 Thursday 6 February 14