Date post: | 13-Apr-2017 |
Category: |
Technology |
Upload: | richard-seroter |
View: | 656 times |
Download: | 0 times |
AN AGILE APPROACH TOINFRASTRUCTURERichard Seroter@rseroter
Richard SeroterSr. Director of Product at Pivotal
Lead Cloud Editor for InfoQ.com
9-time Microsoft MVP for Integration
Technical Trainer at Pluralsight
3-time Book Author
Team vs. silo orientation
Weak spots cause problems
Delivery team succeeds together
#1 Review characteristics
#2 Discuss org changes
#3See examples
Characteristics
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
ElasticInfrastructure
What Is It?
Adapt your allocated infrastructure to
current need.
ElasticInfrastructure
Why does it matter?
Experiment with quick performance tests
Save time by responding to spikes, troughs
Save money by scaling tiers independently
ElasticInfrastructure
How to do it?
Scale server count (e.g. AWS Autoscale)
Scale server instance (e.g. CTL Cloud resize)
Scale app pool (e.g. Google Container Engine)
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
On-demandInfrastructure
What Is It?
Infrastructure available whenever
you need it.
On-demandInfrastructure
Why does it matter?
Experiment quickly
Expand reach via access diverse geographies
Realistically test software
On-demandInfrastructure
How to do it?
Cloud environment (public or private)
Local, virtualized stacks
Shared hosts (e.g. running containers or PaaS)
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
EphemeralInfrastructure
What Is It?
Infrastructure lives only for short
periods.
EphemeralInfrastructure
Why does it matter?
Easily discard unused resources
Avoid overburdened, shared environments
Minimize expensive monitoring and patching processes
EphemeralInfrastructure
How to do it?
Use immutable infrastructure patterns
Make gold images/containers easy to produce and share
Provide visibility and tools to prune unused resources
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
MeteredInfrastructure
What Is It?
Pay-per-use based on consumption.
MeteredInfrastructure
Why does it matter?
Encourage responsible consumption
Increase transparency related to operational costs
Accelerates transition to automation-driven solutions
MeteredInfrastructure
How to do it?
Cloud hosting with per-resource billing and visibility
Use CI tools that can spin up infrastructure as needed
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
SimpleInfrastructure
What Is It?
Constrained but adequate set of infrastructure
choices.
SimpleInfrastructure
Why does it matter?
Focus on innovation, not debating hardware options
Staff doesn’t have to remember unique setups
SimpleInfrastructure
How to do it?
Set up catalog of preferred configurations in cloud
Focus on key computedimensions
Offer channel for teams to share upcoming needs
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
ConnectedInfrastructure
What Is It?
Infrastructure that is accessible to core
services.
ConnectedInfrastructure
Why does it matter?
Avoid wasting time configuring individual access
Run a secure, standard setup
Accelerate deployments and experimentation
ConnectedInfrastructure
How to do it?
Bridge networks between environments
Ensure that shared services (DB, messaging) are accessible
Give teams access to push to production
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
SupportedInfrastructure
What Is It?
Infrastructure that’s owned and
maintained by the right team.
SupportedInfrastructure
Why does it matter?
Security and licensing risks from infrastructure sprawl
Teams on pooledinfrastructure assume support
Encourages transition to DevOps
SupportedInfrastructure
How to do it?
Base images/containers defined with best practices
Automation provided for management at scale
Modern techniques for ephemeral instances
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
ConsistentInfrastructure
What Is It?
Identical, repeatable configurations across
environments.
ConsistentInfrastructure
Why does it matter?
Save time troubleshootingsnowflake servers
Empower teams to quickly build standard environments
Apply best practices and avoid accidental security holes
ConsistentInfrastructure
How to do it?
Treat infrastructure as code (e.g. Chef, Ansible)
Build environments using evolving, but standard, definitions (e.g. Terraform)
Constantly reset environments to avoid “drift”
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
MiniaturizedInfrastructure
What Is It?
Developers using local, production-like
environments.
MiniaturizedInfrastructure
Why does it matter?
Simulate runtime setup on a smaller scale
Avoid “works on my machine” problems
Accelerate onboarding of new team members
MiniaturizedInfrastructure
How to do it?
Shared sandboxes
On-demand cloud development environments
Virtualization templates (e.g. Vagrant)
Elastic Infrastructure
On-demand Infrastructure
Ephemeral Infrastructure
Metered Infrastructure
Simple Infrastructure
Connected Infrastructure
Supported Infrastructure
Consistent Infrastructure
Miniaturized Infrastructure
Abstracted Infrastructure
AbstractedInfrastructure
What Is It?
Remove inherent knowledge of what sits beneath your
applications.
AbstractedInfrastructure
Why does it matter?
Focus only on application tier
Design more portable systems
Achieve higher density environments
AbstractedInfrastructure
How to do it?
Microservices bundled into containers (e.g. Docker)
Use asynchronous, serverlessapp constructs (e.g. AWS Lambda)
Leverage an application platform (e.g. Cloud Foundry)
Changes Needed
PMO
Organizational Impact
Finance Human Resources Development Operations
ü
PMO
Organizational Impact
Finance Human Resources Development Operations
ü ü
PMO
Organizational Impact
Finance Human Resources Development Operations
ü ü ü
PMO
Organizational Impact
Finance Human Resources Development Operations
ü ü ü ü
PMO
Organizational Impact
Finance Human Resources Development Operations
ü ü ü ü ü
Real World Example
Project Management
Product teams track large infrastructure demands
Rarely have line items for building infrastructure
Finance
Clear transparency on infrastructure costs
Projected costs factored lightly into business cases for new teams
Human Resources
Hire generalists
Incentivize transparent, impactful performance
Development
Familiarity with infrastructure and configmanagement
Comfortable with multiple application containers
Operations
Build a solid base platform
Help define standard configurations
#1 Review characteristics
#2 Discuss org changes
#3See examples
Thank you!
Richard Seroter@rseroter