Choreo: Empowering the Future of Enterprise Software Engineering

wso2.org 212 views 50 slides May 09, 2024
Slide 1
Slide 1 of 50
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50

About This Presentation

Key topics covered:
- Real-world examples of Choreo's comprehensive coverage from application design and deployment, security, scaling, and monitoring
- Running different types of workloads, such as web applications, APIs, microservices, integrations, and tasks at scale, and wire them together t...


Slide Content

Choreo: Empowering the
Future of Enterprise
Software Engineering
Asanka Abeyweera
Associate Director
WSO2
Ramith Jayasinghe
Director - Solutions Architecture
WSO2

The cloud native era is transforming how
we build and deliver technology, creating
more dynamic and immersive digital
experiences than ever before.

3https://wso2.com/choreo/
Choreo allows you to
focus just on on creating
and delivering awesome
digital experiences.
Choreo is an internal developer platform that
facilitates enterprise software engineering and
software delivery & operations.

Enterprise application architecture is evolving
4
APP
APP
APP
BFF
S1
S2
S3
S4
SYSTEMS OF RECORD
STORAGE
API
API
API
API
API
API
API
Interface
Types
APPS EXPERIENCE APIs /
BFF SERVICES
DOMAIN & BUSINESS LOGIC
SERVICES

INTEGRATION SERVICES
Network Data Network Data
T1
T2
T3
T4
Domain Data

5
“CIOs are engineering platforms to foster composable
technology practices.” – Gartner

source: https://www.gartner.com/document/4008081

6
Your digital business, with Choreo
Enterprise Software Engineering
Software Delivery & Operations
Digital Experiences
Internal Developer Platform

IDevP must facilitate enterprise software engineering
7
Marketplace
Domain A
S
S
S
Domain B
S
S
S
S
Development time Runtime
API design
API discovery
Application Developers
Zero trust
API Gateway
Auth/Autz
Observability
CI/CD
S
S
S
S
S
S
A
V1
V2
S
Mesh
Cell A
Cell B

Refine modern software delivery &
operations
●Developer self-service
●Containerization & Kubernetes
●CI/CD & GitOps
●Resource optimization
●Multi-cloud, multi-environment
●Observability & alerting
●Config & secret management
●Resiliency, scalability & HA
●Operational & business insights
Establish your enterprise software
engineering practice
●API-first development
●Domain driven design
●Microservice architecture
●Test driven development
●Automated DevOps
●Secure by default
●Version management
●Iterative architecture
●AI augmented engineering
What does Choreo deliver?
8

9https://wso2.com/choreo/
●Built by productizing 15 years of experience in helping
customers create their own internal platforms
●End to end platform as a service
●Multi-cloud SaaS
●De-risked and more secure
●Pay as you go - no capex
Go platformless and just add developers with WSO2

What is Choreo?
10

What is Choreo?
11

Tutorial GitHub Repository
12
https://github.com/wso2con2024/choreo-tutorial

Demo: Deploying a Microservice in
Choreo

Introduction to the Use Case
14

Application Architecture
15

Application Architecture
16

Application Architecture
17

Deploying a micro service on Choreo
18

Tutorial GitHub Repository
19
https://github.com/wso2con2024/choreo-tutorial

●Organization: A logical grouping of users and users' resources.
⦿An organization may represent a company, community, or single user.
⦿A user can belong to multiple organizations in Choreo.

●Project: A logical grouping of components you can create in Choreo
allowing users to organize their work effectively. Typically represents a
single cloud native application.

●Component: A component within a project represents a single unit of work
in a cloud native application. Ex: Microservices, manual/scheduled tasks,
web apps, webhooks, API Proxies
⦿All components within a given project are deployed into a single
namespace of the Kubernetes cluster (dataplane).


Choreo Concepts
20

●Endpoint: A network-exposed function that resides within a component.
⦿Service components can expose one or more endpoints.
⦿Each endpoint in a component can have a service contract (OpenAPI,
GraphQL SDL) associated with it.
●An endpoint within a project can be exposed to the internet, to
neighbouring projects, or within the project only.
Choreo Concepts
21

Choreo Concepts
22
●An environment refers to a specific set of configurations and isolated
infrastructure/resources where user workloads are executed.
●Choreo supports any number of environments per organization.

