Cellery is a new project that makes it easier to build, structure, deploy and manage cloud-native applications on Kubernetes.
This deck covers the need for better application management tools for microservices and serverless architectures, and how Cellery helps out. There will be a demo of Cellery where we will show how to use simple type-safe code to create and deploy cloud-native applications, as well as how to do blue-green and canary updates, monitoring and tracking.
The webinar is now available on-demand - https://wso2.com/library/webinars/2019/09/deploy-and-manage-composite-apps-on-kubernetes-like-a-boss-with-cellery
This webinar will be of interest to developers and DevOps professionals looking to use Kubernetes to deploy microservices and serverless applications.
Deploy and Manage Composite Apps on Kubernetes like a Boss with Cellery
1. Deploy and Manage Composite Apps on
Kubernetes like a Boss with Cellery
Webinar
September 2019
Paul Fremantle, CTO and Co-Founder, WSO2
paul@wso2.com @pzfreo #cellery
6. What have I pre-installed and configured?
Cellery 0.3 - 18Mb download (native, written in Go)
https://product-dist.cellery.io/downloads/0.3.0/cellery-macos-installer-x64-0.3.0.pkg
VSCode - optional for editing
Ballerina 0.991.0 - optional to enable VSCode syntax
support
Set up some hostnames in /etc/hosts
11. Why code-first?
● Type safety and validation
● Compiled into immutable images
● Utilise simple logic during build and run
○ E.g. lookup environment variables, string manipulation,
common functions
● Visual Studio Code and Intellij Code plugins
○ Tab completion, syntax highlighting, error marking
● More compact than YAML
16. What is a cell in Cellery?
● A cell is an immutable application component
● Is built, deployed, updated and managed as a complete unit.
● Consists of multiple containers, services, managed APIs,
ingress and egress policies, security trust domain, deployment
policies, and defined external dependencies.
● Cells are versioned, pushed/pulled, deployed
○ Become re-usable units of architecture
24. Cellery and Service Mesh
Cellery automatically configures Istio
● Cell boundaries
● Including load-balancing across replicas
● Auto-scaling
● Security and policy support (OPA)
● Blue-green and canary
… based on your application architecture
25. Blue-green and Canary
# Update in place
cellery pull wso2cellery/pet-be-cell:latestv2
cellery update pet-be wso2cellery/pet-be-cell:latestv2
# Blue-green / Canary
cellery run wso2cellery/pet-be-cell:1.0.0
-n pet-be-1.0.0 # run initial cell
cellery run wso2cellery/pet-be-cell:1.0.1
-n pet-be-1.0.1 # run new version
cellery route-traffic pet-be-1.0.0 -p pet-be-1.0.1=10 # 10% to new
cellery route-traffic pet-be-1.0.0 -p pet-be-1.0.1=100 # 100%
cellery terminate pet-be-1.0.0 # terminate old
29. Cellery code vs YAML
Type-checked, compiled, extensible and 50% less lines of code
30. Cellery 0.3
https://wso2-cellery.github.io/
● Cellery CLI: code, build and push/pull cells
○ Logic cells: API ingress using OAuth/JWT (Swagger)
○ Web cells: Web ingress inc. SSO enablement
● Deploy and run on Kubernetes / Istio with CRDs
● Observability, API gateway and API manager built in
● Build-time and run-time visualisation of cells and dependencies
● Startup dependencies and healthchecks
● Auto-scaling
● Serverless support (scale to zero) using knative
● Blue/Green and Canary deployment
● cellery test
● cellery -v / show kubectl commands
31. Roadmap
Cellery 0.4 - October 2019
● Stateful cells
● Composites (naked cells)
● Pre-defined CI/CD pipelines
● Simpler cell testing (telepresence) and inline tests
● Feature flagging and enhanced routing
● Performance improvements
● … and more
Future
● Enhanced cloud capabilities
● Typescript version?
● SMI support
● Applications
+ Your input!
32. How to get involved?
● Download and try it
○ https://github.com/wso2-cellery/sdk/blob/master/README.md
● Fork / Star on Github :-)
○ https://github.com/wso2-cellery/sdk
● Join the mailing list
○ https://groups.google.com/forum/#!forum/wso2-cellery-dev
● Contribute
○ https://github.com/wso2-cellery/sdk/blob/master/CONTRIBUTING.md
33. Why Cellery?
● Code completion and validation of cell definitions
● Visualisation of cells
● API-first architecture by default
● Automatic security enablement
● Concise config leads to fewer mistakes
● Scalable architecture
● Cells exist at build, test, run and manage/observe
○ Enables progressive delivery around the right unit