Security struggles continue in the enterprise Infrastructure as code New approaches to BI DVCS Lightweight options for analytics A new wave of openness at Microsoft Simple techniques for performance testing Conversational UI and natural language JS as a fi rst class language Innovation in architectures Applying proven practices to areas that missed them Better tools for dev and test of Mobile Intelligence as a Service (ms and cloud native) CD, EA, ED, build pipelines Falling boundaries and perimeterless enterprise Developer experience as di ff erentiator Google Wave Over Reactive? Smaller, simpler faster applications and services Rise of the Platforms Churn in the JS world DOCKER! DOCKER! DOCKER! Azure o ff Hold Increasing diversi fi cation and rigour Pervasive Python in browser based languages Conway’s Law Parsing the PaaS puzzle Visualisation & metrics Treat all code with respect (from UI to tests) Microservices and the rise of the API OSS as a virtuous by product NoSql Redecentralisation Continued development of SQL alts JVM as a Platform ‘10 ‘11 ‘12 ‘13 ‘14 ‘15 ‘16 ‘17 Security is everybody’s problem Merging of Physical and Digital JS tooling settles to merely chaotic Using basic web techniques e ff ectively The JS juggxrnaught rolls on Microservices and related tools Diversity and depth in Cloud Privacy and big data continue to gain in popularity Data persistence done right Focus on CD and tools to deliver it Early warning and recovery in prod Docker incites container explosion Reproducible environments Git in trial Devs focus on security minded tooling Microservices as programming model Simple Architectures Clojure, Scala Next gen data platforms gain traction (ML) Intelligent Empowerment Accessible analytics Neo4J, Mongo, Triple Stores Explosive growth in the Devops arena Holistic e ff ect of team structure Mobile (!) CD, EA, ED, Polyglot dev AR and VR easing to mainstream
So by creating options we not only reduce risk but also take advantage of volitility
back to the story
5. You throw the magic box in between the walking skeleton and the content store. A villager approaches and exclaims: link hello “this beautiful content I see in front of me seems to take an awful long time to get here” You must somehow make the content content arrive faster. If you have a http cache in your close inventory, you may use it now. S3 Cache in between S3 and content turn to 10 Cache in between skeleton and content turn to 33 link to close
ESI / Templating Computationally other service other service expensive service Xslt XML in S3
0.8 seconds for first byte 1.5 seconds for page load
40 35 Page Load (sec) 30 0.8 seconds for first byte 20 1.5 seconds for page load 10 0 0 0 1 Initial observations
ESI / Templating Computationally other service other service expensive service Xslt XML in S3
We’ve detected performance problems
lets just add a cache
ESI / Templating Computationally other service other service expensive service Xslt XML in S3
ESI / Templating Computationally other service other service expensive service Xslt XML in S3
Cache misses predominate Cache hits predominate Page Load (secs) Page Load (secs)
There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton Bonus Joke There are only two hard things in messaging: 2. Exactly Once Delivery 1. Delivery Order 2. Exactly Once Delivery
lets just add a cache said no one ever
Betting on Software Architecture as Code a note on hypothesis-driven architecture
a note on hypothesis-driven architecture
How do we decide what bets to place? “In general, we look for a new law by the following process: First we guess it ; then we compute the consequences of the guess to see what would be implied if this law that we guessed is right; then we compare the result of the computation to nature , with experiment or experience, compare it directly with observation, to see if it works. If it disagrees with experiment, it is wrong . In that simple statement is the key to science . It does not make any difference how beautiful your guess is, it does not make any difference how smart you are, who made the guess, or what his name is — if it disagrees with experiment, it is wrong”
Observe nature Make a guess Compute implications Compare with Nature Draw conclusion
Observe metrics Observe nature Guess Make a guess Make a small change Compute implications Measure results Compare with Nature Was I right? Draw conclusion
Observable systems Observe nature A brain Make a guess Ability to quickly deploy small changes Compute implications Lightweight probes Compare with Nature Draw conclusion
practices that enable small bets* *not exhaustive
Good Monitoring
What do we mean when we say “monitoring”?
What do we mean when we say “monitoring”? Instrumentation Our code and hardware describes what it’s doing Telemetry We have a way of gathering the data from our services Visualisation We can meaningfully visualise our systems behaviour Alerting We can take action based on this information Predictive alerting We can predict in advance when something may go wrong credit: Dan North
request latency request tracing Service Service health downstream dependencies OS metrics
Codahale Metrics Breaker Box Dropwizard Yammer Tenacity Circuit Breakers Chaos Monkey
Continuous Delivery Safely and sustainably reduce lead time to value
Observe nature Make a guess Compute implications Compare with Nature Draw conclusion
https://puppet.com/resources/whitepaper/state-of-devops-report
https://puppet.com/resources/whitepaper/state-of-devops-report
ApacheBench ab -n 100 -c 10 “http://sciencesite.com/articles/9dfa1ae0-6ba5-4f2f-…” Siege Vegeta echo "GET http://sciencesite.com/“ | vegeta attack -duration=60s -rate=10
Cloud native infrastructure as code
boto
Other techniques are incredibly useful for these experiments Canary Releases
Other techniques are incredibly useful for these experiments Canary Releases Phoenix environments prod prod svc svc svc svc svc svc svc svc
Other techniques useful patterns Canary Releases Phoenix environments Blue / Green deploys
Production != Live Canary Releases Phoenix environments Blue / Green deploys
Good monitoring Observe nature A brain Make a guess Ability to quickly deploy small changes Compute implications Lightweight probes Compare with Nature Draw conclusion
Putting it all together AKA
0.8 seconds for first byte 1.5 seconds for page load 40 35 Page Load (sec) 30 20 10 0 0 0 1 Initial observations
Recommend
More recommend