continuous delivery maturitydevOps Seattle Meetup - October 25, 2016
confession: i’m distracted today
2
what does it take to do CI/CD?
app
test env
code
app code
app code
unit test pkg
unit test pkg
unit test pkg
packaging
continuous integration
continuous delivery
continuous deployment
1
2
3
4
functional tests
auto deploy auto run
release beta
preprod env
stress tests
release rcapp config
app config
app config
prod env
auto scale
feature flags
service discovery
auto deploy auto run
beyond continuous deployment5
gated deploy environment less
Maturity Levels
CI/CD Pipelines
3
what is the role of ops in an "ops-less" and "server-less" world? - Susan Fowler, Uber
4
Source: http://www.susanjfowler.com/blog/2016/10/13/the-ops-identity-crisis?imm_mid=0e9cf7&cmp=em-webops-na-na-newsltr_20161024
“There are several things that stand out to me in these conversations: • first, that some ops engineers (sysadmins, techops, devops, and SREs) are
worried that they will be phased out if developers and software engineers are responsible for the operational tasks in their systems;
• second, that developers and software engineers do not have the skills needed to take over responsibility for operational tasks; and
• third, that building reliable systems is impossible without an operations organization.”
“In short, if developers are (ready and) responsible for running their own applications, services, or systems, then no, you don't need a separate operations organization - but if they aren't, then you most certainly do.”
does CI/CD approach matter?
5
managed service
self service
centralized
decentralized
shared service
shared platform
app team
embedded SRE/BE
CI/C
D T
OO
LIN
G
CI/CD EXECUTION
standards
choice
expertise agility
enterprises are going through a digital transformation
but their software delivery is a bottleneck due to …
fragmented toolchain
ad hocautomation
peopledependency
why is it important?
time spent by developers on ‘other’ tasks
to make a software change
~53%infinite number
of hardware, data center, configuration options
∞
successful digital companiessolved this with
heavyinvestment
customsoftware
centralizedplatforms
unifiedCI/CD
breaking away from ad-hoc automation and streamlining the process of shipping software
is there a better way to solve this?
infrastructure
build/CI
testing
artifacts
release and deploy mgmt
config mgmt
service discovery
operations and monitoring
notifications
source control
critical to application delivery
but, a unified CD platformis missing
lack e2e view & insight
imperative workflow
pieced together with tribal knowledge
tightly coupled and fragile
pain points
(Jenkins, Shippable, TeamCity, CircleCI…)
(SauceLabs, Selenium, HPE ALM, Test Rail…)
(Docker Hub, GCR, ECR, JFrog…)
(Email, IRC, Slack, HipChat…)
(VS, HPE ALM, Serena, Octopus…)
(Chef, Puppet, Ansible, Salt, …)
(Consul, Zookeeper, etcd…)
(Chef, Puppet, Ansible, Salt…)
(Git, GitHub, Bitbucket, Visual Studio, SVN…)
(Splunk, DataDog, ELK, SCOM…)
a lot of tools!
CODE
DEPLOY
RUN
without a unified approach, CI/CD is rigid & fragile
• Customized for a particular need, hard to change and scale
• siloed tools cobbled together lack end-to-end workflow and visibility
• culture and skill set mismatch creates challenges in getting it to work
11
unified CI/CD
infrastructure
build/CI
testing
artifacts
release and deploy mgmt
config mgmt
service discovery
operations and monitoring
notifications
source control
single pane of glass
declarative workflow
natively integrated
composable and flexible
critical to application delivery
un-opinionated & agnostic
CODE
DEPLOY
RUN
unified CI/CD with Shippable
• declare, don’t code• standardize and extend• end-to-end process vs. point-to-point
tasks• support traditional and modern apps,
and effectively transition• natively integrated, so you don’t have to• control costs • scale for any capacity
13
deploy
build/CI
testing
artifacts
release and deploy mgmt
config mgmt
service discovery
notifications
the key is declarative YML
• declare WHAT to do, platform figures out HOW to do it
• manage workflow and access via source control
• avoid docs that are hard to keep in sync
• enable distributed collaboration
vs.
reusable and composable
centralized and extensible standardsfrom custom scripting… …to declarative standard
end-to-end SDLC support
• end-to-end SDLC workflow
• event-based, dependency-based
• extensive state & historical information
• holistic visibility
effectively support and transition between traditional and modern apps
jar/war
jar/wardocker
docker
package ci artifacts releasedev/test prod
Traditional
TraditionalContainerized
Containerized
natively integrated, easily swapped
SaaS CaaS
PaaS/IaaSHybrid/On-Prem
notifications adapter
scm
ada
pter
artifacts adapter
packageci artifacts releasedev/test prod
cloud adapter
• native integrations with the devOps toolchain
• consistent syntax makes toolchain changes easy
20
control costs vs. performance with multiple infrastructure options
central node pools
local node pools
dynamic node pools
• share infrastructure across teams
• dedicate infrastructure for specific needs
• dynamically provision infrastructure on-demand
demo
so, why not do it yourself?
22
heavyinvestment
customsoftware
peopledependency
and with Shippable …
openAPIs
extensiblestandards
future-proof
unified CI/CD
• A unified CI/CD platform that integrates teams and processes to streamline shipping of software
• A future proof platform to allow evolution of your CD capabilities
• An E2E management of all apps, traditional and modern, with policy driven access control enabling separation of duties
24
Hosted Hybrid Server (Nov)
is available as:
try it today at www.shippable.com
over 75,000 developers
4 million+ deployments
a final question
have you ever avoided making an architectural change due to fear of
re-doing the automation?
founded in 2013 avi cavale & manisha sahasrabudhe
employees 42 Seattle & Bangalore
SaaS customer base 75K users, 8K orgs
funding series A, $10.2M