Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java....
Transcript of Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java....
opensrourceonference.nl 6.12.2013
Lightweight Technology Innovation
Manifesto
Copyright © 2012 Accenture All rights reserved. 2
The digital revolution
Source: Adapted from Technological revolutions and techno-economic paradigms, Carlota Perez, January 20, 2009, Technological
University of Tallinn, Estonia and Universities of Cambridge and Sussex, U.K. www.carlotaperez.org
Copyright © 2012 Accenture All rights reserved. 3
Enabled by new and evolving technology
A massive amount of it!
Copyright © 2012 Accenture All rights reserved. 4
Some of which will fundamental change our SW architectures
Already happening today!
New ways to
build
systems
Copyright © 2012 Accenture All rights reserved. 5
1. Internet scale start-ups creating their own technology, now available to all
– Typically the past pattern has been to buy the needed tech from SW-vendors
2. Emergence of non-relational persistence models
– Re-realization that data can be stored and accessed in non-relational ways
3. Evolution of the browser as a UI-platform and partial return to client / server
– HTML5 + JavaScript making the Browser a full-fledged MVC and desktop
4. Desire to create fully distributed systems (built for breaking)
– And not spend energy and money on a separate expensive HA / clustering solutions
5. Polyglot programming
– Use the language best fit to solve the problem vs force-write all in Java, .Net or Cobol
6. As-a-service models emerging
– Driving clean and clear separation between traditionally mixed technology layers
• 7.
What has changed from a SW perspective?
= a new paradigm – “Lightweight” – is emerging
Copyright © 2012 Accenture All rights reserved. 6
Google, Facebook, Twitter, Netflix etc have all needed to do something that the normal business
world has not been faced with for a long time: solve a problem that no SW-vendor bundled with a
system integrator had an answer for.
So, what did they do? Young, skilled, entrepreneurial and equipped with a out-of-the-box mindset
they went ahead and created their own technology.
The result – new technology that these companies have made available to others – or inspired
others – for free, many times based on ideas and projects already out in the open source world.
1. Internet-scale start-ups creating their own tech
A new set of light and robust technologies have entered the market
https://dev.twitter.com/opensource
http://developers.facebook.com/opensource/
https://developers.google.com/open-source/projects
http://netflix.github.io/#repo
Copyright © 2012 Accenture All rights reserved. 7
Store your data in the way and format that makes most sense – which in most cases is not
relational as (according to some studies) only 4% of all data makes sense to persist in a
traditional relational model.
2. Emergence of non-relational persistence models
Fast, reliable, simple and purpose specific storage of data (and in many cases also redundant out-of-the-
box) now available!
Copyright © 2012 Accenture All rights reserved. 8
The browser w/ JavaScript, HTML5 &
CSS3 has evolved to a full-fledged
desktop platform that is able to handle
any type of “fat client” or client / server
application in a standard way.
3. Evolution of the browser as a UI-platform and partial return to client / server
The browser will no longer set any limitations on the UI of your application!
This means that you no longer need
to have “fat” server-side MVC-models
in your applications and you can
instead move to REST-based
interactions and WebSockets.
Copyright © 2012 Accenture All rights reserved. 9
A distributed system is one without a single-point-of-failure
4. Desire to create fully distributed systems
Building it for breaking is the new middleware architecture paradigm
Protecting it from failing (old) Build it for breaking (new)
In today’s middleware architectures, single
points of failure exist across the stacks (e.g.
portal, BPM-engine, ESB, database etc). You
need to configure and design complex, fail-prone
and expensive clustering and fail-over
mechanisms that span both HW and SW (and as
an added challenge scaling is not easy)
All layers of the architecture are natively
redundant (client side UI, stateless services,
static library based functionality, automatically
replicated persistence, global in-memory locking
etc) and if anything fails nothing seriously bad
will happen (and as an added bonus scaling up
is trivial)
Copyright © 2012 Accenture All rights reserved. 10
Many companies like to standardize their programming
platforms. In the past this has been a discussion between
Java, .Net and Cobol and the vendor used for Java.
Today the Java Virtual Machine (JVM) can handle different
types of languages built for different purposes. These
languages come with their own set of frameworks and tools to
speed up development. Hence it is not necessary, nor
optimal, to lock into one language alone.
When the application server is not a barrier non-JVM based
languages (like PHP or JavaScript on node.js) can also be
considered.
5. Polyglot programming
Business logic with Scala and Akka for parallel programming, anyone?
Framework
Language
JVM
Copyright © 2012 Accenture All rights reserved. 11
Cloud, in all its formats are changing the way IT is
procured and used. It is also changing the way
solutions are architected and built.
Infrastructure as a service is driving standardized
models to manage infrastructure (computing,
network and disk). Offering a clean layer on which
to build applications.
Platforms as a service provide the deployment and
management models for application level artifacts
and middleware – mirroring the move on the
infrastructure side.
6. As-a-service models emerging
Simplify the interface between your application and the rest of the world
Copyright © 2012 Accenture All rights reserved. 12
Contemporary middleware Lightweight
How will a new lightweight architecture look like?
Massively different
Browser
Web Web
HW LB HW LB
App App
DB
Web Web
App App
DB
Disk Disk
Browser
SW LB
Service Service
Store
Disk
SW LB
Store
Disk
Copyright © 2012 Accenture All rights reserved. 13
Difference 1: Only commodity HW
Removes the need of an expensive HW design and implementation phase
Contemporary Lightweight
Dedicated special purpose HW for load-
balancing and acceleration
Handled by modern web-server SW
Special purpose disk for replication in failure
situations
Normal disk, no need for replication on disk SW
level
Copyright © 2012 Accenture All rights reserved. 14
Difference 2: Stateless services = stateless setup
Stateless REST services or web socket calls
Contemporary Lightweight
Session replication between application servers
to handle fail-overs
No session on the server side
Copyright © 2012 Accenture All rights reserved. 15
Difference 3: No redundant HW
All HW in active use all the time
Contemporary Lightweight
Stand-by HW fair failure scenarios No stand-by HW, all HW in active use. Failure of
HW handled by having some redundant
capacity in use and running in multiple DC:s
Copyright © 2012 Accenture All rights reserved. 16
Difference 4: Truly distributed
Works the same way in development as in production in terms of fail-over
Contemporary Lightweight
Various methods to check for need to fail-over Distributed by nature on both data store, cache
(if needed) and locks
Application Architecture from a Platform Perspective – The Landscape Today
• Still going strong and
continuously evolving
• Runs a significant amount of the
workloads around the world
• Suffering of the “legacy” stamp
as education focuses elsewhere
• Still chosen by clients for the
simple sake of reliability
Mainframe
• The dominant approach for new
development the past 10 years
• J2EE and .NET
• Established stacks of feature rich
functionality (portals, rule
engines, integration etc)
• Heavily commoditized by open
source
• Buy vs build
Middleware
• Pattern vs product
• Library vs server product
• Asynch vs synchronous
• Dynamic vs static
• Rich set of front-ends vs server
side UI
• APIs vs services
• Polyglot vs monolithic
• Native HA vs HA plugged on top
• “Only open source”
Lightweight
Keep your options open and innovate!
Thank you!