Once Upon A Time A Brief History of Computing
Once upon a time – there was one computer A MainFrame Computer We used Main Frame for Everything
Developers Used Cobol & Fortran
Users Sat At Terminals
And Could Accomplish Amazing Things
The Developers Life Was GOOD!
Then Someone invented PC And Soon We Used PC For Everything
Developers Learned Basic
And IT Ran from PC to PC
And Technology Life Was Hard!
Then Someone said “PC needs a Server”
Developers Learned dBase and C
And IT connected PCs to Servers Users Shared Files and Printers
And IT Stopped RunningWhile Users Played Solitaire
Then Someone said:“The place for DATA is on the Server”
Developers Learned Visual Basic and C++
The DBA Was Born
And IT Managed Two Tiers of Systems
Then Someone said:“We should centralize the servers and data”
So IT Centralized all the Servers and Data
And Users said: “Too Slow!”
To which the Captain said:“More Power Scotty!”
So Web and Application Servers
And Browsers Were Invented
Developers Learned HTML and CSS
The Web Administrator Was Born
Now IT managed Three Tiers of Computers White Hats and Black Hats were born And Users Watched P*rn Or Played Online Poker
And Soon Everyone Sat At PCs
And Could Accomplish Amazing Things
While IT Kept Things Working
Then someone invented the InternetAnd Mobile Phones
And More Browsers
Developers Learned OOP, C#, Ruby, MVC, MVVM
And How to be Agile
Developers made lots of Money!
The Developer Life Was GOOD!
Then somebody said:“Why Not Cloud?”
IT, Developers, Web Admins, and DB Admins
IT, Developer, Web Admin, and DB Admin Looked At Each Other and Said
“What Now!”
I’m here to say:
Local Variables Meeting March 17, 2016
Physical Tiers
Why? Architects and Engineers took advantage of new technologies to add ever more power hungry solutions
Transition Time Followed by a physical architectural change that increased workload flexibility But each transition took time
1 Tier Scalability Pattern During PC and Early Web Phase we could only Monolithic Physical and Application Layers
2 Tier Scalability Pattern Then we added first one tier and then another and eventually had the capacity to Scale Up across two Tiers (Web and App) while Scaling Out across one tier (DB) Scalable Physical but not Application Layers
Monolithic Applications Applications are still primarily monolithic in nature We think of them as a thing (Customer App, Web App) Even when there are multiple tiers
N-Tier Scalability Pattern We are now seeing a third dimension emerge Scalable Physical and Application Layers
New Application Architypes?
N-Tier Scalability Pattern Supporting even more workload flexibility and scalability
Monolithic Applications?
Functionally Decomposed Microservices
New Modular Applications
Why Microservices Each Microservice Does one thing and does it well Is an isolated (encapsulated) application relying on messages and contracts for interaction Which means Each Microservice: Can be created on demand Can be updated independently Can be scaled independently Can leverage native cloud features for resiliency, without programming Can be shutdown when no longer needed
Each microservice module can be scaled up or out independently across three tiers
True Cloud Applications Use only the resources required Only when and as much as they are needed While at the same time leveraging the always on, always available features of a cloud (computing utility).
A New ERA – Utility Computing The Cloud ERA changes the fundamental concepts of modern computing services: Delivery, Management and Support.
What Does This Mean Very similar to Mainframe to PC transition. Rapidly changing tools, paradigms and capabilities Waiting for things too settle down will lead to career obsolescence (Cobol or Fortran anyone?)
SO….. Pick a Public Platform
Start Learning and Experimenting Be sure to: Be comfortable with Agile Value Dev Ops Understand how Microservices: Simplifies Agile Development While Complicating Application Definition Yet makes Application Design more flexible and supportable Learn to: Understand New Architecture Patterns (Microservices) Explore New, or Old, Design Methodologies (DDD) Get Familiar with: New Tools API Gateway, Inter-Process Communicatons, Event Driven Management, Service Discovery
Start Learning and Experimenting Get Ready for New Cloud Platforms Elastic Beanstalk, Service Fabric