Software is eating the world! Every company is becoming a software company. If companies don’t, they cease to exist. Just imagine: you are a thermostat maker and suddenly you have Google as a competitor (via its Nest acquisition). This is just one of the many recent examples.
Interestingly a lot of the innovations in the software industry are fuelled by abstraction and automation, concepts that are well-known in the MDD community. As the world is awakening to these concepts there is a clear opportunity (and need!) to bring MDD to a much broader audience.
In this keynote we will analyse what’s happening on all layers of the software stack. We will also explore how we can become more relevant as an MDD community. There is a ton of knowledge and experience in our community that could move the needle for a lot of companies, but are we using it? We need to stop doing what we always do. We need bold ideas and the courage to start a journey with no clear endpoint!
Software is eating the world and MDD should be in the driving seat
1. Software is eating the World
and MDD should be in the driving seat
Johan den Haan, CTO @ Mendix
Twitter: @JohanDenHaan
Blog: theenterprisearchitect.eu
2.
3. It feels like big
parts of the IT-
world are stuck
in their own
groundhog day
19. Yes, we still need hardware…
Compute Communicate Store
Layer 0 Hardware Servers Switches, routers Storage
20. The software defined datacenter
Layer 1
Software Defined
Datacenter
Infrastructure engineersVirtual Machines
Compute
Software Defined
Networking (SDN)
Communicate
Software Defined
Storage (SDS)
Store
Layer 0 Hardware Servers Switches, routers Storage
21. What is commonly referred to as IaaS
Layer 1
Layer 2
Software Defined
Datacenter
Infrastructure engineersVirtual Machines
Compute
Software Defined
Networking (SDN)
Communicate
Software Defined
Storage (SDS)
Object storage
Store
Layer 0 Hardware Servers Switches, routers Storage
22. A layer in the grey area between IaaS and PaaS
Layer 1
Layer 2
Software Defined
Datacenter
Foundational PaaS
Infrastructure engineers
DevOps
Virtual Machines
Application containers
Compute
Software Defined
Networking (SDN)
Routing, messaging
Communicate
Software Defined
Storage (SDS)
Object storage
Store
Layer 0 Hardware Servers Switches, routers Storage
23. The core of every PaaS
Layer 1
Layer 2
Layer 3
Software Defined
Datacenter
Foundational PaaS
PaaS
Infrastructure engineers
DevOps
Professional developers
Virtual Machines
Application containers
aPaaS
Compute
Software Defined
Networking (SDN)
Routing, messaging
Communicate
Software Defined
Storage (SDS)
Object storage
Store
Layer 0 Hardware Servers Switches, routers Storage
24. Abstraction and automation
Layer 1
Layer 2
Layer 3
Software Defined
Datacenter
Foundational PaaS
PaaS
Infrastructure engineers
DevOps
Professional developers
Virtual Machines
Application containers
aPaaS
Compute
Software Defined
Networking (SDN)
Routing, messaging
Communicate
Software Defined
Storage (SDS)
Object storage
Store
Layer 0 Hardware Servers Switches, routers Storage
27. A cloud architecture is a strong enabler of the digital
enterprise, it increases the pace of innovation
•Abstraction and
automation allow to
focus on what matters:
apps
•Apps that are data-
driven, adaptive, and
change in real-time
28. PaaS vendors only address
the deployment piece of the
equation, they lack a vision on
application development.
29. Writing code is still as sluggish
as ever. Why don’t we apply
abstraction and automation
again?
30. A model-driven approach that empowers
business engineers
Layer 1
Layer 2
Layer 3
Layer 4
Software Defined
Datacenter
Foundational PaaS
PaaS
Model-Driven PaaS
Infrastructure engineers
DevOps
Professional developers
Business engineers
Virtual Machines
Application containers
aPaaS
Model Driven aPaaS,
bpmPaaS
Compute
Software Defined
Networking (SDN)
Routing, messaging
iPaaS
Model-Driven iPaaS
Communicate
Software Defined
Storage (SDS)
Object storage
dbPaaS
baPaaS
Store
Layer 0 Hardware Servers Switches, routers Storage
31. Styling & user interaction
Flows & actions
JVM
Browser
ORM
Access rules
API & connectors
Server communication
Client-side logic Rich Forms DSL
CSS
Microflow DSL
Mapping DSL
Domain model
Security DSL
40. From hardware to end-user
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Software Defined
Datacenter
Foundational PaaS
PaaS
Model-Driven PaaS
App Services
SaaS Applications
Infrastructure engineers
DevOps
Professional developers
Business engineers
Citizen developers
End-users
Virtual Machines
Application containers
aPaaS
Model Driven aPaaS,
bpmPaaS
App Services
Compute
Software Defined
Networking (SDN)
Routing, messaging
iPaaS
Model-Driven iPaaS
Communications and
Social Services
Communicate
Software Defined
Storage (SDS)
Object storage
dbPaaS
baPaaS
Data-as-a-Service
Store
Layer 0 Hardware Servers Switches, routers Storage
41. What do you see when you look at this?
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Software Defined
Datacenter
Foundational PaaS
PaaS
Model-Driven PaaS
App Services
SaaS Applications
Infrastructure engineers
DevOps
Professional developers
Business engineers
Citizen developers
End-users
Virtual Machines
Application containers
aPaaS
Model Driven aPaaS,
bpmPaaS
App Services
Compute
Software Defined
Networking (SDN)
Routing, messaging
iPaaS
Model-Driven iPaaS
Communications and
Social Services
Communicate
Software Defined
Storage (SDS)
Object storage
dbPaaS
baPaaS
Data-as-a-Service
Store
Layer 0 Hardware Servers Switches, routers Storage
•A lot of languages
•Domain Specific Languages everywhere
•A framework for language composition
•A language engineering challenge
•A huge opportunity!
42. The opportunity…
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Software Defined
Datacenter
Foundational PaaS
PaaS
Model-Driven PaaS
App Services
SaaS Applications
Infrastructure engineers
DevOps
Professional developers
Business engineers
Citizen developers
End-users
Virtual Machines
Application containers
aPaaS
Model Driven aPaaS,
bpmPaaS
App Services
Compute
Software Defined
Networking (SDN)
Routing, messaging
iPaaS
Model-Driven iPaaS
Communications and
Social Services
Communicate
Software Defined
Storage (SDS)
Object storage
dbPaaS
baPaaS
Data-as-a-Service
Store
Layer 0 Hardware Servers Switches, routers Storage
Turn “software-defined” into “metadata-driven”
43. 2 ideas for a metadata-driven future
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Software Defined
Datacenter
Foundational PaaS
PaaS
Model-Driven PaaS
App Services
SaaS Applications
Infrastructure engineers
DevOps
Professional developers
Business engineers
Citizen developers
End-users
Virtual Machines
Application containers
aPaaS
Model Driven aPaaS,
bpmPaaS
App Services
Compute
Software Defined
Networking (SDN)
Routing, messaging
iPaaS
Model-Driven iPaaS
Communications and
Social Services
Communicate
Software Defined
Storage (SDS)
Object storage
dbPaaS
baPaaS
Data-as-a-Service
Store
Layer 0 Hardware Servers Switches, routers Storage
2
1
44. 1. Metadata-driven deployment and operations
•Derive all deployment meta information and
non-functional characteristics from model-
driven PaaS layer
•Specify as metadata and generate
configuration for lower layers
45. 1. Metadata-driven deployment and operations
•Examples:
Specify SLA for app, measure compliance at runtime,
and adjust infrastructure if needed
• Elasticity of resources
• Deploy on location close to users (low latency)
App needs to communicate with service X and Y
securely, automatically configure network to facilitate
this
Configure iPaaS (integration flows, queues, etc.) based
on specified integration points in app model
Characteristics and use of entities in the app model
should lead to auto provisioning of the right database
(type, size, scale)
46. 1. Metadata-driven deployment and operations
Possible because everything is software-defined,
but goes way beyond that!
47. 2 ideas for a metadata-driven future
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Software Defined
Datacenter
Foundational PaaS
PaaS
Model-Driven PaaS
App Services
SaaS Applications
Infrastructure engineers
DevOps
Professional developers
Business engineers
Citizen developers
End-users
Virtual Machines
Application containers
aPaaS
Model Driven aPaaS,
bpmPaaS
App Services
Compute
Software Defined
Networking (SDN)
Routing, messaging
iPaaS
Model-Driven iPaaS
Communications and
Social Services
Communicate
Software Defined
Storage (SDS)
Object storage
dbPaaS
baPaaS
Data-as-a-Service
Store
Layer 0 Hardware Servers Switches, routers Storage
2
1
48. 2. APIs and data as first-class language concepts
•Annotate APIs and data with proper metadata
so that they become an integral part of the app
model
•APIs and data extend the language with “build-
in” knowledge
49. 2. APIs and data as first-class language concepts
•Example:
50. 2. APIs and data as first-class language concepts
•Example:
51. 2. APIs and data as first-class language concepts
Examples are small steps in the right direction,
way more is possible!
52. Summary: abstraction, automation, metadata
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Software Defined
Datacenter
Foundational PaaS
PaaS
Model-Driven PaaS
App Services
SaaS Applications
Infrastructure engineers
DevOps
Professional developers
Business engineers
Citizen developers
End-users
Virtual Machines
Application containers
aPaaS
Model Driven aPaaS,
bpmPaaS
App Services
Compute
Software Defined
Networking (SDN)
Routing, messaging
iPaaS
Model-Driven iPaaS
Communications and
Social Services
Communicate
Software Defined
Storage (SDS)
Object storage
dbPaaS
baPaaS
Data-as-a-Service
Store
Layer 0 Hardware Servers Switches, routers Storage
2
1
57. Thank You
Johan den Haan, CTO @ Mendix
Twitter: @JohanDenHaan
Blog: theenterprisearchitect.eu
Notas do Editor
Good morning!
Recovered from the Castle Inn?
This presentation will be a bit different… we will talk about “cloud” and “business”…
But… also about “metadata”, “citizen developers”, “language engineering”…
But allow me to start with a story…
If you have visited our Rotterdam office you probably have seen this in our R&D department…
We are weird… you will see that in the text track session “behind the scenes of R&D”
I often have a conversation with visitors about the reasons for these pictures… these 3 guys inspire us!
You probably all know the middle one… Steve Jobs: product experience
George Lucas: trendsetter, father of geek culture!
Bill Murrary: why o why….?
He is there because he reminds us of our mission. We need to save the IT world from being stuck in groundhog day!
Who did see the movie Groundhog day?
The lead character, played by Bill Murray, experiences the same day repeatedly.
Every morning he wakes at 6am just to learn that it is the same day again.
Does this feel like your mornings 5 days a week?
Oh no… not such a day again.
Is this your way of fixing it?
… well… I hope this wasn’t your morning…
… and I also hope this isn’t your reality
Unfortunately, in big parts of the IT world it is!
And the only way to get out of it is to stop doing what you are doing… a radical change is needed…
Why?
http://www.flickr.com/photos/robertstrains/7507283186/
Because every company is a software company---or at least aspiring to be one.
The ability to use software will revamp industries and create new leaders.
Does this sound a bit distant to you? …>
It definitely does to the maker of this…. I guess he company that makes this doesn’t see itself as a software company…
Well… unless you wake up in the morning and then you suddenly have Google as a competitor (via its Nest acquisition).
Or just take Square as another example. They are seriously disrupting the financial industry.
All you need to accept creditcards is that tiny thing on an iPhone. And you’re in business.
And if you are ready for it, you can even ditch creditcards completely and use mobile payments.
You may think if old-school industries like cars and taxis are being disrupted by startups taking a software-based approach to innovation, what does this mean for my industry?
Well in fact, it is happening in every industry. Examples like dropbox is storage, airbnb who disrupting the hotel business, spotify in music, nest home automation. The list goes on about recent examples of new companies that take on inefficient industries through the use of applications.
So, …Software is disrupting industries…
These disrupters are companies that started out as a company centered around software or are existing companies that have learned how to use software as a competitive advantage.
You could say that these disrupters are digital companies, digital enterprises…
In my opinion, there is no choice. If companies want to survive they need to become digital. Which means:
Connected: the “internet-of-things” is changing how enterprises connect with their partners and customers. Any product can gather data and be connected with the enterprise.
Intelligent: it is knowledgeable about everything, it knows how to process all the data it get. You could call this “big data analytics”
Adaptive: it is able to adapt based on the information it gathers via its connections. It is agile.
Always-on: there is no “time-to-market”, everything should be direct and at real-time.
The important question for a lot of companies today is: how to become a digital enterprise? How to increase the pace of innovation?
How to turn the IT department from a business prevention department into a business enabler?
I could of course bore you with 30 minutes of semi-scientific advice…
And I will…!
But…
If you don’t like that… go buy this book as an ebook and start reading now!
It’s a business novel that tells the story of Bill Palmer, CIO of Parst Unlimited. In the first half it gets worse on each page. In the second half of the book Bill starts to learn.
This guy is not working in an IT company.
It is a gripping story about what can go wrong with IT and some pointers to how to fix it.
The message of the book: IT should be at the core of your business! There is no IT AND business… it is an integral part of the business.
That easier to say than to do. In the average company IT is already swamped. Projects are failing, backlogs are growing, and the business is unhappy.
So, how to make your IT efforts competitive?
Abstraction and automation are the main elements in modern cloud architectures. And these two concepts are key to making your IT efforts competitive.
Let’s have a look at layered cloud architectures in which each layer is an abstraction and automation of the lower layers.
The popular wisdom that cloud comes in three flavors (IaaS, PaaS, SaaS) is not providing a realistic picture of the current landscape.
The lines between these categories are blurring and within these categories there are numerous subcategories that describe a whole range of different approaches.
Let’s look at a more sophisticated model that actually helps to understand what’s happening in the cloud.
Some might not believe it, but even in the cloud you still need hardware… ;)
I call it layer 0… I’m still a developer…. ;)
I use 3 columns in my framework: compute, communicate, store. These 3 elements can be used on any layer, they even apply to us humans.
We can process/compute data, we can communicate data, and we can store data in our memory.
Or in other words from the object oriented programming world: behaviour, messaging, and state.
This is a battle for market share
Price wars (last week Google and Amazon dropped prices by 30% to 80% and this week Azure followed)
Commodity
4 main players -> OpenStack/IBM
These providers have more services, I will come back to that later.
From infrastructure-centric to application-centric.
In this world, everything is “software-defined” and can therefore be automated…
It basically all is about abstraction and automation… with the goal to enable “self-service” for a different audience. Up to developers deploying and running their own code… no infra or operations know-how needed.
The thing is…
It’s plumbing! Just like electricity and water.
http://www.flickr.com/photos/reqfordrm/9674409550/
Database services
BigData analytics -> BigQuery on the Google Cloud Platform
iPaaS -> Integration and Middleware services on IBM BlueMix (CloudFoundry based, former WebSphere components)
Differentiate: goal -> get developers on the platform.
I think this framework helps to get a better understanding of what’s currently happening in the cloud market.
These layers are also a strong enabler of the digital enterprise. Because of the abstraction and automation the pace of innovation can increase a lot!
2 bullets from slide.
Application development has never been as important as now
However…
Again: It’s all about abstraction and automation with the goal to enable self-service for a new audience -> so there is a logical next step
http://www.flickr.com/photos/aigleboy/4485153204/in/photostream/
Remember my previous statement? -> It’s all about abstraction and automation with the goal to enable “self-service” for another audience.
Visual models to working software…
Multiple DSLs for each aspect of apps or vertical DSLs.
Hackaton story
1. Impressive what you can do in 24 hours with a Model-Driven PaaS.
2. It was hard to tell the difference between the Mendix applications developed by the professional and student teams. That’s all the more amazing when you consider the students such as the Demkes brothers had little familiarity with the Mendix platform before the hackathon began.
-> It is more about creativity and knowing the domain than about tech skills…
And we can even go further…
An app service layer so that Citizen devs can compose instead of develop
Same 3 categories.
App Services (ready-made components to re-use in your apps), Communications and Social services, and Data-as-a-Service.
No clean sheet, scaffolding -> you can start with examples, you know what to do
This layer is all about composing for the business, by the business!
And then the last step…
And we complete the picture by also bringing end-users on the same platform.
This is a significant step as it blurs the lines between developers and users. Power users will have immediate access to all the power of the platform.
Blurring the lines between layers -> people can move up or down if they like / can -> this significantly changes the playing field.
Let me give you an example…
Why is it relevant to blur these lines? Do we want that?
Well, every business on this globe is running on Access / Excel!
So, we cannot do without…
It is accessible… you cannot stop the gifted amateur!
So, embrace him! In the modern era this means…
Just allow me to show another Mendix example…
Released yesterday…
Easily invite users… spread the word…
… the quick switcher, to easily navigate between apps.
It features a “create new app” button, so that any user start to play around. Imagine the power of this, in combination with the unlimited free sandboxes!
Truly unlocking the creative potential of the entire workforce
Do companies want this?
Yes, but only with proper control…
In case of Mendix with admin for IT…
… and everything in-between
Abstraction and automation on each layer!
Everything is software defined.
All these components, if done in a proper way, and if they collaborate, will enable companies to become a digital enterprise.
We need the knowlegde in this community -> metadata driven on each layer!
Imagine what you could add to every aspect of this framework / architecture
Still such a world of pain… if you look at it from a language engineering / modeling perspective…
It would be an act of charity if we as a community would take this challenge!
Drive lower layers based on metadata on the model-driven PaaS layer.
Feed model-driven PaaS layer with metadata from higher layers.
Drive lower layers based on metadata on the model-driven PaaS layer.
Feed model-driven PaaS layer with metadata from higher layers.
http://www.wolfram.com/language/
Mendix App Service
Runs somewhere else
Import API model
Powerful in combination with generic interpreter
App Service extends microflow language
E.g. data from D&B can be used everywhere in Model directly because domain model is part of API definition.
UI definitions can directly use the data from services, no “integration” needed.
It is all about abstraction and automation… on each layer.
Everything is software defined.
But, as the world is waking up to these concepts, there is a huge opportunity for us as an MDD community to use our knowledge and experience on a much bigger scale.
We should turn software-defined into metadata-driven!
I mentioned 2 possible directions. These are just examples… I would love to hear your thoughts about this!
One thing I know for sure…
…companies need all of this to survive in todays competitive market.
They need to become digital…
To transform to a digital enterprise your IT efforts need to become competitive it needs to become an integral part of the business.
You can only do this by applying abstraction and automation on all layers.
Software-defined should become metadata-driven…
This dramatically increases the pace of innovation.
And in all of this… MDD should take the driving seat
Metadata-driven FTW!
It is time to save your colleagues from being stuck in groundhog day.
It is time to save your customers from being stuck in groundhog day.
Do something about it. Start to save the world from being stuck in groundhog day!
It’s almost 6am…
It is time to wakeup in a new day! It’s time for MDD to take the driving seat…!!!