The document discusses using Senlin, an OpenStack clustering service, to provide autoscaling capabilities for multicloud platforms. Senlin allows for managing clusters of nodes across different cloud providers and includes features like load balancing, auto-healing, and scaling policies. It describes how Senlin was implemented at a company to provide a centralized autoscaling solution across OpenStack and VMware cloud environments. Some drawbacks of Senlin are also outlined, along with potential future work like multi-region clusters and global load balancing.
2. Sang Tran
Sr. Core Engineer –
Build, manage, and troubleshoot cloud/storage platform based on opensource. Experience in researching open
infrastructure projects for developing cloud services or features.
04 years experience working on Open Infrastructure, Cloud Native, and Software Define Storage.
Certifications in IT field: CKA, RHCSA, RHCE, RHCS, AWS-SA.
Tel: +84 962949843, Work mail: sangtq8@fpt.com.vn, Mail: sangtq.vn@gmail.com
3. Developer Support
Table of contents
1. Senlin overview
2. Feature & architecture
3. Solution for multicloud
4. Drawbacks & Roadmap
5. Demo
6. Q&A
5. Senlin is a clustering service for OpenStack clouds.
Senlin interacts with other OpenStack services via profile
plugins.
A Cluster can be associated with different Policy types.
Senlin is designed to be capable of managing different
types of objects.
Senlin at a glance
https://wiki.openstack.org/wiki/Senlin
7. Managing node affinity or anti-affinity [1].
Autoscaling using Ceilometer/Aodh [2].
Autoscaling with Heat [3].
Cross region autoscaling for HA VM [4].
Integration with Magnum for container autoscaling [5].
High availability and auto-healing application cluster [6].
Integration with K8S for autoscaling and auto-healing worker [7].
Usage Scenarios
(*) 1. https://docs.openstack.org/senlin/latest/scenarios/affinity.html; 2. https://docs.openstack.org/senlin/latest/scenarios/autoscaling_ceilometer.html;
3. https://docs.openstack.org/senlin/latest/scenarios/autoscaling_heat.html; 4. http://www.slideshare.net/cliffton75/vm-ha-and-crossregion-scaling;
5. http://www.slideshare.net/cliffton75/autoscaling-with-magnum-and-senlin; 6. https://www.openstack.org/videos/barcelona-2016/on-building-an-auto-healing-resource-cluster-using-senlin;
7. https://www.openstack.org/videos/sydney-2017/standing-up-kubernetes-on-openstack-is-cool-then-what
Autoscaling for K8S worker
10. Service for lifecycles managing groups of node VM on OpenStack.
Profile management enables the creation and management of IaaS resources.
A flexible policy framework leads to various additional plugin features for the cluster.
Operation and auditing capabilities with action/event logs for every cluster.
Cluster action can be externally triggered by the receiver method.
Monitor and recover node when failure.
....
Primary feature of senlin
ALL-in-ONE:
AS (Autoscaling) + HA (High availability) + LB (Load-Balancing)
11. Senlin service provides set of rich features for autoscaling solutions:
Operations: The CLUSTER_SCALE_OUT, CLUSTER_SCALE_IN, CLUSTER_RESIZE support for controlling cluster scaling behavior.
Receivers: Capability to send signal from external monitoring or 3rd software so that scaling operation can be automated.
Policies:
Health policy: Auto recover failure node in autoscaling cluster.
Scaling policy: Fine-tune the number of node for scaling operation.
Deletion policy: Control how nodes are removed when scale-in.
Why Autoscaling with Senlin ?
15. Multi-cloud platform OpenStack + Enterprise VMware Cloud
Already has centralized monitoring + alert system.
The requirement to centralize autoscaling for both platforms.
Faster Time-To-Market of autoscaling feature.
Meet the requirement of standard autoscaling features.
Challenge for Autoscaling at FPTCloud
16. Develop new profile: os.vcd.server
Add new driver based on pycloud sdk
Add new vcd LB policy
New method for health check
The proposed
solution
17. Support multi-cloud platform on one portal console.
Flexible method for cluster profile (image template, vm snapshot or cloud-
init script).
Support Load-Balancing policy on both platforms.
Autoscaling with cluster CPU, RAM, Network Bandwidth threshold.
Support Scaling Policy, Auto-Healing Policy.
Schedule scaling policy.
And after 3 months ....
19. Security problems of the receiver webhook endpoint.
Parallel software operation in add/remove node.
Authentication problem when using difference cloud platform.
Lack of contribution for senlin community project.
Senlin DB operation using DELETE query instead of isDeleted
flag.
Drawbacks
Commits in one year
20. Finalizing source code and contributing to the community.
Support multi-region with cross-platform autoscaling stretched
cluster.
Global Load-balancer plugins.
Action Notification plugins (via email, sms, telegram,...).
Future works
Guy in my Team