SlideShare a Scribd company logo
1 of 63
Download to read offline
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
2
Introduction To DevOps
FOR WEB DEVELOPERS
Rex Addiscentis
raddiscentis@addiscent.com
addiscent.com
github.com/addiscent
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
8
Introduction To DevOps
About the Presentation
● “Just enough” DevOps for Demo context
● Containerization of Developers' tools not detailed
● Applicability - “it depends” on your project
● Enterprise vs Small Business
● Prototype vs MVP vs Mature Production
● Presentation slide deck available online, (message
post on meetup web site)
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
9
Introduction To DevOps
About the Demo
● Simplest-possible Dockerized PHP app
● Deployed to “Production in public cloud”
● Please save questions and note slide
number for post-presentation Q&A session
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
10
Credit: cio.com
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
11
Why DevOps?
“DevOps is a competitive advantage”
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
12
“Regardless of the target market, your
Company is a 'software company'. Producing
high value services software efficiently is a
fundamental part of its business model.”
What is DevOps?
DevOps Is A Business Solution
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
13
Credit: forbes.com
Strategies
and
Implementations
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
14
DevOps Strategies
”Strive to minimize the difference between 
how and what Developers produce, and 
how and what Operations deploys.”
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
15
Implementing DevOps
RESOURCES AND TECHNIQUES
● Cloud – IaaS, PaaS
● Virtualization - SDO
● Containers – Virtual Machines (VMs), Docker
● Microservices Architecture
● “Standardized” Developer Environments
● Continuous Deployment (with Continuous Integration)
● Automated IT (Data-center Ops)
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
16
Credit: alvareztg.com
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
17
“Cloud Native” Advantages
● Cloud Speed
● Cloud Scale
● Cloud Economics
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
18
XaaS
Service Categories
● Infrastructure as a Service (IaaS)
● Platform as a Service (PaaS)
● Software as a Service (Saas)
● Anything as a Service (Xaas)
● Monitoring as a Service (Maas)
● Communication as a Service (CaaS)
● Business Processes as a Service (BPaaS)
● … etc
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
19
Credit: unknown
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
20
Cloud Service Categories
Credit: http://tecbizz.net/2012/10/everything-as-a-service-introduction/
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
21
Cloud IaaS
IaaS Computing Services
● Compute nodes
● Networking (incl VPC)
● Storage
● Containers
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
22
Cloud PaaS
PaaS Services
● Automatically handles the deployment - capacity
provisioning, load balancing, auto-scaling
● Application health monitoring
● Project run-times - PHP, Java, Node.js, Python, Ruby,
Go, .NET, and Docker
● Project environments - servers such as Apache, Nginx,
Passenger, and IIS
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
23
● Amazon Web Services
● Microsoft Azure
● Google Cloud Platform
● DigitalOcean
● Heroku
Cloud Service Companies
PUBLIC
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
24
● OpenStack
● OpenShift
● Cloud Foundry
Cloud Services
Open Source Software (OSS )
PRIVATE AND PUBLIC
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
25
Noteworthy Terms
Quality of Service (QoS): Availability-Reliability
● “NUMBER OF NINES”
● 99.999% == “Five Nines”
● High Availability == Five Nines Or Greater
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
26
Credit: http://sysmagazine.com/posts/193306/
Operations
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
27
Operations Deliverables
Examples of Application Services Delivered
● Online Merchant
● Social Network
● Media Provider
● Online Banking
● Publishers
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
28
Operations Deliverables
Generalization Of Application Functions
● Customer application-specific
● Page Presentation (View)
● Page Controls (Controller)
● Function or Business Logic (Model)
● Support company's business needs
● Marketing
● Sales
● Operating Expenses
● Must be "reliable enough”
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
29
Operations Activities
DELIVER AND MANAGE PRODUCT-SERVICE
Deploy
● Roll-out per constraints
● Roll-back per necessity
● Scale as needed
● Phase out end-of-life instances
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
30
Operations Activities
DELIVER AND MANAGE PRODUCT-SERVICE
Monitor
● Health
● Performance
● Cost
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
31
Operations
CATEGORIES OF FUNCTIONS AND UTILITY
Application Specific
● Inventory Views
● Accounts and Passwords
● Purchases or other transactions
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
32
Operations
CATEGORIES OF FUNCTIONS AND UTILITY
Typical Infrastructure
● HTTP service (web or app server)
● Database service
● Proxy-firewall
● TLS-SSL encrypt-decrypt
● Memcached
● Redis
● Load Balancer
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
33
Credit: stories.rackspace.com/
In a DevOps Context
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
34
Development Activities
DevOps ANALYSIS and DESIGN
● Design and Implement Software Product
● Design and Implement Development Process
● Define Operations deliverables, processes,
and life-cycle management
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
35
Development Activities
DevOps ANALYSIS and DESIGN
Design and Implement Software Product
● “Ops deliverables categories” can be used as design
requirements
● Application-specific
● Infrastructure-specific
● Define collections of "collaborating services",
(Microservices Architecture)
● Define in detail Operations Deliverables (components)
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
36
Development Activities
DevOps ANALYSIS and DESIGN
Design and Implement Development Process
● Identify and implement “best” technologies
● Standardized development environment
● Continuous Delivery
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
37
Team Standardized
Development Environment
● Use Reproducible Workspaces and Shared tools
● Automate installation - containerized
● Collaboration-friendly – establish standards and
conventions, limit “free-for-all” practice when important
● Candidate tools for containerization
● Host system, text editor or IDE, programming language
interpreter (run-time) or compiler-linker,
libraries/components, package or dependency managers,
build/test tools, repository tools
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
38
Continuous Delivery
SOFTWARE DELIVERY PIPELINE
“Always Shippable”
● Continuous Integration
● Automated Builds
● Automated Testing, as possible
● Manual Testing, as necessary
● Marked according to Release Readiness
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
39
Continuous Integration
“Continuous integration (CI) is the practice, in
software engineering, of merging all developer
working copies with a shared mainline several
times a day.”
- Wikipedia
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
40
Continuous Delivery
Workflow and Best Practices
● Automate the build
● Maintain a code repository
● Everyone commits to the baseline “every day”
● Every commit should trigger a delivery
● Make the build self-testing
● Test in a clone of the production environment
● Make it easy to get the latest deliverables
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
41
CONTINUOUS DELIVERY
Automated Build
Typical CI Coverage
● Coding Standards compliance
● Unit Tests
● ...
● Documentation generation
● Reporting
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
42
Continuous Delivery Flow
Credit: Continuous Delivery by Jez Humble and David Farley (2010)
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
43
Microservices Architecture
“OPPOSITE OF MONOLITHIC DESIGN”
Monolithic Design
● Built as atomic unit
● Deployed as atomic unit
● “Single program” can perform all possible functions
● Self-contained, independent from other platforms
● COMPLEXITY IS HIDDEN, EXCEPT TO PROGRAMMERS
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
44
Microservices Architecture
NATURAL ATTRIBUTES
Partitioned Functionality
● Services built as “Bounded Context” units
● Services deployed as individual units
● Collaborating entities, division of responsibilities
● Often dependent on other services
● COMPLEXITY IS EXPOSED
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
45
Monolithic vs Microservices
Credit: martinfowler.com/articles/microservices.html
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
46
Collaborating Microservices
Credit: thoughtworks.com
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
47
Wheel-of-Doom
(Hailo)
Credit: Hailo Tech Blog - sudo.hailoapp.com
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
48
Microservices Architecture
IMPORTANT DESIGN CONSIDERATIONS
Common “Software Design Best Practices” apply to MA
● Loose coupling, high cohesion
● Object Oriented principles
Collaborating Classes
● APIs – HTTP-RESTful
● Stateless (preferred) and Stateful (when necessary)
● Bounded Domains – DDD (Bounded Context)
● “Rugged” design – Fault tolerant, (plan for system errors)
Constraints and Limits
● Minimize inter-container N-way communication (fan-out)
● Right-size – “two (four) pizza team”
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
49
Microservices Architecture
FLEXIBLE IMPLEMENTATION AND DEPLOYMENT CHOICES
Advantages
● Polyglot
● Development teams may be much smaller, (but more
numerous)
● A microservice may be released on a different schedule
than others
● Complexity is exposed and must be addressed explicitly,
(internal "hidden" monolith complexity is revealed by split
into microservices)
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
50
Microservices Architecture
NO SILVER BULLET
Disadvantages
● Complexity of Services APIs
● Complexity of Inter-Service Communication
● Complexity of Inter-Service behaviors/dependencies
● Network - Latency, unreliability, bandwidth limits
● Single large database must be split – Data
consistency and integrity much more complicated
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
51
Microservices Architecture
EXAMPLES – SERVICES AS DELIVERED BY OPS
Application domain-specific
● Service presentation
● Inventory-views
● Accounts
● Purchases or other transactions
● Passwords (authorization)
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
52
Microservices Architecture
IDENTIFY THE SERVICES DELIVERED BY OPS
Infrastructure-specific
● Database service
● HTTP service (web or app server)
● TLS/SSL encryption-decryption
● Memcached, Redis
● Proxy-Firewall-Load Balancer
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
53
Conway's Law
“Any organization that designs a system ...
will inevitably produce a design whose
structure is a copy of the organization's
communication structure.”
-- Melvyn Conway, 1967
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
54
“Monolithic” Company Organization
Produces
Monolithic Architecture
Credit: martinfowler.com/articles/microservices.html
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
55
Microservices Architecture
Requires
Microservices Dev Dept Organization
Credit: martinfowler.com/articles/microservices.html
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
56
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
57
Docker
A WAY TO IMPLEMENT MICROSERVICES
"An open platform for distributed
applications for developers and
sysadmins."
-- docker.com
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
58
Docker
WHAT IS DOCKER?
Docker is a Company
● docker.com
Docker is a Container Technology
● Lightweight loadable binary image
● Limited capabilities – make it compelling
Docker is an Ecosystem
● Docker tools and education resources
● Third party tools and education resources
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
59
Docker
AS A CONTAINER
● Executable code
● May be data only
● Isolation of resources
● Lightweight VM-type services
● Built using Dockerfile directives
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
60
Docker
CONTAINER FEATURES
● Namespace - its own PIDs, NAT, etc
● Processes and memory are restricted
● Files system - volumes may be bound to host fs
● Network I/O - ports may be mapped
● Container Linking - inter-container communication
● Private network (VPC)
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
61
Docker
IS NOT JUST A CONTAINER
● Client command line (CLI)
● Daemon (Docker Engine) - container agent
● Repository - allows public and private
● Tools Suite
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
62
Docker
IS NOT JUST A CONTAINER
Toolset
● Docker Engine – container agent
● Docker-machine – wrangles a host upon
which containers run
● Docker-compose – wrangles “collaborating
services” containers
● Docker swarm - wrangles "swarm" of docker-
machines, each running containers
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
63
Docker
ADVANTAGES
● Native-portable deployment across
LINUX-kernel machines
● Application-centric
● Automated builds - “trusted”
● Tagging (Versioning)
● Component re-use
● Sharing
● Tool ecosystem
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
64
Docker
ADVANTAGES
Native-portable Deployment Across LINUX Machines
● Local Host – desktop, laptop
● Amazon Web Services
● Microsoft Azure Cloud
● Google Cloud Platform
● Digital Ocean
● Heroku
● Caveats for Mac and Windows hosts
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
65
Docker
ADVANTAGES
What A Docker
Container Is Good At
● Image builds and loading can be fast, due to
layers and caching on local host
● Small memory and storage requirements
● No processes overhead specific to container
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
66
Docker
MIS-USAGE
● Base image which is unnecessarily “fat”
● Too many processes in one container
● Anti-pattern: Dockerized LAMP stack is NOT a
wise micro-services pattern for production
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
67
Container-related
Strategies and Techniques
“BEST PRACTICES” SUBJECTS FOR FURTHER STUDY
● Immutable containers – Don't modify instances
● Don't ssh into production VMs or containers and
modify their state or configuration
● Ephemeral – “Design for Transience”
● Accomodate short lifespans
● Tag (version) containers, build using tags
● Use Load Balancers for rollout, rollback, canary
cages, and scaling
● Starting as Monolithic vs starting as Microservices -
"It depends"
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
68
August 17, 2015 Intro to DevOps for Web Developers
Copyright 2015 Rex Addiscentis
69
Amazon Web Services
aws.amazon.com
● AWS Elastic Compute Cloud (EC2)
● Compute nodes created/destroyed as needed
● Compute nodes may be long-running, or short-lived
● Spin-up time scale = ~minute(s)
● An EC2 node has no storage – must use S3 or other
AWS DB services, or other networked product

