An agile approach to cloud infrastructure

Post on 13-Apr-2017

656 views 0 download

transcript

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