Microsoft TechEd 2014 in Barcelona – Good weather, nice city and interesting tech sessions 🙂
Everyone is investing massively in their cloud platforms. Amazon is still the market leader, but Microsoft Azure is growing fast. Ultimately there will only be few big cloud vendors – likely Amazon, Microsoft and Google. Azure is soon crossing 1M servers milestone which is quite mindboggling number. For the Titanfall game launch day they used 25K servers. New Azure G-series virtual machine instances are quite nice with 30 cores, 448 GB of memory and 6 TB of SSD. All vendors are investing on fast SAN/NAS/EBS storage technologies and one can now get up to 60 K IOPS from standard cloud architecture.
Azure Pack allows you to install Azure on your data-center. This allows hybrid scenarios and configurations. Based on sessions I saw it’s quite clear that Microsoft will integrate all possible server products they have closely with Azure. There is a new (quite expensive) offering “Dell Cloud Platform System” which is basically an Azure appliance on top of Dell hardware. There are specialty PCI SSD configurations & appliances allowing you to have 700 K IOPS with very low latencies in micro-second range. One server was bench-marked as 1+ M SQL transactions per second.
This was new technology to me. Pioneered by Google, Linux and Docker. Now coming to Windows. Virtualized “bubbles” or “containers” running on top of one OS without hypervisors. Allows very lightweight virtual containers to be isolated while sharing resources. Bootup times of few seconds compared to several minutes for full VM images. Sizes are also much lower as no need to store full guest OS images. Massive cost savings possible on cloud scale architecture.
Azure has automation APIs to set up and configure your environment. Powershell is very powerful indeed! New technology “Desired State Configuration” allows one to describe the runtime requirements for the server platform and it automatically applies and maintains all relevant software versions.
New upcoming Intel CPUs have much improved SIMD support. Upcoming NET JIT supports these and allows one to write SIMD enabled code directly on .NET languages. See RyuJIT CTP3 for more details.
Roslyn compiler framework coming to all aspects of NET framework. Native compilation targeting specific CPU architectures, now for store apps and later likely everything, 20% performance improvement or so. Ultimately allows us to stop execution, debug, change any code and continue execution. Enables very high level of customization and extensibility of the Visual Studio IDE – practically the language itself is soon programmable.
This was very impressive. Develop logic core with C#, UI core with C# and small Windows/WinPhone/Android/iOS UI adapters all written 100% with C#. Runs natively on all target platforms with native look and feel for each. Very good tools and emulators for Android etc. No need to learn Objective C or any of that stuff.
Use Tasks for CPU bound work and Async for IO bound work. Async is NOT parallel programming, but allows much better utilization of threadpool if you are working with IO resources. This is quite difficult subject but might be worthwhile to learn.
Participated on live demos about security. Quite horrible to see how small mistakes in application level coding can leave you 110% open to total security breaches.
Solution is simple:
1) Employ good developers
2) Patch servers
3) Give minimum possible access rights everywhere
4) IMPORTANT: Use firewalls to disable outgoing connections from servers as much as possible so hacked beach-heads are unable to phone home
VISUAL STUDIO TIPS &TRICKS (availability depends on version you have)
- CTRL+Q opens a quick launch. Write any class name, function name, variable name and press enter to search. Write any visual studio IDE functionality (ie. Just My) and see the correct window popping straight up. Quite nice. Very nice!
- ALT+SHIFT+ENTER puts VS to full screen
- Right click on code tab, float to other screen so your VS is now on 2 monitors.
- Right click on breakpoint, define criteria and logic, can print debug messages without stopping code execution
- Use “Productivity Power Tools” -addin
- As always the CTRL+dot allows IDE to help you
- Colored warning so module/API authors can guide users away from improper usage patterns
- Null propagating operator. Quite nice. http://davefancher.com/2014/08/14/c-6-0-null-propagation-operator/
- Debug visualized has TXT/JSON/XML/HTML formatting built-in
- Debug variables can be “pinned” to any area of the screen. Actually even class/function comments defining the variable can show the variable state. And you can actually write comments like //X+Y+Z which calculates automatically on the debug breakpoint hit and mouseover.
- Parallel debugging with watchers can track value across all layers of stack. Somehow. Looked nice but I’m uncertain how this works in practice J
- There are many C++ debug improvements. I’m not into this so did not get many details.