More Related Content

What's hot

What's hot (20)

How to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesHow to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issues
 
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in PragueContinuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
muCon 2014 "Building Java Microservices for the Cloud"
muCon 2014 "Building Java Microservices for the Cloud"muCon 2014 "Building Java Microservices for the Cloud"
muCon 2014 "Building Java Microservices for the Cloud"
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Agnostic Continuous Delivery
Agnostic Continuous DeliveryAgnostic Continuous Delivery
Agnostic Continuous Delivery
 
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
Navigating the open stack ecosystem summit vancouver.pptx
Navigating the open stack ecosystem   summit vancouver.pptxNavigating the open stack ecosystem   summit vancouver.pptx
Navigating the open stack ecosystem summit vancouver.pptx
 
Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...
Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...
Build Infrastructure: What It Is, Why You Need It, and How to Use Python to F...
 
The Agile and Open Source Way (AgileTour Brussels)
The Agile and Open Source Way (AgileTour Brussels)The Agile and Open Source Way (AgileTour Brussels)
The Agile and Open Source Way (AgileTour Brussels)
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid Innovation
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShift
 
Continuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystemContinuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystem
 
API Microservices with Node.js and Docker
API Microservices with Node.js and DockerAPI Microservices with Node.js and Docker
API Microservices with Node.js and Docker
 
