Open Source Solution for Building Invincible Apps

Introduction

I left Microsoft after 19 years, where I led teams that built system software for highly scalable cloud applications. This included leading development of the Microsoft Orleans framework from its inception at Microsoft Research until it became one of the most successful open-source projects within the .NET ecosystem. Orleans powers a number of large-scale Microsoft systems such as Xbox Game Services, Skype, Azure IoT, Azure ML, Azure Active Directory, and many more cloud services outside Microsoft. So if you’ve ever played online multiplayer games like Halo or Call of Duty, our team built much of the underlying infrastructure that supports it.

When I originally joined Orleans, cloud computing was still in its infancy. We had a 10,000-foot vision and not a single line of actual code. We needed to reimagine how cloud-scale applications should be coded because, at the time, available and high-performance scalable systems were only achievable by experts. And while everyone knew the cloud was coming, we had no idea how to build applications in a way that ensured they would be accessible and productive for millions of software engineers.

What Is Cloud Native Observability V. Visibility and Why Is It So Important?

Cloud-native technologies are revolutionary and disruptive to existing infrastructure, application, and monitoring methods that result in opacity problems. We’ll go into more detail as to why the shift to cloud-native observability has arrived, propose a broader, more meaningful definition of what it is, the resulting significance, and deeper implications. But first, let’s revisit containerization, and by extension, why cloud-native observability is so important.

Virtualization and Cloud-Native/Container-Based Systemscloud-native

There is no intervening hypervisor between the OS and the underlying infrastructure in containerized environments, enabling applications and developers to take full advantage of the benefits of cloud-native development and deployment in terms of interoperability, efficiency, and performance. Consequently, in addition to the resulting efficiency and portability advantages, containerization makes it possible to access and use operating system (and kernel) services directly to examine the state and operation of the underlying infrastructure (nodes/bare metal servers), as well as the attendant services, the operating system, and applications. This is profoundly important because in the cloud-native world – network topology (physical and virtual) is hidden, interfaces (network namespaces) are hidden, data flows are hidden, and to make matters even more challenging - resources can be ephemeral - dynamically configured, provisioned, deployed and reused. 

How to build better Infra Microservices?: 3 Key Architectural Guidelines

Microservices are great and powerful. Microservices always need not be business scenario specific. When building scalable, large platforms, it is important to build several infrastructure level microservices which can be used in building solution/business specific microservices. 

what Is an Infra Microservice?

A microservice which may not directly handle the business use case but helps in rapid development of other functional microservices by handling generic things like user profiles management, Clickstream data pipeline, role-based access control, etc. Compare this with functional microservices that will handle business-specific use cases for example – Product rating microservice, Order delivery microservice.

Breaking Down a Monolith Into Microservices — an Integration Journey

Learn how to break down a monolith!


Wondering How to Secure the Microservices You Are Working On?

Ironically, few characteristics of a Microservices architecture which consider as its benefits can also contribute to its disadvantages. While Microservices provide greater flexibility in overall application development and management, it also increases the complexity of the same actions due to the need for more coordination and communication for deploying Microservices.

Bring Your Monolithic Applications Back From the Dead

It was the early 2000’s, your .NET application was the best thing to hit the streets since the IBOOK G3 came out. Let’s just say that your application was so money, it didn’t even know it. It had its shiny new (insert any sweet .NET functionality here) and all of the Java-based applications were jealous of it. Those were the days…

Now turn to today. You feel like John Ritter and your application is the problem child from hell. It’s stuck in the past; it won’t allow you to update it. You’re constantly supporting all of its bad consumption habits and it won’t play nice with your other applications.

Chaos Engineering in Organic Microservice Architectures

Puzzles? More like chaos engineering.


The resilience of a distributed microservice application depends fundamentally on how gracefully it can adapt to those all-too-certain environmental degradations and service failures. It is therefore not only a good but an essential practice that such applications be tested for how they will behave under various failure scenarios.