Date post: | 13-Feb-2017 |
Category: |
Technology |
Upload: | docker-inc |
View: | 201 times |
Download: | 0 times |
Structured Container Delivery
Oscar RenaliasAccenture Container Lead
@oscarrenaliasgithub.com/[email protected]/oscarrenaliaswww.slideshare.net/oscarrenalias
Container Benefits
Infrastructure Efficiency
DevOps
Architecture
Virtualization/ Cloud savings
Hardware savings
Flexible platforms
Predictability
Flexible application environments
Efficiency
Alignment with modern architectures
Developer Productivity
• Reduce/eliminate virtualization licenses for workloads to be containerized
• Reduce number of hardware blades/servers/cloud instances
• Faster container startup times means instances can be turned off when not used, or dynamically scaled according to demand
• Minimize environment and configuration defects in new environment setup by packaging all components and dependencies in containers
• Provision an arbitrary number of application environments easily, when needed, and destroy them when done
• Minimize human effort / involvement with deploying code to new environments
• Containers are a great runtime platforms for modern scalable and high performance application architectures, e.g. microservices
• Greatly reduce the amount of time needed for a developer to create a working application environment locally
$$$
$$$
$
$$
$$$
⭐⭐⭐
⭐
⭐⭐
Benefit Type
So you want to run containers?
Container Platform
Old stuff New stuff
Container Reference Architecture
Principles Patterns Capabilities
Reference Implementations
Understanding how to design for, and with containers
Business Continuity
Operations Agility Prepare for Failure Fit for Purpose
Adaptability and Flexibility
Infrastructure Independence
Information Security
Leverage service discovery for inter/external service
lookup
Use standard protocols to interact with interfaces
Use standardized and best-practice components
Reuse services offered by platform and extend
components if necessary
Data Integrity Communications
Prefer container image digital-signing
Use isolated networking between containers,
regardless of their location
Prefer lightweight infrastructure components
Use container clustering and/or other HA practices
Use external persistence data sources for container data
Leverage DevOps practices for container image build and
deployment
L1
Principles
L2
Decisions
Leverage dynamic routing capabilities
Monitor container infrastructure components Limit container access
Use private or secure hosted image registry
Container as the build artifact
Immutable infrastructure, deploy by replacing old
containers with new ones
Make sure that logs aren't retained only in containers
Version container images in repository
Encourage reuse of container definitions
Data and process must be encapsulated
How do we do <…> with containers?
Infrastructure
Runtime
Platform
Administration
Public/Private Cloud VM Bare Metal
Host OS Container OS
Container Engine
Container Tooling
Browser Application Integrations Containers
Data
Registry
Storage
Orchestration Resource Management
Service Discovery
Data AccessNetworkingMetrics
DevOps
Image Build/ Deployment
Monitoring
Logging
What should the platform do?
Example: Component Reference Architecture for Docker Datacenter on AWS
Infrastructure
Runtime
Services
Administration
Container OS
Orchestration Resource Management Service Discovery
Data Access
Browser Containers
Data
Metrics
DevOps
CloudWatch
Networking
Overlay Network Flocker
Docker Docker
Amazon Linux
Docker Compose Universal Control Plane Overlay DNS (intra-cluster)
EC2
Storage
RegistryDocker Trusted
Registry
Docker Volumes
Storage
EBS
Service Discovery
Interlock
Engine
Host OS
Container Tooling
Image build/ Deployment
Docker Trusted Registry
Monitoring
CloudWatch
Logging
CloudWatch Logs
Image build/ Deployment
Jenkins CI
How about the old stuff?
Container Platform
Old stuff New stuff
Efficiently migrating applications to containers
Central Internal Team Project-based migration Migration factory
Centralized team working in concert with project teams to coordinate and migrate projects to the new platform
Leverage existing project team group to orchestrate and execute migration effort
+ Fast, efficient deployment+ Shared team provides
economies of scale and knowledge sharing
+ Optimized resource model+ Focused on migration
delivery and managed to avoid cost overruns
- Increased number of resources
- Limited cross-team knowledge sharing
- Lengthier migration- Inconsistent migrations
- Team has other priorities - Limited or non-existent
container skills- Limited migration skills
Migration conducted by an internal team, staffed by current IT resources
Migration Factory
Docker
Migration Team
Migration Framework
Container Patterns
Container Best
Practices
Base Images
Container Reference Architecture
Legacy Application
Legacy Application
Legacy Application
Legacy Application
Legacy Application
• Repeatable, industrialized
• Low risk
• Cost-efficient
Migration & RolloutDiscovery & Assessment
High-Level Assessment & Planning
Detailed Application
Assessment Testing & Certification
Establish Overall Migration Plan
Perform Detailed Migration Planning
Upgrade/MigrateApplications
App. ArchitectureRecommendations
Certify/DeployApplications
Container Infrastructure Planning
Rollout & Decom-mission
Containerize Application
Thank you!