GitOps is IaC done right
GitOps is IaC done rightGitOps is IaC done right
GitOps is IaC done right
 
JAX DevOps 2018 "Continuous Delivery Patterns for Modern Architectures"
JAX DevOps 2018 "Continuous Delivery Patterns for Modern Architectures"JAX DevOps 2018 "Continuous Delivery Patterns for Modern Architectures"
JAX DevOps 2018 "Continuous Delivery Patterns for Modern Architectures"
 
Going Cloud Native
Going Cloud NativeGoing Cloud Native
Going Cloud Native
 
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
 

Similar to PdxDevOps presentation - 2015/08/17

Similar to PdxDevOps presentation - 2015/08/17 (20)

DevOps on GCP Course Compared to AWS
DevOps on GCP Course Compared to AWSDevOps on GCP Course Compared to AWS
DevOps on GCP Course Compared to AWS
 
DevOps, Continuous Integration and Deployment on AWS
DevOps, Continuous Integration and Deployment on AWSDevOps, Continuous Integration and Deployment on AWS
DevOps, Continuous Integration and Deployment on AWS
 
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
 
Practical Application of API-First in microservices development
Practical Application of API-First in microservices developmentPractical Application of API-First in microservices development
Practical Application of API-First in microservices development
 
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Improve your Cloud Integrations with Test-driven Development
Improve your Cloud Integrations with Test-driven Development Improve your Cloud Integrations with Test-driven Development
Improve your Cloud Integrations with Test-driven Development
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloud
 
