3. Largest companies in the world by Market Cap
Rank 2011 2012 2016 (Q3)
#1 Exxon Mobil Apple Apple
#2 Petro China Exxon Mobil Alphabet (Google)
#3 Apple Inc. Petro China Microsoft
#4 ICBC Microsoft Amazon
#5 Pertobras IBM Facebook
21. Data Center Applications
Web AppServer DB
CLOUD
Server Server Server Server
Data Center Applications
Web AppServer DB
……
I cannot handle domain names!
Give me an IP
36. Let‘s take a look at the timings!
Navigation Start: 0 ms
Domain Lookup End: 269 ms
Connect End: 330 ms
Response Start: 517 ms
Response End: 518 ms
Dom Loading: 519 ms
Dom Interactive: 519 ms
DomContentLoaded Event End: 520 ms
Dom Complete: 520 ms
API definition (including error code) changes all the time => run tests against the API regularly to detect any changes
You might get a notification that an instance is going to be retired next week… when in fact the instance has already been retired => plan for automatic fail-over & restoration
Hybrid deployment (one part in onPrem & the other in the cloud) increases complexity and potential for issues
Example:
We provide our customers a domain name (name.dynatracesaas.com) & elastic IP (static IP provided by AWS). Customers need to enable their firewall to connect to our server – some firewall can only enable IP address – not domain name. We had an instance failover (kernel panic), as a result, the instance “lost” the elastic IP and another IP was automatically assigned. We had to work with AWS support – it took 4 days to recover the IP address that was originally assigned.
Hybrid deployment (one part in onPrem & the other in the cloud) increases complexity and potential for issues
Example:
We provide our customers a domain name (name.dynatracesaas.com) & elastic IP (static IP provided by AWS). Customers need to enable their firewall to connect to our server – some firewall can only enable IP address – not domain name. We had an instance failover (kernel panic), as a result, the instance “lost” the elastic IP and another IP was automatically assigned. We had to work with AWS support – it took 4 days to recover the IP address that was originally assigned.
Work with the cloud provider to 1) get quicker access to support 2) make sure your personal is well trained and understand the cloud technology
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
Gleiche Bedingungen. Only difference: Device and Browser!
HTTP2 vs HTTP1
More Calculation Power
…
UX vs DX
Alright Klaus, let’s take a look at the user first… why is the user still wearing his sad face even though our SLA seems to be fulfilled.
Well it’s most likely due to the fact the user is seeing something like this. Can you figure out what this application should do? No? Me neither… That’s because it’s missing one vital part to be of use: The content. So why is this happening?
Let’s see how an URL request is constructed. You all have seen this before. We do a DNS lookup to see where we get our resources from, connect to the server, let the server handle the response and download the resource. Usually, the first request you’re doing is to an HTML page that contains all the markup and references to the content we want to display.
So once this first HTML file is downloaded, we have the ability to control what’s happening in the front-end.
With a single page application framework we usually do something like this: Downloading the framework’s JavaScript file! Resulting in a blocking request until we get some content on screen.
We’re also downloading our own application of course, resulting in much likely a more longer request than before. Still blocking until we get some contents on screen. On mobile, this takes even longer because of network latency. Every request adds several round trips until you get to an actual response. And I’m just counting the response time of the resources here, not the time it needs to actually interpret and execute the JavaScript code that we just downloaded.
Once this is done, we finally see the content rendered. This can take up to several seconds. If you follow the guidelines of your framework, you load the JavaScript files and the end of your application, and most likely asynchronous and deferred. Which means that those requests don’t add up to the response time.
The actual response time of your application triggers when the original HTML file is downloaded! Resulting in this huge gap between response time and perceived render time.
Let’s take a look into that in detail.
Usually, we request the app, it delivers a static HTML file, we request the JavaScript application, and after that’s rendered, we make calls to an API server. Classic SPA.
With server side rendering we want to make the first response count. Deliver everything that is needed to actually see content and allow the user to interact with the application. Then the JavaScript application loads and takes over. Perfect idea of progressive enhancement with single page applications!
There are lots of solutions already out there. If you use Ember, having server side rendering comes for free. You install Fastboot, and fastboot does everything for you.
It’s a little more complex in the React ecosystem. As usual, you have lots of choices which are all varying in the details. Also, there’s no switch-on solution, you have to do a lot by yourself. On the plus-side: There are solutions that work with other server environments than Node.js.
Angular 2 also has a server side rendering solution called “Universal Angular 2”, which is pretty much in the vein of Ember’s fastboot.
So with that, we make our user somewhat happier... But we still have a sad operator
UX vs DX
1. Bandwidth topic and dataplan
2. “Klausi did a Journey”. Australia story 4$ per MB
3. What does my site cost www.whatdoesmysitecost.com
4. Roaming???
5. Local: Income vs data plan
6. Header vs Payload HTTP1 Problem
Solutions:
Reduce to essentials Tooling Uncss, Treeshaking, Do I need this fancy pop-up?, Responsive Images
You know that already, there’s lots of ways to reduce the payload we’re sending to the client. Running your images through ImageOptim, minifying and gzipping your CSS and JavaScript, all things that are by the book. So let’s what else can we do and what’s directly geared towards mobile web.
The idea of responsive images is that you have a ton of different screen sizes, why download the same image to all those varying screens. Why not tailor the payload of an image as well as the content of an image to the screen at hat. The Responsive Images Community Group did an outstanding work in specify a standard. There’s a lot to this standard, including new elements and new browser algorithms, but I want to show you a quick example that’s sort of a quick win with Responsive images.
It’s called UnCSS and is super helpful if you use frameworks like bootstrap. Bootstrap comes with a gazillion of components, but most sites only use roughly 20% of it. This tool checks which parts of this framework are used on that page, the rest is removed.
And Google’s Closure compiler… this godfather of JavaScript minifying tools is also the one that’s being used in AngularJS 2.
Gleiche Bedingungen. Only difference: Device and Browser!
HTTP2 vs HTTP1
More Calculation Power
…