SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
IMPROVING VELOCITY
THROUGH ABSTRACTION
A PRIMER ON CONTAINERIZATION,
VIRTUALIZATION, AND THE CLOUD
ALL ABOARD THE HYPE TRAIN
NON-STOP TO THE SCRAPYARD
HARD TO MAKE INFORMED TECH DECISIONS
▸ Hype - NetFlix is doing it!
▸ Fast Pace of Technology - React or Angular?
▸ Biases - Shiny Object Syndrome
▸ Self-Interest - Lack of Skin-in-the-Game
▸ LOSE TRACK OF WHAT’S IMPORTANT ….
SHOW ME THE MONEY VALUE
BUSINESS VALUE
What your customers want!
VELOCITY
Business Value over Time
Do modern day opportunities
still exist to improve Velocity ?
…and at Force-Multiplier levels!!
YES!!!
PACMAN
1980 2005
Assembly Java
1 Developer* 1 Developer
1 Year Dev 2 Day Dev
2 Month Dev
20x Improvement!!
787 DREAMLINER
2009
32 Billion Dollar Project
Cutting-Edge Technology
0.15x Improvement!!
95%
5% Business Value
?
?
?
?
?
DEVELOPER PRODUCTIVITY
ASSEMBLY CODE
ld hl,#36a5
rst #18
ld e,(hl)
inc hl
ld d,(hl)
ld ix,#4400
add ix,de
push ix
ld de,#fc00
add ix,de
ld de,#ffff
bit 7,(hl)
jr nz,#2c7c
ld de,#ffe0
inc hl
ld a,b
ld bc,#0000
add a,a
jr c,#2cac
ld a,(hl)
cp #2f
jr z,#2c92
ld (ix+#00),a
inc hl
add ix,de
inc b
jr #2c84
inc hl
pop ix
ld a,(hl)
and a
jp m,#2ca4
ld a,(hl)
ld (ix+#00),a
inc hl
add ix,de
djnz #2c9a
ret
; (hl+2*b) -> hl
; Start of Color RAM
; Calculate starting pos in CRAM
; 4400 + (hl) -> stack
; Calculate starting pos in VRAM
; Offset for normal text
; (3)
; Offset for top + bottom 2 lines
; b -> a
; 0 -> b,c
; 2*a -> a
; Special Draw routine for entries 80+
; Read next char
; #2f = end of text
; Done with VRAM
; Write char to screen
; Next char
; Calc next VRAM pos
; Inc char count
; loop
; Get CRAM start pos
; Get color
; Jump if > #80
; Get color
; Drop in CRAM
; Next color
; Calc next CRAM pos
; Loop until b=0
JAVA CODE
Font smallfont = new Font("Helvetica", Font.BOLD, 14);
graphics.setFont(smallfont);
graphics.setColor(Color.BLUE);
graphics.drawString("'S' to start game", 120, 100);
“NO MATTER THE PROGRAMMING
LANGUAGE CHOSEN,
A PROFESSIONAL DEVELOPER WILL
WRITE IN AVERAGE 10 LINES OF CODE
(LOC) DAY. “
FRED BROOKS (MYTHICAL MAN MONTH)
JAVA
ASSEMBLY
C/C++
VELOCITYKOTLIN ABSTRACTION
Performance is no longer a driving factor !!
“THE BEST CODE IS NO CODE AT ALL“
JEFF ATWOOD
CODING HORROR / STACKOVERLOW
DEVELOPER PRODUCTIVITY
HIGHER
Business Value
Registers
Memory Management
Performance Focus
Verboseness
Null Checking
DIY
Chipset specific code
Gotos
Here is my business logic;
run it on a chip for me;
I don’t care how.
So, how do we further
improve Velocity ?
OPPORTUNITIES
▸ Diminishing Returns with Programming
Languages
▸ Development Eco-system / Frameworks /
Practices
▸Infrastructure
Here is my app;
run it for me;
I don’t care how.
DEVELOPER FOCUS
Here are my servers;
Set them up and maintain them
for me;
I don’t care how.
OPS FOCUS
95%
5% Value
?
?
?
?
?
DEVELOPER PRODUCTIVITY
+ OPS EFFICIENCY
PAAS
BARE-METAL
IAAS
VELOCITYABSTRACTION
CAAS / IAAS+
BARE METAL / ON-PREM
OS+APP
HARDWARE
OS+APP
HARDWARE
OS+APP
HARDWARE
Long lead time !
VM
VIRTUAL MACHINES (VM’S)
OS+APP
HOST OS
HARDWARE
VM
OS+APP
VM
OS+APP
CLOUD
▸ API to some shared pool of resources
▸ Typically: Rapid, On-Demand, Elastic, and
Self-Serve
▸ Public, Private, or Hybrid
INFRASTRUCTURE AS A SERVICE (IAAS)
▸ OpenStack, vSphere, AWS, etc
▸ API for virtualized infrastructure
▸ Compute / Network / Storage
▸ Including “Infrastructure Orchestration”
▸ Auto-Healing, Bin-Packing, Scaling, etc
ON-PREM IAAS
OS
HARDWARE
MIDDLEWARE
APPLICATION
VIRTUALIZATION
OS
HARDWARE
MIDDLEWARE
APPLICATION
VIRTUALIZATION
YOU MANAGE
OTHERS MANAGE
Note .. you’re still on the hook for the OS!
Clear separation of concerns …
VM VM
CONTAINERS
OS
HOST OS
OS
APP + BIN
OS
APP + BIN
HARDWARE
CONTAINER ENGINE
CONTAINERCONTAINER
REALLY BIG!
WHO MANAGES IT ?
CONTAINERS
▸ Lightweight, stand-alone, portable, executable package of
software to run specific services
▸ Runs as an isolated process, but on a SHARED Operating
System
▸ Allows for more efficient resource consumption
▸ History back to 1979 (chroot) and 2000 (FreeBSD Jails)
▸ Numerous different Containers exist …
▸ Often sharing the same underlying tech - runc / containerd
DOCKER
▸ Docker the Company
▸ Docker the Containerization Technology
▸ Packaging, Deploying, and Running Docker Images
▸ Popularized container technologies ~2013
▸ First big win was local containers on developer machines
▸ CTO / Founder Solomon Hykes departure - March/28/18
▸ Not the ONLY nor the FIRST container technology ..
▸ Ex-passenger on the Hype Train ?
ON-PREM IAAS
OS
HARDWARE
MIDDLEWARE
APPLICATION
VIRTUALIZATION
OS
HARDWARE
MIDDLEWARE
APPLICATION
VIRTUALIZATION
YOU MANAGE
OTHERS MANAGE
CAAS
CONTAINER AS A SERVICE
OS
HARDWARE
CONTAINER
MIDDLEWARE
VIRTUALIZATION
APPLICATION
No longer responsible for OS! (better for security)
CONTAINER AS A SERVICE (CAAS/IAAS+)
▸ Kubernetes, Docker Swarm, Apache Mesos, etc
▸ API at Container level
▸ OS abstraction
▸ Including “Container Orchestration”
▸ Auto-Healing, Bin-Packing, Scaling, etc
KUBERNETES (K8S)
▸ Open-Source Docker-based Container Orchestration / CaaS /
IaaS+ by Google
▸ Used to deployed BILLIONS of containers per month on
Google’s infrastructure
▸ Adds concept of Pods - groupings of containers
▸ Popularized Container Orchestration ~2015
▸ Not the ONLY nor the FIRST container orchestration tool..
▸ Full steam ahead for the Hype Train !!
KUBERNETES PHILOSOPHY
Here’s my code;
I’ll tell you EXACTLY how you
should run it for me;
and don’t you dare make any
assumptions on the deployment
WITHOUT my written consent!
DEPLOYING TO KUBERNETES
▸ Define Docker File
▸ Define Deployment, Pod, Networking, and
Services
▸ Publish to Registry
▸ Deploy
▸ kubectl run my-app
WORK REQUIRED
▸ Configuration Management
▸ Binary Management
▸ Memory Management
▸ JVM* and older Linux tools (free / top) will look at the OS host
OVERALL memory / CPU counts instead of container ones !!
▸ “Why you’re going to FAIL running Java on Docker” - Redhat
Workshop
Here is my app;
run it for me;
I don’t care how.
CONTAINER / VM
PLATFORMS?
BINARIES /
DEPENDENCIES
APPLICATION
BUILDPACK
ON-PREM IAAS
OS
HARDWARE
MIDDLEWARE
APPLICATION
VIRTUALIZATION
OS
HARDWARE
MIDDLEWARE
APPLICATION
VIRTUALIZATION
YOU
MANAGE
OTHERS
MANAGE
CAAS
OS
HARDWARE
CONTAINER / POD
MIDDLEWARE
VIRTUALIZATION
APPLICATION
PAAS
OS
HARDWARE
CONTAINER
MIDDLEWARE
VIRTUALIZATION
APPLICATION
Dev Focus is now on Application Development
PLATFORM AS A SERVICE (PAAS)
▸ AWS Beanstalk / PCF / Heroku / ETC
▸ Popularized by Heroku ~2009
▸ API at Application Level
▸ VM or Container hosted!
▸ Including “Application Orchestration”
▸ Auto-Healing, Bin-Packing, Scaling, etc
PIVOTAL CLOUD FOUNDRY (PCF)
▸ Container-based Open-Source PaaS by Pivotal
▸ MultiCloud (Public / Private or Hybrid)
▸ Modern Cloud-Native / 12 Factor Apps
▸ Deployments: Java, .NET Native, NodeJS, Docker, Go, etc
▸ Also includes:
▸ PKS - Pivotal Container Service (Kubernetes)
▸ PFS - Pivotal Function Service
DEPLOYING TO PCF
▸ Deploy
▸ cf push my-app
HIGHER
Business Value
Manual Scaling
Container Management
Orchestration
Verboseness
Manual Updates / Reboots
DIY
DEVELOPER PRODUCTIVITY
+ OPS EFFICIENCY
ABSTRACTION
PAAS
BARE-METAL
IAAS
CAAS / IAAS+
To maximize BUSINESS VALUE..
.. work at the highest
abstraction level possible.
THE POINT
For the MAJORITY (>99%) of GreenField
business apps, default to:
Java for programming language*.
PaaS for infrastructure*.
*or higher
Economics have shifted where general
focus should be:
Developer productivity over performance
and flexibility.
QUESTIONS TO ASK ..
(WHEN OPTIMIZING, NEEDING A LOWER ABSTRACTION LEVEL)
▸ What is your bottleneck ?
▸ Hardware is cheap! Developers are expensive!
▸ You’re not Google / NetFlix !
▸ Profile!
▸ Are you re-inventing the wheel ?
▸ Compare to off-the-shelve solutions
▸ Have you weighted the costs ?
▸ Not a free lunch !!
▸ Understand that you’re trading off productivity
MICROSERVICES
▸ Independently deployable, small, modular
services instead of larger Monolith style apps
▸ Not really a new concept !
▸ Service Oriented Architecture (SOA) has been
around for much longer!
▸ Passenger on the Hype Train since ~2014!
Do MicroServices increase Velocity ?
IT DEPENDS!!!
and they can often
NEGATIVELY affect it!!
NOT A SILVER BULLET !
▸ Net Complexity Booster!! / Not an Abstraction !
▸ Debugging costs
▸ Refactoring costs
▸ Multiple SCM Management
▸ Deployment CI/CD costs
▸ API Versioning
▸ Retry Logic
▸ Performance Hit (Networks are slower!!)
▸ Transactions
“DON'T LEAP INTO MICROSERVICES
JUST BECAUSE IT SOUNDS COOL.
SEGREGATE THE SYSTEM INTO JARS
USING A PLUGIN ARCHITECTURE
FIRST.
IF THAT'S NOT SUFFICIENT, THEN
CONSIDER INTRODUCING SERVICE
BOUNDARIES AT STRATEGIC POINTS.”
UNCLE BOB (ROBERT C MARTIN)
“I'M WARY OF DISTRIBUTION AND MY
DEFAULT INCLINATION IS TO PREFER A
MONOLITHIC DESIGN.”
MARTIN FOWLER
“IF YOU CAN’T BUILD A WELL-
STRUCTURED MONOLITH,
WHAT MAKES YOU THINK YOU CAN BUILD
A WELL-STRUCTURED SET OF
MICROSERVICES?”
SIMON BROWN
CODING THE ARCHITECTURE
RECOMMENDATIONS
▸ Monoliths are NOT a bad thing !!
▸ MicroServices are NOT a replacement / but an alternative!
▸ Ensure proper DevOps first
▸ For Performance:
▸ Tech Giant Fallacy - You’re not NetFlix!
▸ Profile !! What is your Bottleneck ?
▸ Consider “Cookie Cutter” scaling !
▸CONSIDER AND UNDERSTAND THE COSTS!!
▸WEIGHT THE PROS AND CONS!!
THE SWEET SPOT (DEFAULT)
Monolith
1 ∞
Number of MicroServices
Per FunctionPer Agile Team
Super
?
THE QUESTION THAT YOU
SHOULD ALWAYS BE ASKING ..
IS THIS ADDING BUSINESS VALUE?
“IN DEFERENCE TO THE GODS OF
YAGNI,
WHEN IN DOUBT ERR ON THE SIDE OF
SIMPLICITY. ”
MARTIN FOWLER
Victor Szoltysek
Platform Architect @ Pivotal
vszoltysek@pivotal.io

Más contenido relacionado

Similar a Improving velocity through abstraction

APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...apidays
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...Ludovic Piot
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...Daniel Bryant
 
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your CloudCloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your CloudMark Hinkle
 
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"Daniel Bryant
 
An introduction to Serverless
An introduction to ServerlessAn introduction to Serverless
An introduction to ServerlessAdrien Blind
 
Developer Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePH
Developer Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePHDeveloper Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePH
Developer Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePHDEVCON
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudJulien SIMON
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativecornelia davis
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeVMware Tanzu
 
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérienceLudovic Piot
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesQAware GmbH
 
Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Daniel Bryant
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudMark Hinkle
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudMongoDB
 
Docker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-ITDocker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-ITStijn Wijndaele
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPSACA IT-Solutions
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Reflections On Serverless
Reflections On ServerlessReflections On Serverless
Reflections On ServerlessDiego Pacheco
 

Similar a Improving velocity through abstraction (20)

APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
 
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your CloudCloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
 
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
 
An introduction to Serverless
An introduction to ServerlessAn introduction to Serverless
An introduction to Serverless
 
Developer Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePH
Developer Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePHDeveloper Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePH
Developer Tech Radar by Alistair Israel | DevCon Summit 2015 #GoOpenSourcePH
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloud
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards Kubernetes
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud
 
Docker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-ITDocker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-IT
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Reflections On Serverless
Reflections On ServerlessReflections On Serverless
Reflections On Serverless
 

Más de VictorSzoltysek

ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APIVictorSzoltysek
 
From SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid DeploymentsFrom SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid DeploymentsVictorSzoltysek
 
The Future of JVM Languages
The Future of JVM Languages The Future of JVM Languages
The Future of JVM Languages VictorSzoltysek
 
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...VictorSzoltysek
 
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...VictorSzoltysek
 
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...VictorSzoltysek
 
Real-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused TipsReal-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused TipsVictorSzoltysek
 
Victor's Awesome Retro Deck
Victor's Awesome Retro DeckVictor's Awesome Retro Deck
Victor's Awesome Retro DeckVictorSzoltysek
 
Software Development in Internet Memes
Software Development in Internet MemesSoftware Development in Internet Memes
Software Development in Internet MemesVictorSzoltysek
 
Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020VictorSzoltysek
 
Making your RDBMS fast!
Making your RDBMS fast! Making your RDBMS fast!
Making your RDBMS fast! VictorSzoltysek
 
SQL Tips + Tricks for Developers
SQL Tips + Tricks for DevelopersSQL Tips + Tricks for Developers
SQL Tips + Tricks for DevelopersVictorSzoltysek
 
Less is more the 7 wastes of lean software development
Less is more   the 7 wastes of lean software developmentLess is more   the 7 wastes of lean software development
Less is more the 7 wastes of lean software developmentVictorSzoltysek
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversiesVictorSzoltysek
 
The Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languagesThe Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languagesVictorSzoltysek
 
Client Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future ReplacementClient Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future ReplacementVictorSzoltysek
 

Más de VictorSzoltysek (19)

ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
 
From SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid DeploymentsFrom SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid Deployments
 
The Future of JVM Languages
The Future of JVM Languages The Future of JVM Languages
The Future of JVM Languages
 
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
 
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...
 
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
 
Real-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused TipsReal-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused Tips
 
Victor's Awesome Retro Deck
Victor's Awesome Retro DeckVictor's Awesome Retro Deck
Victor's Awesome Retro Deck
 
Software Development in Internet Memes
Software Development in Internet MemesSoftware Development in Internet Memes
Software Development in Internet Memes
 
Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020
 
Making your RDBMS fast!
Making your RDBMS fast! Making your RDBMS fast!
Making your RDBMS fast!
 
SQL Tips + Tricks for Developers
SQL Tips + Tricks for DevelopersSQL Tips + Tricks for Developers
SQL Tips + Tricks for Developers
 
Less is more the 7 wastes of lean software development
Less is more   the 7 wastes of lean software developmentLess is more   the 7 wastes of lean software development
Less is more the 7 wastes of lean software development
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversies
 
The Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languagesThe Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languages
 
Client Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future ReplacementClient Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future Replacement
 

Último

[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanNeo4j
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acreskasambamuno
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Andrea Goulet
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfSrushith Repakula
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdfSelfMade bd
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfMehmet Akar
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Gáspár Nagy
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio, Inc.
 

Último (20)

[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 

Improving velocity through abstraction

  • 1. IMPROVING VELOCITY THROUGH ABSTRACTION A PRIMER ON CONTAINERIZATION, VIRTUALIZATION, AND THE CLOUD
  • 2. ALL ABOARD THE HYPE TRAIN NON-STOP TO THE SCRAPYARD
  • 3. HARD TO MAKE INFORMED TECH DECISIONS ▸ Hype - NetFlix is doing it! ▸ Fast Pace of Technology - React or Angular? ▸ Biases - Shiny Object Syndrome ▸ Self-Interest - Lack of Skin-in-the-Game ▸ LOSE TRACK OF WHAT’S IMPORTANT ….
  • 4. SHOW ME THE MONEY VALUE
  • 5. BUSINESS VALUE What your customers want! VELOCITY Business Value over Time
  • 6. Do modern day opportunities still exist to improve Velocity ? …and at Force-Multiplier levels!! YES!!!
  • 8. 1980 2005 Assembly Java 1 Developer* 1 Developer 1 Year Dev 2 Day Dev 2 Month Dev 20x Improvement!!
  • 10. 2009 32 Billion Dollar Project Cutting-Edge Technology 0.15x Improvement!!
  • 12. ASSEMBLY CODE ld hl,#36a5 rst #18 ld e,(hl) inc hl ld d,(hl) ld ix,#4400 add ix,de push ix ld de,#fc00 add ix,de ld de,#ffff bit 7,(hl) jr nz,#2c7c ld de,#ffe0 inc hl ld a,b ld bc,#0000 add a,a jr c,#2cac ld a,(hl) cp #2f jr z,#2c92 ld (ix+#00),a inc hl add ix,de inc b jr #2c84 inc hl pop ix ld a,(hl) and a jp m,#2ca4 ld a,(hl) ld (ix+#00),a inc hl add ix,de djnz #2c9a ret ; (hl+2*b) -> hl ; Start of Color RAM ; Calculate starting pos in CRAM ; 4400 + (hl) -> stack ; Calculate starting pos in VRAM ; Offset for normal text ; (3) ; Offset for top + bottom 2 lines ; b -> a ; 0 -> b,c ; 2*a -> a ; Special Draw routine for entries 80+ ; Read next char ; #2f = end of text ; Done with VRAM ; Write char to screen ; Next char ; Calc next VRAM pos ; Inc char count ; loop ; Get CRAM start pos ; Get color ; Jump if > #80 ; Get color ; Drop in CRAM ; Next color ; Calc next CRAM pos ; Loop until b=0
  • 13. JAVA CODE Font smallfont = new Font("Helvetica", Font.BOLD, 14); graphics.setFont(smallfont); graphics.setColor(Color.BLUE); graphics.drawString("'S' to start game", 120, 100);
  • 14. “NO MATTER THE PROGRAMMING LANGUAGE CHOSEN, A PROFESSIONAL DEVELOPER WILL WRITE IN AVERAGE 10 LINES OF CODE (LOC) DAY. “ FRED BROOKS (MYTHICAL MAN MONTH)
  • 16. “THE BEST CODE IS NO CODE AT ALL“ JEFF ATWOOD CODING HORROR / STACKOVERLOW
  • 17. DEVELOPER PRODUCTIVITY HIGHER Business Value Registers Memory Management Performance Focus Verboseness Null Checking DIY Chipset specific code Gotos
  • 18. Here is my business logic; run it on a chip for me; I don’t care how.
  • 19. So, how do we further improve Velocity ?
  • 20. OPPORTUNITIES ▸ Diminishing Returns with Programming Languages ▸ Development Eco-system / Frameworks / Practices ▸Infrastructure
  • 21. Here is my app; run it for me; I don’t care how. DEVELOPER FOCUS
  • 22. Here are my servers; Set them up and maintain them for me; I don’t care how. OPS FOCUS
  • 25. BARE METAL / ON-PREM OS+APP HARDWARE OS+APP HARDWARE OS+APP HARDWARE Long lead time !
  • 26. VM VIRTUAL MACHINES (VM’S) OS+APP HOST OS HARDWARE VM OS+APP VM OS+APP
  • 27. CLOUD ▸ API to some shared pool of resources ▸ Typically: Rapid, On-Demand, Elastic, and Self-Serve ▸ Public, Private, or Hybrid
  • 28. INFRASTRUCTURE AS A SERVICE (IAAS) ▸ OpenStack, vSphere, AWS, etc ▸ API for virtualized infrastructure ▸ Compute / Network / Storage ▸ Including “Infrastructure Orchestration” ▸ Auto-Healing, Bin-Packing, Scaling, etc
  • 29. ON-PREM IAAS OS HARDWARE MIDDLEWARE APPLICATION VIRTUALIZATION OS HARDWARE MIDDLEWARE APPLICATION VIRTUALIZATION YOU MANAGE OTHERS MANAGE Note .. you’re still on the hook for the OS! Clear separation of concerns …
  • 30. VM VM CONTAINERS OS HOST OS OS APP + BIN OS APP + BIN HARDWARE CONTAINER ENGINE CONTAINERCONTAINER REALLY BIG! WHO MANAGES IT ?
  • 31. CONTAINERS ▸ Lightweight, stand-alone, portable, executable package of software to run specific services ▸ Runs as an isolated process, but on a SHARED Operating System ▸ Allows for more efficient resource consumption ▸ History back to 1979 (chroot) and 2000 (FreeBSD Jails) ▸ Numerous different Containers exist … ▸ Often sharing the same underlying tech - runc / containerd
  • 32. DOCKER ▸ Docker the Company ▸ Docker the Containerization Technology ▸ Packaging, Deploying, and Running Docker Images ▸ Popularized container technologies ~2013 ▸ First big win was local containers on developer machines ▸ CTO / Founder Solomon Hykes departure - March/28/18 ▸ Not the ONLY nor the FIRST container technology .. ▸ Ex-passenger on the Hype Train ?
  • 33. ON-PREM IAAS OS HARDWARE MIDDLEWARE APPLICATION VIRTUALIZATION OS HARDWARE MIDDLEWARE APPLICATION VIRTUALIZATION YOU MANAGE OTHERS MANAGE CAAS CONTAINER AS A SERVICE OS HARDWARE CONTAINER MIDDLEWARE VIRTUALIZATION APPLICATION No longer responsible for OS! (better for security)
  • 34. CONTAINER AS A SERVICE (CAAS/IAAS+) ▸ Kubernetes, Docker Swarm, Apache Mesos, etc ▸ API at Container level ▸ OS abstraction ▸ Including “Container Orchestration” ▸ Auto-Healing, Bin-Packing, Scaling, etc
  • 35. KUBERNETES (K8S) ▸ Open-Source Docker-based Container Orchestration / CaaS / IaaS+ by Google ▸ Used to deployed BILLIONS of containers per month on Google’s infrastructure ▸ Adds concept of Pods - groupings of containers ▸ Popularized Container Orchestration ~2015 ▸ Not the ONLY nor the FIRST container orchestration tool.. ▸ Full steam ahead for the Hype Train !!
  • 36. KUBERNETES PHILOSOPHY Here’s my code; I’ll tell you EXACTLY how you should run it for me; and don’t you dare make any assumptions on the deployment WITHOUT my written consent!
  • 37. DEPLOYING TO KUBERNETES ▸ Define Docker File ▸ Define Deployment, Pod, Networking, and Services ▸ Publish to Registry ▸ Deploy ▸ kubectl run my-app
  • 38. WORK REQUIRED ▸ Configuration Management ▸ Binary Management ▸ Memory Management ▸ JVM* and older Linux tools (free / top) will look at the OS host OVERALL memory / CPU counts instead of container ones !! ▸ “Why you’re going to FAIL running Java on Docker” - Redhat Workshop
  • 39. Here is my app; run it for me; I don’t care how.
  • 40. CONTAINER / VM PLATFORMS? BINARIES / DEPENDENCIES APPLICATION BUILDPACK
  • 41. ON-PREM IAAS OS HARDWARE MIDDLEWARE APPLICATION VIRTUALIZATION OS HARDWARE MIDDLEWARE APPLICATION VIRTUALIZATION YOU MANAGE OTHERS MANAGE CAAS OS HARDWARE CONTAINER / POD MIDDLEWARE VIRTUALIZATION APPLICATION PAAS OS HARDWARE CONTAINER MIDDLEWARE VIRTUALIZATION APPLICATION Dev Focus is now on Application Development
  • 42. PLATFORM AS A SERVICE (PAAS) ▸ AWS Beanstalk / PCF / Heroku / ETC ▸ Popularized by Heroku ~2009 ▸ API at Application Level ▸ VM or Container hosted! ▸ Including “Application Orchestration” ▸ Auto-Healing, Bin-Packing, Scaling, etc
  • 43. PIVOTAL CLOUD FOUNDRY (PCF) ▸ Container-based Open-Source PaaS by Pivotal ▸ MultiCloud (Public / Private or Hybrid) ▸ Modern Cloud-Native / 12 Factor Apps ▸ Deployments: Java, .NET Native, NodeJS, Docker, Go, etc ▸ Also includes: ▸ PKS - Pivotal Container Service (Kubernetes) ▸ PFS - Pivotal Function Service
  • 44. DEPLOYING TO PCF ▸ Deploy ▸ cf push my-app
  • 45. HIGHER Business Value Manual Scaling Container Management Orchestration Verboseness Manual Updates / Reboots DIY DEVELOPER PRODUCTIVITY + OPS EFFICIENCY
  • 47. To maximize BUSINESS VALUE.. .. work at the highest abstraction level possible. THE POINT
  • 48. For the MAJORITY (>99%) of GreenField business apps, default to: Java for programming language*. PaaS for infrastructure*. *or higher
  • 49. Economics have shifted where general focus should be: Developer productivity over performance and flexibility.
  • 50. QUESTIONS TO ASK .. (WHEN OPTIMIZING, NEEDING A LOWER ABSTRACTION LEVEL) ▸ What is your bottleneck ? ▸ Hardware is cheap! Developers are expensive! ▸ You’re not Google / NetFlix ! ▸ Profile! ▸ Are you re-inventing the wheel ? ▸ Compare to off-the-shelve solutions ▸ Have you weighted the costs ? ▸ Not a free lunch !! ▸ Understand that you’re trading off productivity
  • 51. MICROSERVICES ▸ Independently deployable, small, modular services instead of larger Monolith style apps ▸ Not really a new concept ! ▸ Service Oriented Architecture (SOA) has been around for much longer! ▸ Passenger on the Hype Train since ~2014!
  • 52. Do MicroServices increase Velocity ? IT DEPENDS!!! and they can often NEGATIVELY affect it!!
  • 53. NOT A SILVER BULLET ! ▸ Net Complexity Booster!! / Not an Abstraction ! ▸ Debugging costs ▸ Refactoring costs ▸ Multiple SCM Management ▸ Deployment CI/CD costs ▸ API Versioning ▸ Retry Logic ▸ Performance Hit (Networks are slower!!) ▸ Transactions
  • 54. “DON'T LEAP INTO MICROSERVICES JUST BECAUSE IT SOUNDS COOL. SEGREGATE THE SYSTEM INTO JARS USING A PLUGIN ARCHITECTURE FIRST. IF THAT'S NOT SUFFICIENT, THEN CONSIDER INTRODUCING SERVICE BOUNDARIES AT STRATEGIC POINTS.” UNCLE BOB (ROBERT C MARTIN)
  • 55. “I'M WARY OF DISTRIBUTION AND MY DEFAULT INCLINATION IS TO PREFER A MONOLITHIC DESIGN.” MARTIN FOWLER
  • 56. “IF YOU CAN’T BUILD A WELL- STRUCTURED MONOLITH, WHAT MAKES YOU THINK YOU CAN BUILD A WELL-STRUCTURED SET OF MICROSERVICES?” SIMON BROWN CODING THE ARCHITECTURE
  • 57. RECOMMENDATIONS ▸ Monoliths are NOT a bad thing !! ▸ MicroServices are NOT a replacement / but an alternative! ▸ Ensure proper DevOps first ▸ For Performance: ▸ Tech Giant Fallacy - You’re not NetFlix! ▸ Profile !! What is your Bottleneck ? ▸ Consider “Cookie Cutter” scaling ! ▸CONSIDER AND UNDERSTAND THE COSTS!! ▸WEIGHT THE PROS AND CONS!!
  • 58. THE SWEET SPOT (DEFAULT) Monolith 1 ∞ Number of MicroServices Per FunctionPer Agile Team Super ?
  • 59. THE QUESTION THAT YOU SHOULD ALWAYS BE ASKING .. IS THIS ADDING BUSINESS VALUE?
  • 60. “IN DEFERENCE TO THE GODS OF YAGNI, WHEN IN DOUBT ERR ON THE SIDE OF SIMPLICITY. ” MARTIN FOWLER
  • 61. Victor Szoltysek Platform Architect @ Pivotal vszoltysek@pivotal.io