Everything is accelerating, and the stakes are higher than ever. Economies becoming more winner takes all. “There can be only one”
RedMonk calls practitioners the New Kingmakers. The companies that are succeeding are investing in building engineering competence.
The underlying factors driving the rise of the New Kingmakers
Which also mean that developer talent is now considered more of a constraint than capital. This is an amazing change.
We are told we all need to become software companies, but it’s hard to be a software company. Data and services are what people want to pay for – “the software paradox”
Some companies are just moving so much faster than others. It’s absurd
Ci/CD is the onramp for everything good in modern software development. Better quality software, built faster.
CI/CD drove the rise of Docker – the disposable infrastructure approach mapped really well to automated testing (unit, functional etc)
But Kubernetes emerged as the orchestration environment of choice. Ops people bought into the model, and now it’s the defacto standard for all container-based workloads. All major players have adopted it, including Pivotal, Rancher, Mesosphere, VMware, Microsoft, IBM. And of course Docker itself.
We’re seeing the whole stack being rewritten and rebuilt on top of K8s, including everything from networking to storage. Unlike OpenStack, K8s didn’t begin with this as a goal, but it’s happening.
The next big thing, on top of K8s is service mesh, automating configuration, security, policy etc – allowing for sidecarring and routing.
But what’s the use case? One is canarying
Or blue green deployments
CI/CD perhaps doesn’t go far enough – Progressive Delivery is what I call the new routing approaches, with feature flags, canarying etc. taking full advantage of container native cloud infrastructures.
How developers work – why not do everything through Github? Git for declarative infrastructure, managed deployment by K8s. Pull Request as the unit of work and collaboration.
Debugging in production – needs that kind of automation.
But it’s also scary, with an *expectation* of failure
So along comes observability, beyond monitoring. It’s tracing, logging and monitoring, with real time visibility. A shift of perspective – the developer writes code for it to be understood. It’s as important a responsibility as anything in the testing tool chain
All of this stuff can be rather complex though
Which has driven serverless approaches. Easy – no need to think about all the K8s stuff in building stateless apps. It’s 12 factor, totally opinionated
Goes further than AWS lamda however, event triggers across different infrastructures.
Which brings us neatly to stripe – which has rewritten the rules in terms of service consumability via API
Autotrader completely rethought its RFP processes after working with Stripe
Target has invested heavily in people, from 30/70 internal/consultants to 80/20 internal/external, hiring 1000 people in 3 years. Open source agile skills. Also training third parties. The best way to learn is to teach. Open sourcing. K8s native – every store running Kubernetes
Allstate created Kompozed labs, teaching agile, improving how it builds software
Goes K8s Native, dropping Openstack, being more explicit about the new basket of container native/open source contributions
It’s not all good news. Absolutely brutal takedown of BA in the FT for not investing in software development. First big breach of the GDPR era, and this story is merciless.
Jump in and learn the new approaches
But not everyone will make it
The Quickening at Futurestack 2018
James Governor @monkchips co-founder.
Create path finding teams
Make open source contributions
Container Native is where the puck is going
Make Operations and Responsibility pervasive
Refactor for services
Break down large teams into small teams, loosely joined
Reshoring is a thing. Close to the Business. Close to the User
Rebuild engineering culture and competence
Invest in people and training (but not everyone will make it)