Choreo Concepts
23

Choreo Architecture
24

●Control Plane: Centralized management component of
Choreo that oversees and coordinates the workloads
deployed by customers. It provides a unified point of
control and visibility for the organization, allowing
administrators to manage, monitor, and orchestrate the
organization’s resources efficiently.

●Data Plane: A Choreo integrated computing environment
designed for running customer workloads in a dedicated
cloud infrastructure either owned by the customer (private
data planes) or WSO2 (cloud data plane).

●The control plane and data plane communicate via APIs.
The data plane can continue to operate independently
even if the control plane is out of reach
Choreo Concepts
25

●Internal Marketplace: One stop shop for discovering all reusable assets
within the organization.

Choreo Concepts
26

●Developer Portal: To expose APIs outside of the organization.
⦿Invite third party developers.
⦿Enable Monetization

Choreo Concepts
27

Demo: Service to Service Communication

Service to service communication on Choreo
29

●Connections: Reusable, shareable, governed links to endpoints both
within and outside the organization




Choreo Concepts
30

●Cell Based Architecture: Organizing your applications for agility and scale.
https://github.com/wso2/reference-architecture/blob/master/reference-architecture-cell-based.md
●Internal vs External APIs: Different interfaces, different responsibilities.

Choreo Concepts
31

●Zero Trust architecture on Choreo data plane

-Never Trust, Always Verify
-Least Privilege Access
-Micro-Segmentation
-Layered Security Controls
-Assume Breach
-End-to-End Encryption
-Full User and System Visibility

Choreo Concepts
32https://wso2.com/library/blogs/how-we-implemented-zero-trust-in-choreo/

Demo: Deploying a Web Application on
Choreo

Deploying a web application on Choreo
34

●Choreo Managed Authentication




Choreo Concepts
35
https://wso2.com/library/blogs/choreos-managed-authentication-for-single-page-web-applications/

●Scale to Zero: For optimal usage of resources, especially in non
production environments.




Choreo Concepts
36

Demo: Versioning and Deployment Tracks

Using Deployment Tracks for API Versioning
38

Using Deployment Tracks for API Versioning
39

●Versioning and Deployment Tracks: Handling multiple versions of
services, concurrently

Choreo Concepts
40

Demo: Scheduling a Task

Scheduling a Task in Choreo
42

Advantages with Choreo
43
Without Choreo With Choreo
Dedicated in-house teams managing
infrastructure and production operations
No operations overhead / completely
managed by WSO2
Create and maintain DevOps pipelines Built-in pipelines
Create and maintain different pipelines for
different projects/groups/teams
Unified pipeline access to any kind of
projects - APIs, Java/Python/.Net services
and more…
Create and manage environment config
(Terraform)
Built-in environments. Can create dynamic
environments from UI without Terraform
DevOps manage patches and updates
manually
Patches and updates applied automatically
SSO + auth/authz provided with external
identity management tools
Built-in IAM support AND federation to work
with existing identity + SSO providers

Advantages with Choreo cont.
44
Without Choreo With Choreo
Significant knowledge, effort, time and
investment to use ECS + Kubernetes (in
future)
Fully managed Kubernetes cluster in every
data plane. No K8s expertise required
Total number of developers, Y 20% decrease in number of developers due
to cloud native middleware and rich
developer experience

●Deliver awesome digital
experiences for customers
faster
●Build deeper understanding
of customers
●Freedom to innovate in a
managed environment
approved by IT
●Lower TCO and higher ROI
LoB / CMO
●Freedom to focus on
application design and
architecture, and not
infrastructure
●Code in any language, and
offload all devops + secops
to us
●Design and build secure &
resilient distributed
systems
●More productivity
improvements
45
The value of Choreo for stakeholders
Developers
●Govern distributed systems
and facilitate easy reuse
●Deliver more business
solutions with smaller teams
that skill up on the business
not platforms
●Lockin-free SaaS
●Security by default
Architect / CTO / CIO

46
https://wso2.com/choreo/
JUST ADD DEVELOPERS.

Developer self-service
47

Private data plane
48

Choreo data plane architecture & modularity
49
https://github.com/wso2/reference-architecture/blob/master/reference-architecture-cell-based.md

Thank You!