Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java....

18
opensrourceonference.nl 6.12.2013 Lightweight Technology Innovation Manifesto

Transcript of Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java....

Page 1: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

opensrourceonference.nl 6.12.2013

Lightweight Technology Innovation

Manifesto

Page 2: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 3: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

Copyright © 2012 Accenture All rights reserved. 3

Enabled by new and evolving technology

A massive amount of it!

Page 4: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

Copyright © 2012 Accenture All rights reserved. 4

Some of which will fundamental change our SW architectures

Already happening today!

New ways to

build

systems

Page 5: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 6: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 7: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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!

Page 8: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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.

Page 9: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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)

Page 10: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 11: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 12: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 13: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 14: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 15: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 16: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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

Page 17: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

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!

Page 18: Lightweight Technology Innovation Manifesto...Java, .Net and Cobol and the vendor used for Java. Today the Java Virtual Machine (JVM) can handle different types of languages built

Thank you!

[email protected]