Jenkins and the Future of Software Delivery

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