SlideShare a Scribd company logo
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
Ad

More Related Content

Similar to 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...
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 Cloud
Mark 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 Serverless
Adrien 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 #GoOpenSourcePH
DEVCON
 
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
Julien 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-native
VMware Tanzu
 
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
cornelia davis
 
(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
Ludovic 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 Kubernetes
QAware GmbH
 
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
Dun & Bradstreet Cloud Innovation Center
 
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 Cloud
Mark 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 Cloud
MongoDB
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
ACA IT-Solutions
 
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
Stijn Wijndaele
 
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
Steve Mercier
 
Reflections On Serverless
Reflections On ServerlessReflections On Serverless
Reflections On Serverless
Diego Pacheco
 
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 Cloud
Mark 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 Serverless
Adrien 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 #GoOpenSourcePH
DEVCON
 
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
Julien 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-native
VMware Tanzu
 
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
cornelia davis
 
(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
Ludovic 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 Kubernetes
QAware 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 Cloud
Mark 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 Cloud
MongoDB
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
ACA IT-Solutions
 
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
Stijn Wijndaele
 
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
Steve Mercier
 
Reflections On Serverless
Reflections On ServerlessReflections On Serverless
Reflections On Serverless
Diego Pacheco
 

More from VictorSzoltysek (20)

The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...
The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...
The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...
VictorSzoltysek
 
Java on AWS Without the Headaches - Fast Builds, Cheap Deploys, No Kubernetes
Java on AWS Without the Headaches - Fast Builds, Cheap Deploys, No KubernetesJava on AWS Without the Headaches - Fast Builds, Cheap Deploys, No Kubernetes
Java on AWS Without the Headaches - Fast Builds, Cheap Deploys, No Kubernetes
VictorSzoltysek
 
Demystifying GitHub Actions - Harnessing the power of automation to streamlin...
Demystifying GitHub Actions - Harnessing the power of automation to streamlin...Demystifying GitHub Actions - Harnessing the power of automation to streamlin...
Demystifying GitHub Actions - Harnessing the power of automation to streamlin...
VictorSzoltysek
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
VictorSzoltysek
 
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
VictorSzoltysek
 
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
VictorSzoltysek
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
VictorSzoltysek
 
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
VictorSzoltysek
 
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 Tips
VictorSzoltysek
 
Victor's Awesome Retro Deck
Victor's Awesome Retro DeckVictor's Awesome Retro Deck
Victor's Awesome Retro Deck
VictorSzoltysek
 
Software Development in Internet Memes
Software Development in Internet MemesSoftware Development in Internet Memes
Software Development in Internet Memes
VictorSzoltysek
 
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
VictorSzoltysek
 
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 Developers
VictorSzoltysek
 
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
VictorSzoltysek
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversies
VictorSzoltysek
 
The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...
The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...
The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...
VictorSzoltysek
 
Java on AWS Without the Headaches - Fast Builds, Cheap Deploys, No Kubernetes
Java on AWS Without the Headaches - Fast Builds, Cheap Deploys, No KubernetesJava on AWS Without the Headaches - Fast Builds, Cheap Deploys, No Kubernetes
Java on AWS Without the Headaches - Fast Builds, Cheap Deploys, No Kubernetes
VictorSzoltysek
 
Demystifying GitHub Actions - Harnessing the power of automation to streamlin...
Demystifying GitHub Actions - Harnessing the power of automation to streamlin...Demystifying GitHub Actions - Harnessing the power of automation to streamlin...
Demystifying GitHub Actions - Harnessing the power of automation to streamlin...
VictorSzoltysek
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
VictorSzoltysek
 
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
VictorSzoltysek
 
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
VictorSzoltysek
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
VictorSzoltysek
 
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
VictorSzoltysek
 
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 Tips
VictorSzoltysek
 
Victor's Awesome Retro Deck
Victor's Awesome Retro DeckVictor's Awesome Retro Deck
Victor's Awesome Retro Deck
VictorSzoltysek
 
Software Development in Internet Memes
Software Development in Internet MemesSoftware Development in Internet Memes
Software Development in Internet Memes
VictorSzoltysek
 
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
VictorSzoltysek
 
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 Developers
VictorSzoltysek
 
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
VictorSzoltysek
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversies
VictorSzoltysek
 
Ad

Recently uploaded (20)

Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Ad

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