BONEY SEKH: Hello and welcome.
My name is
Boney Sekh and I'm the Co-founder and CTO of Orkes.
At Orkes, our mission is to empower developers to
create reliable and scalable
distributed applications with ease.
Distributed applications are becoming increasingly
important as businesses
adopt modern software architectures.
However, building distributed applications
can be a complex and time-consuming task,
especially when it comes to managing
the common elements that
all distributed applications share.
That is why we've created
a platform that allows developers to focus
on the core of their business while leaving
the common but hard and repeated elements to us.
Our platform called Orkes Netflix Conductor,
is a world-class application
building platform that enables
developers to compose and
manage all flaws in their applications.
From simple error handling to advance monitoring,
our platform handles many things,
making day zero easy and managing
the application over its lifetime much easier.
In a typical distributed application,
multiple services often referred
to as back-end applications,
communicate with each other to implement business logic.
These services can include modern approaches like
server-less as well as legacy monolithic applications.
For example, let's imagine
an e-commerce application where the customer service,
inventory management,
and payment processing are all separate services.
These services needs to coordinate with each
other to provide seamless experience for the customer.
Coordination can be enabled by various means.
These include RPC calls, rest endpoints,
and broker based integrations
like those over a queue or a topic.
Services keep track of how
things have progressed and what's left to do.
Sometimes there are dedicated services just to do that.
Moreover, a single instance of these services
is rarely enough to handle
the workload of a typical business.
Multiple instances of the services
are then deployed to manage
the load and with that comes
the challenge of distributing
traffic across all these instances.
Traffic management is only one challenge
in building a distributed application.
Service to service communication
is a critical aspect that developers must consider.
As the number of services increases,
the complexity of communication between them
grows and failure can become more frequent.
Handling network failures, retries,
timeouts, and load balancing
can be a daunting task for developers.
They need to ensure that
communication between services are
reliable even in the face of
network failures or high traffic volumes.
It takes a lot of time and effort to build
resiliency mechanisms such as retries,
circuit breakers, and fallbacks.
Adding resiliency to an application takes
developers away from working on
more business critical tasks.
It is essential to build
resiliency into your application,
but it's also crucial to do it
efficiently to minimize the time spent on it.
When it comes to managing communications
between services,
developers typically choose one of
two patterns, calligraphy and orchestration.
In calligraphy, each service communicates
directly with the other service
in a decentralized manner.
Services send messages to each other and
each service responds according
to the message it receives.
This approach can be very flexible,
but also can be very challenging to
manage as there is no central point of control.
On the other hand, orchestration involves
a central coordinator that
manages the interaction between services.
The controller, often referred to as an orchestrator,
defines the flow of the application
and coordinates the interaction between services.
This approach can be a lot easier to
manage as there is a central point of control.
Let's talk a little bit more about
the benefits of a well-formed orchestrator.
An orchestrator provides a central point of control that
manages the interaction between
services in a distributed application.
One of the key benefits of using
an orchestrator is that it
eliminates a single point of failure.
By fully distributing the application logic
and the associated data,
the orchestrator can ensure that there is
no single point of failure that
can bring down an entire application.
An orchestrator also provides
durable cues with delivery guarantees.
This can be used to store messages and ensuring
that they are delivered reliably to their destination,
even in the face of network failures.
This is critical for
ensuring that the communication between
services is reliable and consistent.
An orchestrator also implements
well-known patterns such as
circuit breakers and discovery,
which ensures that the application is
resilient and can handle failures gracefully.
For example, a circuit breaker
can detect when a service is
failing and prevent further requests
being sent to it until it has recovered.
An orchestrator is also designed for
failures and it follows chaos engineering principles.
This means that it can handle
unexpected failures and recover from them quickly and
efficiently by embracing failures
and treating them as an expected part of the system,
the orchestrator can provide more
reliable and resilient system overall.
One of the unique benefits of
using an orchestrator is that it
also can enable versioning
outside of individual services.
With an orchestrator,
application logic is stored in the orchestrator itself
rather than being distributed
across multiple individual services.
This makes it easier to manage and version
control the application logic as a whole,
rather than having to manage it
within individual services separately.
An orchestrator also provide self-documenting flows.
By defining workflows visually,
an orchestrator can make it easier for
developers to understand and manage the application.
It can also track and
display how things have evolved overtime.
Finally, an orchestrator should also
be designed for the day hundred scenarios.
This means that it's actually built to handle
the complexities of running
an application over the long-term.
Maintaining applications should be made
easy given how flows can be configured,
monitored, and managed externally
outside of the individual services.
Let me introduce you to Orkes conductor.
It is a powerful orchestration platform
that makes it easy for developers to manage
the communication between services and
build flows that are scalable and reliable.
Orkes conductor is the enterprise version
of the popular open-source Netflix conductor platform.
Our platform allows developers
to define flows and coordinate
the interaction between services to ensure that
each service does it part in the flow,
while the orchestrator can ensure that
the flow progresses reliably.
The platform also provides built-in support for managing
distributed transactions and resiliency mechanisms
that we referred to earlier,
such as retries, circuit breakers, and fallbacks.
The platform is built using
chaos engineering principles and
is designed to be robust and resilient.
It can handle unexpected failures and
ensure that the application
remains available and responsive.
One of the key benefits of the enterprise version of
Netflix conductor platform is its flexibility.
It is available as
a managed Cloud service or deployed on-premises,
making it easy for developers to choose
the deployment model that works best for their needs.
Additional benefits of the platform include things like
decoupling the business logic from the implementation,
then this allows for rapidly
innovating in a changing business environment.
The flows can actually span across
Clouds or even your on-prem footprints.
The platforms UI provides
advanced monitoring abilities and helps
derive quick insights about
the workflows that are orchestrated by the platform.
One of the key benefits
of the platform is that
it maintains the state
throughout the execution lifecycle,
regardless of how long this may be.
This enables developers to build
complex flows that can span across
multiple services and the platform can
ensure that the state is
maintained throughout the entire process.
This can be for flows that
takes just milliseconds to complete,
or even days or months to
complete depending on the use case.
The platform also provides
powerful scheduling and execution capabilities and
this enables developers to execute
a large-scale of scheduled jobs reliably.
Orkes Conductor also provides
native support for reliability fundamentals.
This includes error handling retries, rate-limiting,
to ensure that the application remains available and
responsive even in unexpected conditions.
The platform provides a range of tools
and features for monitoring and analyzing
performance of
your distributed applications and these include
metrics that can be consumed by
monitoring tools such as Prometheus and Grafana.
A key feature of this platform is
the powerful visual workflow editor
and the monitoring dashboard,
which makes it easy for developers to
create and manage workloads
visually and then monitor
the performance of their applications in real time.
Whether it's intuitive UI and drag and drop features,
Orkes Conductor makes it easy for developers to
build and manage applications with these.
In addition to the UI, we have SDKs as well,
which are supported in
multiple different programming languages,
which makes it easy for integrating with your systems
and writing flows in
your own application code
for those who prefer that model.
Orchestration is a powerful tool that can be
used to build and manage entire business tax.
With Orkes Conductor,
developers can build and orchestrate
flows that spans multiple services and use cases.
Examples of these use cases can be,
user provisioning, monthly billing,
Cloud infrastructure provisioning, monitoring for health,
data and infrastructure migrations,
data processing, and even AI orchestration.
This makes it easy for developers to
build applications that are
designed to handle complexities
of modern business workflows.
Whether you are building a new application from
scratch or looking to modernize an existing application,
Orkes Conductor provides the tools
and features you need to
build and manage distributed applications with these.
Speaking of modernization, orchestration is
a powerful tool that can be used
to modernize legacy applications.
This enables developers to move away from
monolithic architectures and move
towards more modern distributed architectures.
Conductor provides a range of tools and features that
helps makes this process easier and more efficient.
One of the key benefits of using Orkes Conductor to
modernize legacy applications is that it
provides support for integrations using
existing eventing tools and other mechanisms.
This means that developers can
build and manage flows that span
different infrastructure and ensure that
all the corresponding services are integrated
seamlessly in to the overall application architecture.
As an example, we could also use the strangler pattern,
which enables developers to migrate one service at
a time rather than
migrating the entire application all at once,
which can be very risky.
This helps the whole process of modernization,
like modernizing legacy applications
less risky and manageable.
Orkes Conductor also provide support
for heterogeneous client infrastructure,
including different languages,
different environments, and stacks.
This means that developers can build, modify,
and manage existing applications and
are designed to work with a wide range of technologies.
This also makes it easier to integrate new services and
components into existing legacy applications.
Next, I would like to
introduce you to the Orkes Cloud platform.
This is a powerful tool that
enables developers and organizations
to create and manage
multiple Orkes conducted clusters in the Cloud.
With the Orkes Cloud platform,
organizations can build and manage as
many conductor clusters as
required with just a few clicks.
Orkes Cloud platform also provides
powerful operational and usage insights,
making it easy for developers to
monitor the performance of
their applications in realtime
and quickly identify and
troubleshoot issues as they arise.
Through powerful monitoring tools and the intuitive UI,
Orkes Conductor platform enables developers to
ensure that their applications
are performing as expected,
meeting the needs of their users.
From the Cloud platform,
you can deploy conductor clusters in
a Orkes hosted or a customer hosted environment.
This gives developers and
organizations the flexibility to choose
the deployment option that best
meets their organizational policies.
With its availability in the Azure marketplace,
it's easy for developers to get started and begin
building and managing
distributed applications in the Cloud.
If you're interested in
getting started with Orkes Conductor,
then you have a few different options available to you.
One great option for getting started with
Orkes Conductor is the Orkes Conductor playground.
This is a free developer sandbox
that provides a great way to
learn about Orkes and start
building distributed applications within the platform.
With the Orkes Conductor playground,
you can experiment with different workflows,
explore the platform's features,
and build your skills with
Orkes Conductor in a safe sandbox environment.
Another great option is to get
started with Orkes Conductor is the Orkes Cloud.
Orkes Cloud provides
fully managed enterprise grade Orkes Conductor clusters
and expert support.
Orkes Cloud is available on
the Microsoft commercial marketplace,
making it really easy to get started with the platform.
With customized plans that can
meet your needs and 100 percent of
the marketplace purchases counting towards
your Azure Cloud consumption commitments,
Orkes Cloud provides a powerful and flexible solution for
organizations looking to build and
manage impactful distributed applications.
To find out more about Orkes Conductor offering and
the different options available
and to get started with the platform,
please visit our listing in
the Microsoft commercial marketplace.
Whether you're looking to experiment
with Orkes Conductor in
our playground or build
enterprise grade distributed applications
with our Cloud,
we are here to help you get
started and succeed. Thank you.