VMware's Journey to Deliver Developer Portals as a Service
VMware's Journey to Deliver Developer Portals as a ServiceVMware's Journey to Deliver Developer Portals as a Service
VMware's Journey to Deliver Developer Portals as a Service
 
Implementing API-led Cloud-native apps on OCI
Implementing API-led Cloud-native apps on OCIImplementing API-led Cloud-native apps on OCI
Implementing API-led Cloud-native apps on OCI
 
London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
Broadcast Music Inc. Release Rockstars: Program-Wide DevOps Success with Urba...
Broadcast Music Inc. Release Rockstars: Program-Wide DevOps Success with Urba...Broadcast Music Inc. Release Rockstars: Program-Wide DevOps Success with Urba...
Broadcast Music Inc. Release Rockstars: Program-Wide DevOps Success with Urba...
 
DevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud DatabaseDevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud Database
 
Untangling DevOps - A high-level overview and how we got here
Untangling DevOps -  A high-level overview and how we got hereUntangling DevOps -  A high-level overview and how we got here
Untangling DevOps - A high-level overview and how we got here
 
DevSecOps - Security in DevOps
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
 
DevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipelineDevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipeline
 
Slides: How to Select a PaaS
Slides: How to Select a PaaSSlides: How to Select a PaaS
Slides: How to Select a PaaS
 
Scaling DevSecOps Culture for Enterprise
Scaling DevSecOps Culture for EnterpriseScaling DevSecOps Culture for Enterprise
Scaling DevSecOps Culture for Enterprise
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

