Jenkins and the Future of Software Delivery

29
Jenkins and the Future of Software Delivery Ant Weiss twitter: @antweiss Otomato - http://otomato.link

Transcript of Jenkins and the Future of Software Delivery

Page 1: Jenkins and the Future of Software Delivery

Jenkins and the Future of Software Delivery

Ant Weiss

twitter: @antweiss

Otomato - http://otomato.link

Page 2: Jenkins and the Future of Software Delivery

> 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

Page 3: Jenkins and the Future of Software Delivery

The Future:

“The best thing about the future is that it comes one day at a time.”

― Abraham Lincoln

Page 4: Jenkins and the Future of Software Delivery

The Future:

Continuous Delivery is about building software for the

Future

Page 5: Jenkins and the Future of Software Delivery

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

Page 6: Jenkins and the Future of Software Delivery

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

Page 7: Jenkins and the Future of Software Delivery

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 ]

Page 8: Jenkins and the Future of Software Delivery

The Present of Software Delivery:

• Geo-Distributed Teams

• Distributed VCS

• Continuous Integration/Delivery

• TDD

• Microservices

• Agile

• DevOps!!!

Page 9: Jenkins and the Future of Software Delivery

The Present of Software Delivery:

• Clouds!!!

• Virtualisation

• [I/P/S]AAS

• Infrastructure as Code

• Package Managers

• Containers

• Service Discovery

• Message Queues

• Mobile Devices

Page 10: Jenkins and the Future of Software Delivery

T-Shaped Professionals

Page 11: Jenkins and the Future of Software Delivery

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

Page 12: Jenkins and the Future of Software Delivery

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

Page 13: Jenkins and the Future of Software Delivery

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

Page 14: Jenkins and the Future of Software Delivery

The Trends:

•Centralization -> Distribution

•Manual -> Automated

•Long-term -> Short-term

•Synchronous -> Asynchronous

•Uniformity - > Diversity

•Stability -> Velocity

•Order -> Chaos

Page 15: Jenkins and the Future of Software Delivery

The Future:

Continuous Delivery is about dealing with Chaos

Page 16: Jenkins and the Future of Software Delivery

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]

Page 17: Jenkins and the Future of Software Delivery

The Future of Software

•Machine learning

•Augmented Reality

•Data Gravity/Data Mining

•IoT

•Self-driving vehicles

•Singularity

Page 18: Jenkins and the Future of Software Delivery

The Future?

•Self-Organising Non-biological

Intelligence with Nonlinear

Communication Patterns

Page 19: Jenkins and the Future of Software Delivery

T-Shaped Professionals

Page 20: Jenkins and the Future of Software Delivery

Octopus-Shaped Professionals

Page 21: Jenkins and the Future of Software Delivery

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

Page 22: Jenkins and the Future of Software Delivery

Communication

•Communication enables

Collaboration on Massive Scale

•Shared Context is the Key

•Common Language

•Pattern Recognition

Page 23: Jenkins and the Future of Software Delivery

what about

Page 24: Jenkins and the Future of Software Delivery

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

Page 25: Jenkins and the Future of Software Delivery

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]

Page 26: Jenkins and the Future of Software Delivery

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

Page 27: Jenkins and the Future of Software Delivery

Speed vs. Control

100s deploys a day

production issues

resolved in minutes

zero-time updates

can we release machines from our control?

Page 28: Jenkins and the Future of Software Delivery

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

Page 29: Jenkins and the Future of Software Delivery

http://www.meetup.com/Tel-Aviv-Jenkins-Area-Meetup/

THANK YOU!

Ant Weiss

[email protected]

Brought to you by