trends in platform and application architectures (enterprise apps world, london, june 17th 2014)

28
Trends in platform and application architectures Enterprise Apps World, London, June 17 th 2014 Matt Robinson VP Technology Progress Software

Upload: matt-robinson

Post on 28-Aug-2014

607 views

Category:

Software


0 download

DESCRIPTION

Virtual machine technology revolutionized the use of infrastructure. Hypervisors are at the heart of today's leading infrastructure as a service (IaaS) offerings and are a core component of IaaS platforms. VMs are here for the long term but they are no longer a panacea for virtualization. We have squeezed all of the optimizations out of them and IaaS providers have been in price wars ever since. New container-based technology such as Docker, based on LXC (LinuX Containers), represents a more efficient model than traditional hypervisor virtualization and is poised for massive growth. This will change the way cloud platforms are architected, used, and sold, and how applications are deployed. Containers are well suited for modular API-first architectures in which purpose-built components can be provisioned and scaled on an as-needed basis. Node.js is a rapidly emerging server-side JavaScript technology that encourages a modular design. It also encourages a natural separation of the backend UI layer from the backend business logic of a modern web architecture, allowing frontend developers and backend developers to focus on what they do best in the languages and frameworks of their choice. Attendees of this session will learn about: Application Containers: Docker, LXC and the move toward micro-virtualization Modules: The rise of Node.js and API-first architectures UI Freedom: Separating the UI backend from the data backend

TRANSCRIPT

Page 1: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

Trends in platform and application architectures

Enterprise Apps World, London, June 17th 2014

Matt RobinsonVP TechnologyProgress Software

Page 2: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.2

Three trends

Application containersLXC, Docker and the move toward micro-virtualization

ModulesThe rise of Node.js and API-first architectures

UI FreedomSeparating the UI backend from the data backend

Page 3: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.3

Micro-virtualization

Page 4: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.4

Benefits of Virtualization

Image from: https://www.chilli-it.co.uk/vmware-vsphere

Page 5: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.5

Image from: http://www.virtualizemydc.ca/wp-content/uploads/2013/10/vm_11.gif

Benefits of Virtualization

Page 6: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.6

Virtualization led to Infrastructure as a Service (IaaS)

Page 7: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.7

The virtualization model has been squeezed

Page 8: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.8

Micro-virtualization

Page 9: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.9

Micro-virtualization

Image from: http://blog.trifork.com/wp-content/uploads/2013/07/Screenshot_from_docker.io_about.png

Page 10: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.10

Leading cloud platforms have used micro-virtualization for years

Page 11: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.11

Analyst recommendation

 "Organizations looking to simplify application deployment and improve operational efficiency and infrastructure utilization should consider standardized containerization approaches such as Docker.”

Al Hilwa, IDC

Page 12: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.12

Recommended reading

VMs -- The New Infrastructure AnachronismSimon Crosby

Page 13: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.13

Node.js and API-first architectures

Page 14: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.14

JavaScript is growing fast

Sources: http://www.sitepoint.com/best-programming-language-of-2013/ http://redmonk.com/jgovernor/2013/11/01/one-chart-that-tells-you-everything-you-need-to-know-about-github-going-mainstream/

Page 15: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.15

What Is Node.js?

Node.js is a server-side runtime that compiles and executes JavaScript at high speeds

Page 16: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.16

JavaScript is now a full-stack language

Source: http://www.toptal.com/javascript/guide-to-full-stack-javascript-initjs

JavaScript Frontend(jQuery, Boostrap, Angular.js, Backbone, Marionette, etc.)

JavaScript Backend(Node.js, Express, Socket.io, Mongoose, etc.)

JavaScript Database(NoSQL databases with JSON such as MongoDB, CouchDB, etc.)

Page 17: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.17

Key JavaScript and Node.js Takeaways

• JavaScript usage is growing faster than any other language

• JavaScript is a ubiquitous language, well known by millions of developers

• Using Node.js, JavaScript is a fully-functional programming language

• Using Node.js, JavaScript is a full stack language

• Node.js has a fast-growing community and ecosystem

• Node.js is well-suited for APIs

• Node.js is well-suited for real-time, data-intensive apps

• Node.js is well-suited for IoT, wearables, and emergent devices

Page 18: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.18

Node.js encourages modularized, API-first architectures

1. Write lots of tiny apps: Instead of putting a lot of logic into a single process, separate functionality into smaller independent components that talk to each other via APIs.

2. Fine-grained scalability and failover: By writing lots of tiny API-first apps, you can independently scale out each functional component and gracefully fail-over when one instance goes down or crashes.

3. Clean, extensible design: An API-based network boundary between functional components forces you to make state very explicit.

Reference: http://www.quora.com/What-are-some-best-architecture-practices-when-designing-a-nodejs-system

Page 19: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.19

Node.js is a good fit for container-based deployment

VM-1

…Docker

Node.js Containers

VM-2Docker

VM-3Docker

Node.js Containers

VM-XDocker

VM-4Docker

Node.js Containers

OpenStack ComputeModulus Enterprise AdminModulus deploys Node.js applications to a dynamic set of virtual containers across a dynamic set of VMs

and load balances requests across them. Failover and auto-recovery are built into the platform.

Node.js Containers Node.js Containers

Page 20: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.20

Node.js is a good fit for container-based deployment

VM-1

…Docker

Node.js Containers

VM-2Docker

VM-3Docker

Node.js Containers

VM-XDocker

VM-4Docker

Node.js Containers

OpenStack ComputeModulus Enterprise AdminModulus deploys Node.js applications to a dynamic set of virtual containers across a dynamic set of VMs

and load balances requests across them. Failover and auto-recovery are built into the platform.

Node.js Containers Node.js Containers

Deploy, load balance, failover, auto-recover

Page 21: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.21

Node Adoption

“Velocity was the key driving point for PayPal's move to Node.js. We found it enabled a huge boost to our workflow allowing us to iterate faster and innovate more.”

–Jeff Harrel, Director of User Interface Engineering

Page 22: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.22

Recommended reading

The Business Case for Node.jsJoe McCann

Page 23: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.23

Dedicated UI backends

Page 24: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.24

Traditional web architecture

Frontend Developers

BackendDevelopers

Source: http://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/

Page 25: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.25

Modern web architecture

Frontend Developers

BackendDevelopers

Source: http://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/

Page 26: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.26

Liberate the back-end UI layer from the rest of the back-end

"The needs of the front-end are fundamentally different than the needs of the back-end. …It seems almost silly that we didn’t have this separation before… Except before, Node.js didn’t exist.”

Nicholas Zakas

Page 27: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

© 2014 Progress Software Corporation. All rights reserved.27

Recommended reading

Node.js and the new web front-endNicholas Zakas

Page 28: Trends in platform and application architectures (Enterprise Apps World, London, June 17th 2014)

Matt [email protected]@mattrobinson140