View
215
Download
0
Category
Preview:
Citation preview
Jenkins and the Future of Software Delivery
Ant Weiss
twitter: @antweiss
Otomato - http://otomato.link
> whoami: “Ant Weiss”
• Delivering Software since 2000 (Y2K bug)
• Previously @: AT&T,BMC,Comverse,n+ startups
• Principal Consultant and CEO @Otomato
• CI/CD/DevOps Evangelism & Enablement
• Technical Training Enthusiast
• Jenkins TLV Area Meetup Organiser
• In love with the future.
http://otomato.link
The Future:
“The best thing about the future is that it comes one day at a time.”
― Abraham Lincoln
The Future:
Continuous Delivery is about building software for the
Future
The Future???
•We can’t predict the future
•We can calculate the odds
•It’s a percentage game
•We can’t avoid predicting the
future
•Focus on the large trends
The Past of Software Delivery:
• Co-located Teams
• No VCS -> Centralised VCS
• Manual Integration
• No QA! }8-0 -> Manual QA
• Waterfall
• Monolithic architectures
• Devs Vs. Ops
The Past of Software Delivery:
• Punchcards
• Floppy disks (save -> ]
• ISO images
• Custom Installers
• Bare Metal/Big Iron/Distributed Systems
• Manual Configuration Management
• Synchronous IPC
• Focus on: Reliability/Stability ( Past ]
The Present of Software Delivery:
• Geo-Distributed Teams
• Distributed VCS
• Continuous Integration/Delivery
• TDD
• Microservices
• Agile
• DevOps!!!
The Present of Software Delivery:
• Clouds!!!
• Virtualisation
• [I/P/S]AAS
• Infrastructure as Code
• Package Managers
• Containers
• Service Discovery
• Message Queues
• Mobile Devices
T-Shaped Professionals
The Present of Software Delivery:
JAVAJAvaScript
C++Rust
Go
Ruby
Erlang
Node.js
Python
Perl
Scala
GroovyLisp
Android
Swift
Objective C
C#
iOS
Windows
Bash
Puppet
Chef
Ansible
SaltStack
Jenkins
TeamCity
GitBazaar
Travis
RedHatAtomic
CoreOS
Docker
PHP
Mesos
Kubernetes
CloudFormation
Terraform
Cloud Foundry
Openshift
Openstack
Ubuntu
LXC
Rocket
Nomad
Consulgulp
ZookeeperKafka
Hadoop
Spark
Elastic Search
YAML
CSS
Redis
MongoDB
MySQL
Cassandra
CouchDB
Django
Play
ZeroMQ
etcd
Angularreact.js
Hive
hazelcast
webRTC
The Present of Software Delivery:
JAVAJAvaScript
C++Rust
Go
Ruby
Erlang
Node.js
Python
Perl
Scala
GroovyLisp
Android
Swift
Objective C
C#
iOS
Windows
Bash
Puppet
Chef
Ansible
SaltStack
Jenkins
TeamCity
GitBazaar
Travis
RedHatAtomic
CoreOS
Docker
PHP
Mesos
Kubernetes
CloudFormation
Terraform
Cloud Foundry
Openshift
Openstack
Ubuntu
LXC
Rocket
Nomad
Consulgulp
ZookeeperKafka
Hadoop
Spark
Elastic Search
YAML
CSS
Redis
MongoDB
MySQL
Cassandra
CouchDB
Django
Play
ZeroMQ
etcd
Angularreact.js
Hive
hazelcast
webRTC
variety
The Present of Software Delivery:
JAVAJAvaScript
C++Rust
Go
Ruby
Erlang
Node.js
Python
Perl
Scala
GroovyLisp
Android
Swift
Objective C
C#
iOS
Windows
Bash
Puppet
Chef
Ansible
SaltStack
Jenkins
TeamCity
GitBazaar
Travis
RedHatAtomic
CoreOS
Docker
PHP
Mesos
Kubernetes
CloudFormation
Terraform
Cloud Foundry
Openshift
Openstack
Ubuntu
LXC
Rocket
Nomad
Consulgulp
ZookeeperKafka
Hadoop
Spark
Elastic Search
YAML
CSS
Redis
MongoDB
MySQL
Cassandra
CouchDB
Django
Play
ZeroMQ
etcd
Angularreact.js
Hive
hazelcast
webRTC
diversity
The Trends:
•Centralization -> Distribution
•Manual -> Automated
•Long-term -> Short-term
•Synchronous -> Asynchronous
•Uniformity - > Diversity
•Stability -> Velocity
•Order -> Chaos
The Future:
Continuous Delivery is about dealing with Chaos
The Trends:
Organisational Technological
organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations — M. Conway[3]
The Future of Software
•Machine learning
•Augmented Reality
•Data Gravity/Data Mining
•IoT
•Self-driving vehicles
•Singularity
The Future?
•Self-Organising Non-biological
Intelligence with Nonlinear
Communication Patterns
T-Shaped Professionals
Octopus-Shaped Professionals
The Future of Software Delivery
•Computers writing the Code
•From non-human Gatekeepers to
non-human Contributors
•From Monitoring to Self-Healing
•Advanced Visualisation
•New Control Interfaces
•OTA delivery to multiple devices
Communication
•Communication enables
Collaboration on Massive Scale
•Shared Context is the Key
•Common Language
•Pattern Recognition
what about
Machines Write The Code
- Jenkins to provide insights and optimisation suggestions
- Automatically fix syntax (finally!!!]
- IOT - Trigger re-writing and re-testing of SW based on signals from edge systems.
- ever more testing and verification
Machines Talk To Each Other
- unified CI language (Jenkinsfile)
- SW components describe how they are built
- Pattern recognition
- Jenkins understands what a project needs
- delivery and automation are a part of application (see Chef’s Habitat]
Advanced UI
- visualisation - shuffle stages around, rewire on the fly, version everything
- trigger builds based on chat context (not just commands]
- emit events to any communication channel
- finally - trigger SW deploys by power of thought
Speed vs. Control
100s deploys a day
production issues
resolved in minutes
zero-time updates
can we release machines from our control?
The Future:
If you think in terms of a year, plant a seed; if in terms of ten years, plant trees; if in terms of 100 years, teach the people.
Confucius
http://www.meetup.com/Tel-Aviv-Jenkins-Area-Meetup/
THANK YOU!
Ant Weiss
ant.weiss@gmail.com
Brought to you by
Recommended