Nikhil Barthwal

Nikhil Barthwal is a Senior Software Engineer at Jet.com, an e-commerce startup recently acquired by Walmart. He works in the Internal Tools & Productivity team, where he leads several projects related to Static Analysis, Build & Deployment systems. He had worked at Oracle and Microsoft previously. Outside work, he is talks frequently at various meetups and international conferences about technology. He has a Master’s in Distributed Systems and a Bachelor’s in Electrical Engineering.

Social Profiles

All Sessions by Nikhil Barthwal

Continuous Delivery and DevOps Day

March 9th, 2018

11:30

Chaos Engineering: Building Immunity in Production systems

11:30 - 12:15

Modern software-based services are implemented as large scale, highly distributed systems running in cloud or data centers. Disruptive real-world events like hardware failures or software bugs can create turbulent conditions in the environments where these systems and can lead to unpredictable outcomes. Chaos Engineering is a study of system’s ability to withstand such disruptive turbulent conditions. It works by purposefully injecting failure into the production environment that mirrors the actual failure modes and monitors the recovery.
Chaos engineering uses experimentation to study effects of such disruptions. These experiments typically start by defining "steady state" of the system and come up with metrics that can be used to measure this steady state. Then various events that mirror the failure modes (aka "Chaos") that are possible in our production environment (e.g. server crash), are injected systematically in the system in controlled environment.
Effect of the injected "Chaos" is observed by collecting and analyzing the metrics identified above. If the system is able to recover successfully, this builds confidence in system’s ability to handle an actual unplanned outage.
If a failure to recover is observed, then it becomes a target for improvement before that behavior manifests in the system at large. By continuing to run these simulations, it is possible to identify several such vulnerabilities. Fixing these vulnerabilities strengthens the system over a period of time. Extensive monitoring and logging is essential for the success of Chaos Engineering in its goal to improve the resiliency of the system.

Continuous Delivery and DevOps

Where

Ball Room 1

14:00

Serverless Application Development using Azure Functions

14:00 - 14:45

Serverless computing is a cloud computing execution model in which the cloud provider dynamically manages the allocation of machine resources. Typically, applications consist of stateless custom code that's run in ephemeral containers (Function as a Service or "FaaS"), which be spun up on demand. As a result of it, serverless applications tend to be highly scalable.
Functional paradigm can be used to such applications and offer several benefits like scalability, productivity, and correctness. Functional Program typically consists of set of functions that operate on immutable data. In pure functional code, the output value of a function depends only on the arguments that are passed to the function and there are no states involved. The functional programming model maps directly to Serverless application model.
The objective of the talk is to show how to create serverless applications in Functional Language and demonstrate how various characteristics of functional paradigm capture the behavior of such services architecture very naturally. The code examples for the talk are in F# and using Azure Functions.
F# is a mature functional programming language for the .Net platform that was developed and open sourced by Microsoft. It is fully interoperable with other .NET languages like C#, Visual Basic.NET etc. and is a great practical choice due to the design of the language itself combined with the ability of the language to use a large no. of 3rd party libraries designed for the .NET platform.
Azure Functions is Serverless offering by Microsoft and is an event driven, compute-on-demand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in Azure or third-party service as well as on-premises systems.

Continuous Delivery and DevOps

Where

Ball Room 2

Digital Transformation Day

March 8th, 2018

14:30

Unikernels: The Next Evolution in Cloud Infrastructure

14:30 - 15:15

Unikernels are specialized, single address space machine image constructed by using library operating systems and are gaining a lot of attention in the industry. Due to less amount of code deployed, they have smaller attack surface and hence improved security.
This talk describes what Unikernels are, what are their advantages & disadvantages and how are they different from containers & microkernels. It uses MirageOS as an example to show how the developer selects the minimal set of libraries which correspond to the OS constructs required for their application to run and these libraries are then compiled with the application to build sealed, fixed-purpose images which run directly on a hypervisor or hardware without an intervening OS.