According to VC and web pioneer Marc Andreessen software is eating the world. Evidence proves he is right. Uber, the biggest taxi company, has no cars, AirBnB, the biggest hotel service, has no rooms and there are many more examples. Looking at these success stories there is a clear blueprint how to build software that eats the world. Just a quick heads up: It is not about building your typical web application any more.
40. 7:00 a.m.
Low Load and Service running
on minimum redundancy
12:00 p.m.
Scaled up service during peak load
with failover of problematic node
7:00 p.m.
Scaled down again to lower load
and move to different geo location
Testing the Backend Service alone scales well …
44. 26.7s Load Time
5kB Payload
33! Service Calls
99kB - 3kB for each call!
171!Total SQL Count
Architecture Violation
Direct access to DB from frontend service
Single Search Query End-to-End
45. The Fixed End-to-End Use Case
“Re-Architect” vs “Migrate” to Service-Orientation
2.5s (vs 26.7)
5kB Payload
1! (vs 33!) Service Call
5kB (vs 99) Payload!
3!(vs 177) Total
SQL Count
49. Build 17 testNewsAlert OK
testSearch OK
Build # Use Case Stat # API Calls # SQL Payload CPU
1 5 2kb 70ms
1 3 5kb 120ms
Use Case Tests and Monitors Service & App Metrics
Build 19 testNewsAlert OK
testSearch OK
Build 18 testNewsAlert OK
testSearch OK
1 4 1kb 60ms
34 171 104kb 550ms
Ops
#ServInst Usage RT
1 0.5% 7.2s
1 63% 5.2s
1 4 1kb 60ms
2 3 10kb 150ms
1 0.2% 5.2s
5 75% 2.5s
Build 25 testNewsAlert -
testSearch OK
- - - -
2 3 10kb 150ms
- - -
8 80% 2.0s
Metrics from and for Dev(to)Ops
50. #1: Analyzing every Unit,
Integration & REST API test
#2: Key Architectural
Metrics for each test
#3: Detecting regression
based on measure per Checkin
#1: Stop Bad Builds in CI
51. #2: Metrics per Service in Ops
# SQLs per Search
# RESTs per Search
Spot bad Deployment?
Payload per Search
52. Build & Deliver Apps that can eat the world!
With a Metrics-Driven Pipeline!
56. • Waterfall agile: 3 years
• 220 Apps - 1 deployment per month
• “EVERY manual tester does Automation”
• Virtualized vs Physical
• “We don’t log bugs. We fix them.”
• Measures are built in & Visible to everyone
• API Teams vs Application Teams
• Promote your wins! Educate your peers.
59. Some Verizon Achievements since 2012
456 Apps Eliminated
Consolidated from 13 to 5 Data Centers
Virtual Server Footprint from 38% to 75%
Software Renewal Cost slashed by 8M
Hardware Footprint down by 25%
60. “(Micro)Services” Environments are
virtual/cloud and usually 20 times larger
https://www.youtube.com/watch?v=smEuX-Hq6RI -
Monitoring Micro Services, Adrian Cockcroft Keynote O’Reilly Software Architecture Conference
Monitoring becomes a Platform Feature
61.
62.
63.
64.
65. #3 You Automate/Virtualize
#2 You Measure Dev(to)Ops
#1 You Build It, You Run It!
#4 You API vs You App
#5 You Eat the World
Get your own Dynatrace Personal License @ http://bit.ly/dtpersonal
Dynatrace Personal is the full Dynatrace AppMon Product. After 30 Days Trial Period it automatically converts to FREE FOR LIFE for your Local Workstation Apps
If you want to learn more check out my YouTube Tutorial Channel @ http://bit.ly/dttutorials
My old time hero MacGyver who could fix pretty much anything with a swiss army knife. Just as we do with our tools – trying to fix problems out there in the software world. But the world is changing – also for MacGyver (See recent picture)
One of my first phones – it changed the world for me. Not only could I get in contact with my friends all the time via FREE SMS back then – i could also play „Snake“ whenever i wanted
7 years later this the next revolutionary step for me and many others.
We all know that since then the world got divided into two big parties. So – just out of curiosity: who is using Apple vs Android? And who is using Windows?
The phones not only changed the way we communicate – it disrupted many other technologies as well. Look at this! Pope Election in 2005.
A SINGLE hand up with an old phone taking a picture
In 2013 the „picture“ is totally different. The smart phones and tablets not only changing the way we communicate but also disrupting many other things such as taking pictures, getting light when you need one (torchlight), measuring your steps, ...
So – just to see the difference again in one picture!
In 2011 this gentleman – coauthor of Mosaci and cofounder of Netscape. A VC guru in Sillicon Valles sitting on the board of companies such as Facebook, eBay or HP said „Software is eating the world!“
What happened since then?
The world is getting even more „disrupted“ – this is a picture from Paris last year when Uber entered the Market.
A taxi driver probably thinking: „These geeks from the Silicon Valley – dont even have a drivers license – but are kicking us out of our jobs“
This is Airbnb making a change in accomodation business. Providing „cheap“ accommodations for those that travel but kicking out folks that used to live in SF all of their live.
And this is not a very uncommon but probably the most well known „out-of-the-business“ story when it comes to movie rental. I assume many of us these days enjoy the „on demand – all I want – right now – at my devices“ from services such as Netflix, Amazon, HBO or Apple
Uber, one of the many companies that are disrupting existing markets with new ideas, new approaches, no fear, no „corporate baggage“, no technical debt and no business debt
But not only does it disrupt markets, it also disrupts our behavior as human being
We are all part of it. When you remember how and when we are now interacting with services, companies, products, ... – we consume these services all the time!
And its not just us – but also the next generation of consumers that is growing up with a total different understanding of „consuming a service“
We all carry multiple devices
http://www.slideshare.net/sophossecurity/device-infographic-slideshow
And we are using multi device when we access services
http://www.futuristgerd.com/multi-device-path-purchase-commerce-google/
Its also interesting that more than 2B people are now active on social media – sharing good and bad experiences
http://www.jeffbullas.com/2015/04/08/33-social-media-facts-and-statistics-you-should-know-in-2015/
Insurance companies are looking into smart devices to e.g: find out whether a washing machine is leaking. So – before the basement gets flooded it can notify you. With that you also lower your premium
But there is more that is disrupting ... There are more people livign within that circle than outside!
5 Billion people in the emerging markets. Will „old fashioned“ corporations with their business models tap into this market? Or is it going to be the Ubers of the world? Or is it going to be the new entrepreneurs that will just have the next better idea and build better apps?
Credits to https://brucelawson.github.io/talks/2015/velocity/?full#1
We know that everyone these days can build a globally successful business with just an idea and a laptop. Such as Mark Z or the two tech brothers (12 & 14) founders of GoDimensions. They develop 12 Apps so far with more than 35k downloads.
Their idol? Steve Jobs!
One of my recent books I added to my list: Disrupting Digital Business from R „Ray“ Wang
He starts his book with some very insteresting facts!
So – how do we make sure we are not becoming disrupted? How can we get out of Status Quo? How can be build software that will work as the new digital generation wants to use it?
Here is one advice from me. I see many companies that are starting with their „DevOps Journey“ too often just follow the 1st generation Unicorns
Several companies changed their way they develop and deploy software over the years. Here are some examples (numbers from 2011 – 2014)
Cars: from 2 deployments to 700
Flicks: 10+ per Day
Etsy: lets every new employee on their first day of employment make a code change and push it through the pipeline in production: THAT’S the right approach towards required culture change
Amazon: every 11.6s
Remember: these are very small changes – which is also a key goal of continuous delivery. The smaller the change the easier it is to deploy, the less risk it has, the easier it is to test and the easier is it to take it out in case it has a problem.
While all of this is great and we can learn a lot from them it is important that you dont force your company or dont let your company force you to blindely follow these unicorns. Dont just become a „1st Generation Unicorn Best Practices“ Playground
Dont just allow crap to move faster through your pipeline as all that will come out is crap again
Its not about giving Devs Direct Access to Ops Deployments
Let me give you one example of a company that became really successful with their online service
They had a monolithic app that couldnt scale endlessly. Their popularity caused them to think about re-architecture and allowing developers to make faster changes to their code. The were moving towards a Service Approach
Separating frontend logic from backend (search service). The idea was to also host these services potentially in the public cloud (frontend) and in a dynamic virtual enviornment (backend) to be able to scale better globally
The Backend Search Service Team did a lot of testing on their backend services. Scaling up and down on demand. All looked pretty good! They gave it a Thumbs Up!
On Go Live Date with the new architecture everything looked good at 7AM where not many folks were yet online!
By noon – when the real traffic started to come in the picture was completely different. User Experience across the globe was bad. Response Time jumped from 2.5 to 25s and bounce rate trippled from 20% to 60%
The backend service itself was well tested. The problem was that they never looked at what happens under load „end-to-end“. Turned out that the frontend had direct access to the database to execute the initial query when somebody executed a search. The returned list of search result IDs was then iterated over in a loop. For every element a „Micro“ Service call was made to the backend which resulted in 33! Service Invokations for this particular use case where the search result returned 33 items. Lots of wasted traffic and resources as these Key Architectural Metrics show us
They fixed the problem by understanding the end-to-end use cases and then defined backend service APIs that provided the data they really needed by the frontend. This reduced roundtrips, elimiated the architectural regression and improved performance and scalability
Lessons Learned!
If we monitor these key metrics in dev and in ops we can make much better decisions on which builds to deploy
We immediately detect bad changes and fix them. We will stop builds from making it into Production in case these metrics tell us that something is wrong.
We can also take features out that nobody uses if we have usage insights for our services. Like in this case we monitor % of Visitors using a certain feature. If a feature is never used – even when we spent time to improve performance – it is about time to take this feature out. This removes code that nobody needs and therefore reduces technical debt: less code to maintain – less tests to maintain – less bugs in the system!
And this is how it looks like with Dynatrace AppMon Test Automation Feature. We automatically montior every single test execution in your CI and analyze these metrics per Test and per Build. We automatically detect regressions as every metrics per Test will be baselined. This allows us to STOP A BUILD before it moves to other phases in the pipeline
In Production we monitor the same metrics for our services. Seeing if a recent deployment had any change in # of SQL calls for a particular feature or the # of internal Service Calls. Helps us to make sure that we do not make bad deployments – or at least be aware of it right away to take countermeasures, e.g: rollback or fix
If we do all that we can build a pipeline that gets rid of bad code and architectural changes right away!
With that we can make our users happy 24/7 – at any load
I think its good to learn from the 2nd generation unicorns. These are not startups that had a clean slate to start. These are established enterprises that had to deal with legacy code, a grown and sometimes rigid organization and mindset ... -> yet they made the transition!
More on this in my blog
http://apmblog.dynatrace.com/2015/05/27/velocity-2015-our-conference-highlights/
http://apmblog.dynatrace.com/2015/05/28/velocity-2015-highlights-from-day-2/
http://apmblog.dynatrace.com/2015/05/29/velocity-2015-highlights-from-last-day/
Verizon shared their story at our Dynatrace Perform User Conference in October 2015 -> see next slides for huge achievements
So we need to have a strategy how to monitor small, medium or extremly large environment
B2W example.
9 applications are HEALTHY!!!! only services have issues, but thats fine.
3300 servics running on 10k JVMs
on just 142 hosts
thats no longer for human doing visual monitoring; ist ideal for intelligent monitoring systems to deal with
If we do all this we can build software that is potentially able to „eat the world“