PdxDevOps presentation - 2015/08/17

  • 1. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 2 Introduction To DevOps FOR WEB DEVELOPERS Rex Addiscentis raddiscentis@addiscent.com addiscent.com github.com/addiscent
  • 2. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 8 Introduction To DevOps About the Presentation ● “Just enough” DevOps for Demo context ● Containerization of Developers' tools not detailed ● Applicability - “it depends” on your project ● Enterprise vs Small Business ● Prototype vs MVP vs Mature Production ● Presentation slide deck available online, (message post on meetup web site)
  • 3. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 9 Introduction To DevOps About the Demo ● Simplest-possible Dockerized PHP app ● Deployed to “Production in public cloud” ● Please save questions and note slide number for post-presentation Q&A session
  • 4. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 10 Credit: cio.com
  • 5. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 11 Why DevOps? “DevOps is a competitive advantage”
  • 6. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 12 “Regardless of the target market, your Company is a 'software company'. Producing high value services software efficiently is a fundamental part of its business model.” What is DevOps? DevOps Is A Business Solution
  • 7. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 13 Credit: forbes.com Strategies and Implementations
  • 8. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 14 DevOps Strategies ”Strive to minimize the difference between  how and what Developers produce, and  how and what Operations deploys.”
  • 9. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 15 Implementing DevOps RESOURCES AND TECHNIQUES ● Cloud – IaaS, PaaS ● Virtualization - SDO ● Containers – Virtual Machines (VMs), Docker ● Microservices Architecture ● “Standardized” Developer Environments ● Continuous Deployment (with Continuous Integration) ● Automated IT (Data-center Ops)
  • 10. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 16 Credit: alvareztg.com
  • 11. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 17 “Cloud Native” Advantages ● Cloud Speed ● Cloud Scale ● Cloud Economics
  • 12. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 18 XaaS Service Categories ● Infrastructure as a Service (IaaS) ● Platform as a Service (PaaS) ● Software as a Service (Saas) ● Anything as a Service (Xaas) ● Monitoring as a Service (Maas) ● Communication as a Service (CaaS) ● Business Processes as a Service (BPaaS) ● … etc
  • 13. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 19 Credit: unknown
  • 14. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 20 Cloud Service Categories Credit: http://tecbizz.net/2012/10/everything-as-a-service-introduction/
  • 15. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 21 Cloud IaaS IaaS Computing Services ● Compute nodes ● Networking (incl VPC) ● Storage ● Containers
  • 16. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 22 Cloud PaaS PaaS Services ● Automatically handles the deployment - capacity provisioning, load balancing, auto-scaling ● Application health monitoring ● Project run-times - PHP, Java, Node.js, Python, Ruby, Go, .NET, and Docker ● Project environments - servers such as Apache, Nginx, Passenger, and IIS
  • 17. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 23 ● Amazon Web Services ● Microsoft Azure ● Google Cloud Platform ● DigitalOcean ● Heroku Cloud Service Companies PUBLIC
  • 18. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 24 ● OpenStack ● OpenShift ● Cloud Foundry Cloud Services Open Source Software (OSS ) PRIVATE AND PUBLIC
  • 19. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 25 Noteworthy Terms Quality of Service (QoS): Availability-Reliability ● “NUMBER OF NINES” ● 99.999% == “Five Nines” ● High Availability == Five Nines Or Greater
  • 20. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 26 Credit: http://sysmagazine.com/posts/193306/ Operations
  • 21. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 27 Operations Deliverables Examples of Application Services Delivered ● Online Merchant ● Social Network ● Media Provider ● Online Banking ● Publishers
  • 22. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 28 Operations Deliverables Generalization Of Application Functions ● Customer application-specific ● Page Presentation (View) ● Page Controls (Controller) ● Function or Business Logic (Model) ● Support company's business needs ● Marketing ● Sales ● Operating Expenses ● Must be "reliable enough”
  • 23. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 29 Operations Activities DELIVER AND MANAGE PRODUCT-SERVICE Deploy ● Roll-out per constraints ● Roll-back per necessity ● Scale as needed ● Phase out end-of-life instances
  • 24. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 30 Operations Activities DELIVER AND MANAGE PRODUCT-SERVICE Monitor ● Health ● Performance ● Cost
  • 25. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 31 Operations CATEGORIES OF FUNCTIONS AND UTILITY Application Specific ● Inventory Views ● Accounts and Passwords ● Purchases or other transactions
  • 26. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 32 Operations CATEGORIES OF FUNCTIONS AND UTILITY Typical Infrastructure ● HTTP service (web or app server) ● Database service ● Proxy-firewall ● TLS-SSL encrypt-decrypt ● Memcached ● Redis ● Load Balancer
  • 27. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 33 Credit: stories.rackspace.com/ In a DevOps Context
  • 28. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 34 Development Activities DevOps ANALYSIS and DESIGN ● Design and Implement Software Product ● Design and Implement Development Process ● Define Operations deliverables, processes, and life-cycle management
  • 29. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 35 Development Activities DevOps ANALYSIS and DESIGN Design and Implement Software Product ● “Ops deliverables categories” can be used as design requirements ● Application-specific ● Infrastructure-specific ● Define collections of "collaborating services", (Microservices Architecture) ● Define in detail Operations Deliverables (components)
  • 30. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 36 Development Activities DevOps ANALYSIS and DESIGN Design and Implement Development Process ● Identify and implement “best” technologies ● Standardized development environment ● Continuous Delivery
  • 31. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 37 Team Standardized Development Environment ● Use Reproducible Workspaces and Shared tools ● Automate installation - containerized ● Collaboration-friendly – establish standards and conventions, limit “free-for-all” practice when important ● Candidate tools for containerization ● Host system, text editor or IDE, programming language interpreter (run-time) or compiler-linker, libraries/components, package or dependency managers, build/test tools, repository tools
  • 32. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 38 Continuous Delivery SOFTWARE DELIVERY PIPELINE “Always Shippable” ● Continuous Integration ● Automated Builds ● Automated Testing, as possible ● Manual Testing, as necessary ● Marked according to Release Readiness
  • 33. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 39 Continuous Integration “Continuous integration (CI) is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day.” - Wikipedia
  • 34. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 40 Continuous Delivery Workflow and Best Practices ● Automate the build ● Maintain a code repository ● Everyone commits to the baseline “every day” ● Every commit should trigger a delivery ● Make the build self-testing ● Test in a clone of the production environment ● Make it easy to get the latest deliverables
  • 35. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 41 CONTINUOUS DELIVERY Automated Build Typical CI Coverage ● Coding Standards compliance ● Unit Tests ● ... ● Documentation generation ● Reporting
  • 36. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 42 Continuous Delivery Flow Credit: Continuous Delivery by Jez Humble and David Farley (2010)
  • 37. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 43 Microservices Architecture “OPPOSITE OF MONOLITHIC DESIGN” Monolithic Design ● Built as atomic unit ● Deployed as atomic unit ● “Single program” can perform all possible functions ● Self-contained, independent from other platforms ● COMPLEXITY IS HIDDEN, EXCEPT TO PROGRAMMERS
  • 38. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 44 Microservices Architecture NATURAL ATTRIBUTES Partitioned Functionality ● Services built as “Bounded Context” units ● Services deployed as individual units ● Collaborating entities, division of responsibilities ● Often dependent on other services ● COMPLEXITY IS EXPOSED
  • 39. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 45 Monolithic vs Microservices Credit: martinfowler.com/articles/microservices.html
  • 40. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 46 Collaborating Microservices Credit: thoughtworks.com
  • 41. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 47 Wheel-of-Doom (Hailo) Credit: Hailo Tech Blog - sudo.hailoapp.com
  • 42. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 48 Microservices Architecture IMPORTANT DESIGN CONSIDERATIONS Common “Software Design Best Practices” apply to MA ● Loose coupling, high cohesion ● Object Oriented principles Collaborating Classes ● APIs – HTTP-RESTful ● Stateless (preferred) and Stateful (when necessary) ● Bounded Domains – DDD (Bounded Context) ● “Rugged” design – Fault tolerant, (plan for system errors) Constraints and Limits ● Minimize inter-container N-way communication (fan-out) ● Right-size – “two (four) pizza team”
  • 43. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 49 Microservices Architecture FLEXIBLE IMPLEMENTATION AND DEPLOYMENT CHOICES Advantages ● Polyglot ● Development teams may be much smaller, (but more numerous) ● A microservice may be released on a different schedule than others ● Complexity is exposed and must be addressed explicitly, (internal "hidden" monolith complexity is revealed by split into microservices)
  • 44. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 50 Microservices Architecture NO SILVER BULLET Disadvantages ● Complexity of Services APIs ● Complexity of Inter-Service Communication ● Complexity of Inter-Service behaviors/dependencies ● Network - Latency, unreliability, bandwidth limits ● Single large database must be split – Data consistency and integrity much more complicated
  • 45. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 51 Microservices Architecture EXAMPLES – SERVICES AS DELIVERED BY OPS Application domain-specific ● Service presentation ● Inventory-views ● Accounts ● Purchases or other transactions ● Passwords (authorization)
  • 46. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 52 Microservices Architecture IDENTIFY THE SERVICES DELIVERED BY OPS Infrastructure-specific ● Database service ● HTTP service (web or app server) ● TLS/SSL encryption-decryption ● Memcached, Redis ● Proxy-Firewall-Load Balancer
  • 47. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 53 Conway's Law “Any organization that designs a system ... will inevitably produce a design whose structure is a copy of the organization's communication structure.” -- Melvyn Conway, 1967
  • 48. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 54 “Monolithic” Company Organization Produces Monolithic Architecture Credit: martinfowler.com/articles/microservices.html
  • 49. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 55 Microservices Architecture Requires Microservices Dev Dept Organization Credit: martinfowler.com/articles/microservices.html
  • 50. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 56
  • 51. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 57 Docker A WAY TO IMPLEMENT MICROSERVICES "An open platform for distributed applications for developers and sysadmins." -- docker.com
  • 52. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 58 Docker WHAT IS DOCKER? Docker is a Company ● docker.com Docker is a Container Technology ● Lightweight loadable binary image ● Limited capabilities – make it compelling Docker is an Ecosystem ● Docker tools and education resources ● Third party tools and education resources
  • 53. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 59 Docker AS A CONTAINER ● Executable code ● May be data only ● Isolation of resources ● Lightweight VM-type services ● Built using Dockerfile directives
  • 54. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 60 Docker CONTAINER FEATURES ● Namespace - its own PIDs, NAT, etc ● Processes and memory are restricted ● Files system - volumes may be bound to host fs ● Network I/O - ports may be mapped ● Container Linking - inter-container communication ● Private network (VPC)
  • 55. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 61 Docker IS NOT JUST A CONTAINER ● Client command line (CLI) ● Daemon (Docker Engine) - container agent ● Repository - allows public and private ● Tools Suite
  • 56. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 62 Docker IS NOT JUST A CONTAINER Toolset ● Docker Engine – container agent ● Docker-machine – wrangles a host upon which containers run ● Docker-compose – wrangles “collaborating services” containers ● Docker swarm - wrangles "swarm" of docker- machines, each running containers
  • 57. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 63 Docker ADVANTAGES ● Native-portable deployment across LINUX-kernel machines ● Application-centric ● Automated builds - “trusted” ● Tagging (Versioning) ● Component re-use ● Sharing ● Tool ecosystem
  • 58. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 64 Docker ADVANTAGES Native-portable Deployment Across LINUX Machines ● Local Host – desktop, laptop ● Amazon Web Services ● Microsoft Azure Cloud ● Google Cloud Platform ● Digital Ocean ● Heroku ● Caveats for Mac and Windows hosts
  • 59. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 65 Docker ADVANTAGES What A Docker Container Is Good At ● Image builds and loading can be fast, due to layers and caching on local host ● Small memory and storage requirements ● No processes overhead specific to container
  • 60. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 66 Docker MIS-USAGE ● Base image which is unnecessarily “fat” ● Too many processes in one container ● Anti-pattern: Dockerized LAMP stack is NOT a wise micro-services pattern for production
  • 61. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 67 Container-related Strategies and Techniques “BEST PRACTICES” SUBJECTS FOR FURTHER STUDY ● Immutable containers – Don't modify instances ● Don't ssh into production VMs or containers and modify their state or configuration ● Ephemeral – “Design for Transience” ● Accomodate short lifespans ● Tag (version) containers, build using tags ● Use Load Balancers for rollout, rollback, canary cages, and scaling ● Starting as Monolithic vs starting as Microservices - "It depends"
  • 62. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 68
  • 63. August 17, 2015 Intro to DevOps for Web Developers Copyright 2015 Rex Addiscentis 69 Amazon Web Services aws.amazon.com ● AWS Elastic Compute Cloud (EC2) ● Compute nodes created/destroyed as needed ● Compute nodes may be long-running, or short-lived ● Spin-up time scale = ~minute(s) ● An EC2 node has no storage – must use S3 or other AWS DB services, or other networked product