Monday, November 07, 2016

Data Serialization Performance in .NET

c# - Fastest way to serialize and deserialize .NET objects - Stack Overflow

GitHub - mgravell/protobuf-net: Protocol Buffers library for idiomatic .NET

Comparing the Performance of .NET Serializers – Youssef M's Blog

msgpack/ at master · msgpack/msgpack · GitHub
"MessagePack is an object serialization specification like JSON.
MessagePack has two concepts: type system and formats.
Serialization is conversion from application objects into MessagePack formats via MessagePack type system. Deserialization is conversion from MessagePack formats into application objects via MessagePack type system."

smaller is better: 

Docker tools, docs & Azure

Image2Docker - MS Dev Show Podcast

Trevor Sullivan (@pcgeek86) | Twitter

Trevor Sullivan's Tech Room - Minding the gap between administration and development

Docker Documentation from Trevor Sullivan

Microsoft Azure Resource Manager - Trevor Sullivan

GitHub - docker/communitytools-image2docker-win
"...a framework to simplify the creation of Dockerfiles for Microsoft Windows Server Hyper-V Container images, based upon analysis of existing WIM or VHDX image files."

The Microsoft Windows Server 2016 platform introduces new capabilities for containerizing applications. There are two types of container formats supported on the Microsoft Windows platform:
  • Hyper-V Containers - Containers with a dedicated kernel and stronger isolation from other containers
  • Windows Containers - application isolation using process and namespace isolation, and a shared kernel with the container host"


Cloud Chaos Engineering, "monkeys" & "apes"


Netflix "Chaos Monkey" and related tools are invaluable for ensuring that cloud based applications still continue working in cases of failed services. Microsoft is also using similar techniques, both for Windows and Azure.

"Chaos Apes" are not only random but a bit "intelligent" chaos tools that learn over time.

Chaos Engineering - MS Dev Show Podcast

GitHub - Netflix/chaosmonkey: Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

"Chaos Monkey randomly terminates virtual machine instances and containers that run inside of your production environment. Exposing engineers to failures more frequently incentivizes them to build resilient services.

Chaos Monkey is an example of a tool that follows the Principles of Chaos Engineering."
GitHub - Netflix/SimianArmy: Tools for keeping your cloud operating in top form. Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

Chaos Test Service | Microsoft Azure
"Learn how to write a service that uses Microsoft Azure Service Fabric's built-in Chaos Test to exercise your code's fault tolerance by putting a little chaos in your cluster.

Service Fabric includes a suite of tools specifically designed to test running services. You can easily induce meaningful faults and run test scenarios to exercise and validate the numerous different states and transitions a service will experience throughout its lifetime, all in a controlled and safe manner. The chaos test induces random faults - everything from moving replicas to restarting entire nodes."

Standalone Network Emulator Tool – Knock, knock! Who's there?
"NEWT (Network Emulator for Windows Toolkit) is a software-based emulator which can emulate the behavior of both wired and wireless networks using a reliable physical link, such as an Ethernet. A variety of network attributes are incorporated into the NEWT emulation model, including round-trip time across the network (latency), the amount of available bandwidth, queuing behavior, packet loss, reordering of packets, and error propagations. NEWT also provides flexibility in filtering network packets based on IP addresses or protocols such as TCP, UDP, and ICMP."