SlideShare a Scribd company logo
1 of 42
Cloud Platform at Symantec 
Meetup
Agenda 
2 
6:30 pm - Continuous Integration and Deployment Using OpenStack. Miguel Zuniga 
7:15 pm - Tuning OpenStack for Availability and Performance in Large Production 
Deployments. Raj Geda & Gabriel Capisizu
Continuous Integration and Deployment Using 
OpenStack 
Miguel Zuniga 
Cloud Platform Engineering
Agenda 
• Continuous CI/CD Workflow – From beginning to end 
• Replicating code changes to multiple repositories 
• The gating system – Review, Approval, Build, Integration and Release 
• Packages, Artifacts 
• Distribution of Packages 
• Infrastructure as Code 
• Deployment to Production 
4
Continuous CI / CD Workflow 
Presentation Identifier Goes Here 
5
Continuous CI / CD workflow 
1. Developer commits change to review system 
2. Gating system detects the new commit and instructs the 
coordinator to execute the job specified in the config file. 
3. Coordinator instructs worker to execute specific gate job. 
4. Worker downloads the new commit, reads the config file and 
executes all the instructions. Coordinator reports back to Gating 
system which allows the commit to move forward or get rejected. 
5. Once approved the commit get replicated to some external git 
server (github, stash, git server). 
Presentation Identifier Goes Here 
6
Continuous CI / CD workflow 
6. Worker creates the packages of the approved commits and 
stores them in a package repository 
7. Configuration management server downloads the latest config 
mgmt code. 
8. Instruct the clients to make modifications on their state 
9. Clients pull new packages from the repositories servers. 
Presentation Identifier Goes Here 
7
Replicating Code 
• Only approved commits get replicated to target destinations. 
• All other systems pull code from these destinations. 
• Production packages are created with the code stored here. 
• Remember your CI system might be in cloud so this is your 
backup solution. 
Presentation Identifier Goes Here 
8
Gating system 
• Provide one or more gates based on the events emitted by the 
review system. 
• Recommended gating: 
Review Gate -> When user git review a new change 
Approval Gate -> When user +2 a new change 
Build Gate -> When user submits for merge an approved change 
Integration Gate -> When user comments integration on specific change 
Release Gate -> When user adds a new tag to a specific commit 
Periodic Gate -> Executed once a day (or more) 
Presentation Identifier Goes Here 
9
Gating system 
• The gating system will also review each of the changes providing 
a +1, -1, approved or rejected output based on the results from 
the jobs executed at a specific gate. 
• Provides an easy API interface to collect metrics, send 
notifications, create reports and execute jobs based on other 
triggers. 
Presentation Identifier Goes Here 
10
Packages and Artifacts 
• Create packages only from approved changes which are replicated to 
the final code destination (github, stash, git server). 
• Use OS package systems (rpm, debs) 
• Keep a sane versioning v0.XXXX for development vY.XXX for 
production 
• The gating system provides to gates where to build packages, the build 
gate which can create a package of each commit and the release gate 
which creates a package of a specific tag, use the late one for 
production packages. 
Presentation Identifier Goes Here 
11
Distribution of Packages 
• Have a central repository which will be RW to store all the 
packages. 
• Replicate packages on all Cloud availability zones, Data Centers, 
environments. 
• Use existing tools or at least rsync to move the data around. 
• All your repository endpoints must be RO. 
• Use CDN when possible. 
Presentation Identifier Goes Here 
12
Infrastructure as Code 
• Puppet/Chef/Ansible/Whatever 
• Write your code in a recursive way (or with specific order) to allow 
deployments with one iteration (only one run). 
• Your code should go also through the review system. 
• The config management server should pull the code from the 
replicated git servers (github, stash, git server). 
• Make sure your server is pulling code based on the tag releases. 
• Use a change management window if necessary. 
Presentation Identifier Goes Here 
13
Deployment to Production 
• Deployment will be controlled by the config management server 
when new code gets pulled from the git repositories. 
• The clients will download the specific packages based on the 
config mgmt instructions. 
• Use orchestration tools if your application needs it. 
• The trick is in generating a stable and reliable package as well as 
good configuration management code. 
Presentation Identifier Goes Here 
14
Thank you! 
Q&A 
Copyright © 2014 Symantec Corporation. All rights reserved. Symantec and the Symantec Logo are trademarks or registered trademarks of Symantec Corporation or its 
affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. 
This document is provided for informational purposes only and is not intended as advertising. All warranties relating to the information in this document, either express or 
implied, are disclaimed to the maximum extent allowed by law. The information in this document is subject to change without notice. 
15 
@mikezuniga 
+miguelzuniga
Tuning OpenStack for availability and 
performance in large production deployments 
Raj Geda, Gabriel Capisizu 
Cloud Platform Engineering
Agenda 
• Large scale, High Availability 
• Infrastructure life cycle 
• LDAP and Keystone integration 
• Keystone SSL, PKI Tokens 
• Nova 
• KVM 
• Database 
• RabbitMQ 
17
What is a large (scale) production environment? 
Multiple DC’s 
Thousands of Hypervisors 
10s x thousands of VMs 
Millions of requests/min to API Endpoints 
18
High Availability 
Any control plane service distributed among failure zones 
Hardware load balancer (HA pair) in front of any service 
No L2 spanning across availability zones 
Redundant power 
Redundant network connectivity 
19
High Availability – compute node 
TOR 
sw 
managemet 
sw 
bond0 
1g 
LACP 
active/active 
ipmi/out-of-band 
802.1q 
compute node 
to distribution 
to distribution 
TOR 
sw 
10g 
eth0 
10g 
eth0 
10G Redundant NICs 
ACTIVE/ACTIVE LACP 
trunks w/ 802.1q 
Out of band 
management/IPMI 
20
Infrastructure Lifecycle management 
Bare metal provisioning – Foreman, Cobbler 
Classification of systems 
Configuration management – puppet, masterless 
Orchestration - salt, fab 
21
Enterprise directories and OpenStack 
Where are your users ? 
Why do you need to use an ‘identity management’ with your enterprise 
directory 
Active directory or LDAP 
Why LDAP ? 
22
Keystone and LDAP 
Keystone role in OpenStack 
LDAP for identity, SQL for assignment 
Read-Only LDAP 
Use SSL for connecting keystone with LDAP (use ldaps:// rather than ldap:// ) – 
use a trusted CA, turn verification of certs ON 
Create proxy user for keystone to bind – set permissions, ACI 
LDAP capacity – keep an eye on load and performance of the directory server(s) 
23
End to End encryption and Keystone 
Understand the flow of data 
24
Staying on top of your (keystone) security 
35357/ssl 5000/ssl 
apache/mod_wsgi/ 
mod_ssl 
keystone 
self signed cert 
https://keystone-admin/ https://keystone/ 
LB VIP 
LB VIP 
self signed cert 
apache/mod_wsgi/ 
mod_ssl 
35357/ssl 5000/ssl 
self signed cert self signed cert 
apache/mod_wsgi/ 
mod_ssl 
keystone 
apache/mod_wsgi/ 
mod_ssl 
client ssl 
35357/ssl 5000/ssl 
self signed cert self signed cert 
apache/mod_wsgi/ 
mod_ssl 
keystone 
apache/mod_wsgi/ 
mod_ssl 
signed cert 
client ssl 
server ssl 
signed cert 
server ssl 
25 
Certificates 
trusted CA signed vs self signed 
Front keystone servers with 
apache/mod_wsgi or nginx/uwsgi 
Load balancers in the front of your 
keystone servers, custom checks to 
Validate services 
chmod 640 keystone.conf
Keystone and PKI tokens 
Why not just use UUID tokens? 
Why PKI tokens are better 
improved performance – no calls to keystone for validation 
first get the public key (certificate) cache it, subsequent calls use it to 
validate tokens 
keystone server encodes, signs token 
client validates expiration, revocation list, signature, decodes token 
26
Issues with PKI tokens 
Token size 
Catalog size 
No catalog filtering 
Make sure the components that use keystone support large tokens 
Raise the default to accommodate large tokens(MAX_HEADER_LINE = 32768) 
apache – mod_wsig 
python eventlet – wsgi.py 
Use – nocatalog 
27
Nova 
28
29 
<Apache-nova.conf > 
Listen 8774 
<VirtualHost *:8774> 
WSGIScriptAlias / /opt/wsgi/nova-api.wsgi 
WSGIDaemonProcess nova-api user=nova group=nogroup processes=3 
threads=10 python-path=/usr/share/pyshared/nova 
WSGIProcessGroup nova-api 
# SSL Config 
SSLEngine on 
SSLCertificateFile /etc/ssl/certs/server.crt 
SSLCertificateKeyFile /etc/ssl/private/server.key 
ErrorLog /var/log/nova/nova-api.log 
LogLevel info 
CustomLog /var/log/nova/nova-api.log combined 
</VirtualHost> 
< /opt/wsgi/nova-api.wsgi> 
import os 
import sys 
from nova import log 
from nova import utils 
from paste.deploy.loadwsgi import loadapp 
sys.path.insert(0,(os.path.dirname(os.path.realpath(__file__)))) 
sys.stdout = sys.stderr 
# Read nova configuration options and pick the default configuration file 
# Typically /etc/nova/nova.conf 
flags = utils.default_flagfile() 
# Import nova gflags information for ease of use 
from nova import flags 
flags.FLAGS(sys.argv) 
log.setup() 
# Location of the paste-deploy configuration file 
config = '/etc/nova/api-paste.ini' 
# Application that mod_wsgi will be deploying 
application = loadapp('config:%s' % config, name = ’nova-api') 
Tuning of Nova api 
# Raise the default from 8192 to accommodate large tokens 
eventlet.wsgi.MAX_HEADER_LINE = 32768
Nova conductor 
User 
Nova API 
AMQP 
Queue 
database 
nova-scheduler nova-compute 
nova-conductor 
SQL 
30 
Nova API 
AMQP SQL 
Queue 
database 
nova-scheduler 
nova-compute 
User 
to disable nova conductor use:
Tuning KVM 
31 
http://www.linux-kvm.org/page/Main_Page
KSM (Kernel SamePage Merging) 
KSM lets the hypervisor system share identical memory pages amongst 
different processes or virtualized guests. 
KSM is critical to performance if you want to over provision your resources 
successfully. 
ksmtuned/ksmd process work the following way: 
– scans through the memory finding duplicate pages 
– Merges duplicate page to single page 
– Map to all virtual machine locations 
– Set copy on write 
– Separate page when individual guests write to it. 
32
THP (Transparent Huge Page) 
Transparent Hugepages 
Add to XML configuration for guests: 
cat /proc/sys/vm/nr_hugepages 
cat /proc/meminfo | grep Huge 
echo xxxxx > /proc/sys/vm/nr_hugepages 
33 
echo always > /sys/kernel/mm/redhat_transparent_hugepage/enabled 
<memoryBacking> 
<hugepages> 
</memoryBacking>
Block I/O 
I/O Scheduler 
– Deadline 
VM cache mode/Asynchronous I/O 
34
Database 
35
High Available MySQL 
36 
wsrep 
Galera approach is Data Centric 
Connect to any node to write 
No headache for auto increment 
Replicate the full dataset across all 
nodes
MySQL Config 
37 
[mysqld_safe] 
log-error=/var/log/mysqld.log 
[mysqld] 
datadir=/mysql_data 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
symbolic-links=0 
port=3306 
skip-name-resolve 
max_connection=3000 
open-files-limit=65584 
#innodb settings 
innodb_additional_mem_pool_size=24M 
innodb_log_buffer_size=12M 
innodb_log_file_size=224M 
innodb_buffer_pool_size=4G 
innodb_lock_wait_timeout=50 
innodb_thread_concurrency=34 
innodb_locks_unsafe_for_binlog=1 
innodb_flush_log_at_trx_commit=0 
innodb_doublewrite=0 
# wsrep 
binlog_format=ROW 
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2 
wsrep_auto_increment_control=1 
wsrep_convert_LOCK_to_trx=1 
wsrep_certify_nonPK=1 
wsrep_drupal_282555_workaround=0 
wsrep_slave_threads=2 
wsrep_provider=/usr/lib64/libgalera_smm.so 
wsrep_sst_method=rsync 
wsrep_cluster_address=gcomm://node1,node2,node3 
wsrep_node_name=node1 
wsrep_node_address=xx.yy.zz.aa 
wsrep_cluster_name=osdb 
wsrep_sst_auth="sstuser:password"
MySQL Cluster Limitations 
support only InnoDB 
Primary Key is must 
commit latency (based on how may nodes in cluster) 
Doesn’t like huge transactions 
Deadlock on commit 
Presentation Identifier Goes Here 
38
Rabbit ‘MQ’ 
39 
They used to make cartoons about me 
and 
now they are using me in data queues!
What can RabbitMQ do for you? 
Clustering support 
Highly Available Queues 
Implements the latest AMQP spec (0.9/1.0) 
Federation 
Flexible Routing 
40
High Available RabbitMQ 
41 
[ 
{kernel, [ 
{inet_dist_listen_min, 41055}, 
{inet_dist_listen_max, 41055}, 
{inet_default_connect_options, [{nodelay,true}]}, 
{net_ticktime, 120} 
]} 
,{rabbit, [ 
{tcp_listeners, [{"0.0.0.0", 5672}]}, {log_levels, 
[connection,mirroring,debug,info,error]}, 
{cluster_partition_handling, autoheal}, {cluster_nodes, 
['rabbit@node1', 'rabbit@node2', 'rabbit@node3']}, 
{hipe_compile, true}, {frame_max, 0}, 
{default_vhost, <<"/">>}, {default_user, <<“user">>}, 
{default_pass, <<“********">>}, {default_user_tags, 
[administrator]}, 
{default_permissions, [<<".*">>, <<".*">>, <<".*">>]} ]} ]. 
Rabbitmqctl set_policy ha-all ""  
'{"ha-mode":"all","ha-sync-mode":"automatic"}’
Thank you! 
Q&A 
Copyright © 2014 Symantec Corporation. All rights reserved. Symantec and the Symantec Logo are trademarks or registered trademarks of Symantec Corporation or its 
affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. 
This document is provided for informational purposes only and is not intended as advertising. All warranties relating to the information in this document, either express or 
implied, are disclaimed to the maximum extent allowed by law. The information in this document is subject to change without notice. 
42 
@gabb1 
@raj_geda

More Related Content

What's hot

Andy Kennedy - Scottish VMUG April 2016
Andy Kennedy - Scottish VMUG April 2016Andy Kennedy - Scottish VMUG April 2016
Andy Kennedy - Scottish VMUG April 2016Andy Kennedy
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platformsPaul Czarkowski
 
Modular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack NeutronModular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack Neutronmestery
 
Améliorer OpenStack avec les technologies Intel
Améliorer OpenStack avec les technologies IntelAméliorer OpenStack avec les technologies Intel
Améliorer OpenStack avec les technologies IntelOdinot Stanislas
 
Open shift enterprise 3.1 paas on kubernetes
Open shift enterprise 3.1   paas on kubernetesOpen shift enterprise 3.1   paas on kubernetes
Open shift enterprise 3.1 paas on kubernetesSamuel Terburg
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX, Inc.
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Patrick Chanezon
 
Cisco UCS for OpenStack Cloud
Cisco UCS for OpenStack CloudCisco UCS for OpenStack Cloud
Cisco UCS for OpenStack CloudLora O'Haver
 
Openstack Architecture
Openstack ArchitectureOpenstack Architecture
Openstack ArchitectureSrbIT
 
Cloud orchestration major tools comparision
Cloud orchestration major tools comparisionCloud orchestration major tools comparision
Cloud orchestration major tools comparisionRavi Kiran
 
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...NGINX, Inc.
 
TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?smalltown
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016Patrick Chanezon
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker, Inc.
 
DCSF 19 Data Center Networking with Containers
DCSF 19 Data Center Networking with ContainersDCSF 19 Data Center Networking with Containers
DCSF 19 Data Center Networking with ContainersDocker, Inc.
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin Kuberton
 
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6David Pasek
 
VMworld 2016: Advanced Network Services with NSX
VMworld 2016: Advanced Network Services with NSXVMworld 2016: Advanced Network Services with NSX
VMworld 2016: Advanced Network Services with NSXVMworld
 
Openstack_administration
Openstack_administrationOpenstack_administration
Openstack_administrationAshish Sharma
 

What's hot (20)

Andy Kennedy - Scottish VMUG April 2016
Andy Kennedy - Scottish VMUG April 2016Andy Kennedy - Scottish VMUG April 2016
Andy Kennedy - Scottish VMUG April 2016
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platforms
 
Modular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack NeutronModular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack Neutron
 
Améliorer OpenStack avec les technologies Intel
Améliorer OpenStack avec les technologies IntelAméliorer OpenStack avec les technologies Intel
Améliorer OpenStack avec les technologies Intel
 
Open shift enterprise 3.1 paas on kubernetes
Open shift enterprise 3.1   paas on kubernetesOpen shift enterprise 3.1   paas on kubernetes
Open shift enterprise 3.1 paas on kubernetes
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
 
Cisco UCS for OpenStack Cloud
Cisco UCS for OpenStack CloudCisco UCS for OpenStack Cloud
Cisco UCS for OpenStack Cloud
 
Openstack Architecture
Openstack ArchitectureOpenstack Architecture
Openstack Architecture
 
Cloud orchestration major tools comparision
Cloud orchestration major tools comparisionCloud orchestration major tools comparision
Cloud orchestration major tools comparision
 
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
 
TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup Slides
 
DCSF 19 Data Center Networking with Containers
DCSF 19 Data Center Networking with ContainersDCSF 19 Data Center Networking with Containers
DCSF 19 Data Center Networking with Containers
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin
 
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
 
VMworld 2016: Advanced Network Services with NSX
VMworld 2016: Advanced Network Services with NSXVMworld 2016: Advanced Network Services with NSX
VMworld 2016: Advanced Network Services with NSX
 
Openstack_administration
Openstack_administrationOpenstack_administration
Openstack_administration
 

Similar to Cloud Platform Symantec Meetup Nov 2014

Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3Juan Herrera Utande
 
Accelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red HatAccelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red HatNetApp
 
Intel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-finalIntel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-finalDeepak Mane
 
Robust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumRobust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumWeaveworks
 
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteCloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteOWASP Kyiv
 
Private Cloud with Open Stack, Docker
Private Cloud with Open Stack, DockerPrivate Cloud with Open Stack, Docker
Private Cloud with Open Stack, DockerDavinder Kohli
 
AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementAzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementSergii Kryshtop
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...Oleg Shalygin
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerBob Killen
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Modern CI/CD in the microservices world with Kubernetes
Modern CI/CD in the microservices world with KubernetesModern CI/CD in the microservices world with Kubernetes
Modern CI/CD in the microservices world with KubernetesMikalai Alimenkou
 
Kovair DevOps - Overview Presentation
Kovair DevOps - Overview PresentationKovair DevOps - Overview Presentation
Kovair DevOps - Overview PresentationKovair
 
Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfAlex446314
 
Cozystack: Free PaaS platform and framework for building clouds
Cozystack: Free PaaS platform and framework for building cloudsCozystack: Free PaaS platform and framework for building clouds
Cozystack: Free PaaS platform and framework for building cloudsAndrei Kvapil
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source Nitesh Jadhav
 
Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!All Things Open
 
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherOSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherNETWAYS
 
OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...
OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...
OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...NETWAYS
 

Similar to Cloud Platform Symantec Meetup Nov 2014 (20)

Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3
 
Accelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red HatAccelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
 
Intel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-finalIntel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-final
 
Robust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumRobust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and Cilium
 
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteCloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
 
Private Cloud with Open Stack, Docker
Private Cloud with Open Stack, DockerPrivate Cloud with Open Stack, Docker
Private Cloud with Open Stack, Docker
 
Fiware cloud developers week brussels
Fiware cloud developers week brusselsFiware cloud developers week brussels
Fiware cloud developers week brussels
 
AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementAzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release Management
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and Docker
 
Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Modern CI/CD in the microservices world with Kubernetes
Modern CI/CD in the microservices world with KubernetesModern CI/CD in the microservices world with Kubernetes
Modern CI/CD in the microservices world with Kubernetes
 
Kovair DevOps - Overview Presentation
Kovair DevOps - Overview PresentationKovair DevOps - Overview Presentation
Kovair DevOps - Overview Presentation
 
Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdf
 
Cozystack: Free PaaS platform and framework for building clouds
Cozystack: Free PaaS platform and framework for building cloudsCozystack: Free PaaS platform and framework for building clouds
Cozystack: Free PaaS platform and framework for building clouds
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
 
Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!
 
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherOSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
 
OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...
OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...
OSMC 2023 | Newest developments in Checkmk Raw – the open-source monitoring s...
 

More from Miguel Zuniga

Implementing open source as your business model
Implementing open source as your business modelImplementing open source as your business model
Implementing open source as your business modelMiguel Zuniga
 
Openstack components as containerized microservices
Openstack components as containerized microservicesOpenstack components as containerized microservices
Openstack components as containerized microservicesMiguel Zuniga
 
Creating hybrid cloud openstack + public cloud
Creating hybrid cloud   openstack + public cloudCreating hybrid cloud   openstack + public cloud
Creating hybrid cloud openstack + public cloudMiguel Zuniga
 
Platform as a Service with Kubernetes and Mesos
Platform as a Service with Kubernetes and Mesos Platform as a Service with Kubernetes and Mesos
Platform as a Service with Kubernetes and Mesos Miguel Zuniga
 
Continuous Integration with Puppet
Continuous Integration with PuppetContinuous Integration with Puppet
Continuous Integration with PuppetMiguel Zuniga
 
Managing and Scaling Puppet - PuppetConf 2014
Managing and Scaling Puppet - PuppetConf 2014Managing and Scaling Puppet - PuppetConf 2014
Managing and Scaling Puppet - PuppetConf 2014Miguel Zuniga
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Private cloud cloud-phoenix-april-2014
Private cloud cloud-phoenix-april-2014Private cloud cloud-phoenix-april-2014
Private cloud cloud-phoenix-april-2014Miguel Zuniga
 
Containers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March MeetupContainers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March MeetupMiguel Zuniga
 
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014Miguel Zuniga
 
Open escalar presentation
Open escalar presentationOpen escalar presentation
Open escalar presentationMiguel Zuniga
 

More from Miguel Zuniga (11)

Implementing open source as your business model
Implementing open source as your business modelImplementing open source as your business model
Implementing open source as your business model
 
Openstack components as containerized microservices
Openstack components as containerized microservicesOpenstack components as containerized microservices
Openstack components as containerized microservices
 
Creating hybrid cloud openstack + public cloud
Creating hybrid cloud   openstack + public cloudCreating hybrid cloud   openstack + public cloud
Creating hybrid cloud openstack + public cloud
 
Platform as a Service with Kubernetes and Mesos
Platform as a Service with Kubernetes and Mesos Platform as a Service with Kubernetes and Mesos
Platform as a Service with Kubernetes and Mesos
 
Continuous Integration with Puppet
Continuous Integration with PuppetContinuous Integration with Puppet
Continuous Integration with Puppet
 
Managing and Scaling Puppet - PuppetConf 2014
Managing and Scaling Puppet - PuppetConf 2014Managing and Scaling Puppet - PuppetConf 2014
Managing and Scaling Puppet - PuppetConf 2014
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Private cloud cloud-phoenix-april-2014
Private cloud cloud-phoenix-april-2014Private cloud cloud-phoenix-april-2014
Private cloud cloud-phoenix-april-2014
 
Containers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March MeetupContainers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March Meetup
 
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
 
Open escalar presentation
Open escalar presentationOpen escalar presentation
Open escalar presentation
 

Recently uploaded

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 

Recently uploaded (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 

Cloud Platform Symantec Meetup Nov 2014

  • 1. Cloud Platform at Symantec Meetup
  • 2. Agenda 2 6:30 pm - Continuous Integration and Deployment Using OpenStack. Miguel Zuniga 7:15 pm - Tuning OpenStack for Availability and Performance in Large Production Deployments. Raj Geda & Gabriel Capisizu
  • 3. Continuous Integration and Deployment Using OpenStack Miguel Zuniga Cloud Platform Engineering
  • 4. Agenda • Continuous CI/CD Workflow – From beginning to end • Replicating code changes to multiple repositories • The gating system – Review, Approval, Build, Integration and Release • Packages, Artifacts • Distribution of Packages • Infrastructure as Code • Deployment to Production 4
  • 5. Continuous CI / CD Workflow Presentation Identifier Goes Here 5
  • 6. Continuous CI / CD workflow 1. Developer commits change to review system 2. Gating system detects the new commit and instructs the coordinator to execute the job specified in the config file. 3. Coordinator instructs worker to execute specific gate job. 4. Worker downloads the new commit, reads the config file and executes all the instructions. Coordinator reports back to Gating system which allows the commit to move forward or get rejected. 5. Once approved the commit get replicated to some external git server (github, stash, git server). Presentation Identifier Goes Here 6
  • 7. Continuous CI / CD workflow 6. Worker creates the packages of the approved commits and stores them in a package repository 7. Configuration management server downloads the latest config mgmt code. 8. Instruct the clients to make modifications on their state 9. Clients pull new packages from the repositories servers. Presentation Identifier Goes Here 7
  • 8. Replicating Code • Only approved commits get replicated to target destinations. • All other systems pull code from these destinations. • Production packages are created with the code stored here. • Remember your CI system might be in cloud so this is your backup solution. Presentation Identifier Goes Here 8
  • 9. Gating system • Provide one or more gates based on the events emitted by the review system. • Recommended gating: Review Gate -> When user git review a new change Approval Gate -> When user +2 a new change Build Gate -> When user submits for merge an approved change Integration Gate -> When user comments integration on specific change Release Gate -> When user adds a new tag to a specific commit Periodic Gate -> Executed once a day (or more) Presentation Identifier Goes Here 9
  • 10. Gating system • The gating system will also review each of the changes providing a +1, -1, approved or rejected output based on the results from the jobs executed at a specific gate. • Provides an easy API interface to collect metrics, send notifications, create reports and execute jobs based on other triggers. Presentation Identifier Goes Here 10
  • 11. Packages and Artifacts • Create packages only from approved changes which are replicated to the final code destination (github, stash, git server). • Use OS package systems (rpm, debs) • Keep a sane versioning v0.XXXX for development vY.XXX for production • The gating system provides to gates where to build packages, the build gate which can create a package of each commit and the release gate which creates a package of a specific tag, use the late one for production packages. Presentation Identifier Goes Here 11
  • 12. Distribution of Packages • Have a central repository which will be RW to store all the packages. • Replicate packages on all Cloud availability zones, Data Centers, environments. • Use existing tools or at least rsync to move the data around. • All your repository endpoints must be RO. • Use CDN when possible. Presentation Identifier Goes Here 12
  • 13. Infrastructure as Code • Puppet/Chef/Ansible/Whatever • Write your code in a recursive way (or with specific order) to allow deployments with one iteration (only one run). • Your code should go also through the review system. • The config management server should pull the code from the replicated git servers (github, stash, git server). • Make sure your server is pulling code based on the tag releases. • Use a change management window if necessary. Presentation Identifier Goes Here 13
  • 14. Deployment to Production • Deployment will be controlled by the config management server when new code gets pulled from the git repositories. • The clients will download the specific packages based on the config mgmt instructions. • Use orchestration tools if your application needs it. • The trick is in generating a stable and reliable package as well as good configuration management code. Presentation Identifier Goes Here 14
  • 15. Thank you! Q&A Copyright © 2014 Symantec Corporation. All rights reserved. Symantec and the Symantec Logo are trademarks or registered trademarks of Symantec Corporation or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. This document is provided for informational purposes only and is not intended as advertising. All warranties relating to the information in this document, either express or implied, are disclaimed to the maximum extent allowed by law. The information in this document is subject to change without notice. 15 @mikezuniga +miguelzuniga
  • 16. Tuning OpenStack for availability and performance in large production deployments Raj Geda, Gabriel Capisizu Cloud Platform Engineering
  • 17. Agenda • Large scale, High Availability • Infrastructure life cycle • LDAP and Keystone integration • Keystone SSL, PKI Tokens • Nova • KVM • Database • RabbitMQ 17
  • 18. What is a large (scale) production environment? Multiple DC’s Thousands of Hypervisors 10s x thousands of VMs Millions of requests/min to API Endpoints 18
  • 19. High Availability Any control plane service distributed among failure zones Hardware load balancer (HA pair) in front of any service No L2 spanning across availability zones Redundant power Redundant network connectivity 19
  • 20. High Availability – compute node TOR sw managemet sw bond0 1g LACP active/active ipmi/out-of-band 802.1q compute node to distribution to distribution TOR sw 10g eth0 10g eth0 10G Redundant NICs ACTIVE/ACTIVE LACP trunks w/ 802.1q Out of band management/IPMI 20
  • 21. Infrastructure Lifecycle management Bare metal provisioning – Foreman, Cobbler Classification of systems Configuration management – puppet, masterless Orchestration - salt, fab 21
  • 22. Enterprise directories and OpenStack Where are your users ? Why do you need to use an ‘identity management’ with your enterprise directory Active directory or LDAP Why LDAP ? 22
  • 23. Keystone and LDAP Keystone role in OpenStack LDAP for identity, SQL for assignment Read-Only LDAP Use SSL for connecting keystone with LDAP (use ldaps:// rather than ldap:// ) – use a trusted CA, turn verification of certs ON Create proxy user for keystone to bind – set permissions, ACI LDAP capacity – keep an eye on load and performance of the directory server(s) 23
  • 24. End to End encryption and Keystone Understand the flow of data 24
  • 25. Staying on top of your (keystone) security 35357/ssl 5000/ssl apache/mod_wsgi/ mod_ssl keystone self signed cert https://keystone-admin/ https://keystone/ LB VIP LB VIP self signed cert apache/mod_wsgi/ mod_ssl 35357/ssl 5000/ssl self signed cert self signed cert apache/mod_wsgi/ mod_ssl keystone apache/mod_wsgi/ mod_ssl client ssl 35357/ssl 5000/ssl self signed cert self signed cert apache/mod_wsgi/ mod_ssl keystone apache/mod_wsgi/ mod_ssl signed cert client ssl server ssl signed cert server ssl 25 Certificates trusted CA signed vs self signed Front keystone servers with apache/mod_wsgi or nginx/uwsgi Load balancers in the front of your keystone servers, custom checks to Validate services chmod 640 keystone.conf
  • 26. Keystone and PKI tokens Why not just use UUID tokens? Why PKI tokens are better improved performance – no calls to keystone for validation first get the public key (certificate) cache it, subsequent calls use it to validate tokens keystone server encodes, signs token client validates expiration, revocation list, signature, decodes token 26
  • 27. Issues with PKI tokens Token size Catalog size No catalog filtering Make sure the components that use keystone support large tokens Raise the default to accommodate large tokens(MAX_HEADER_LINE = 32768) apache – mod_wsig python eventlet – wsgi.py Use – nocatalog 27
  • 29. 29 <Apache-nova.conf > Listen 8774 <VirtualHost *:8774> WSGIScriptAlias / /opt/wsgi/nova-api.wsgi WSGIDaemonProcess nova-api user=nova group=nogroup processes=3 threads=10 python-path=/usr/share/pyshared/nova WSGIProcessGroup nova-api # SSL Config SSLEngine on SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key ErrorLog /var/log/nova/nova-api.log LogLevel info CustomLog /var/log/nova/nova-api.log combined </VirtualHost> < /opt/wsgi/nova-api.wsgi> import os import sys from nova import log from nova import utils from paste.deploy.loadwsgi import loadapp sys.path.insert(0,(os.path.dirname(os.path.realpath(__file__)))) sys.stdout = sys.stderr # Read nova configuration options and pick the default configuration file # Typically /etc/nova/nova.conf flags = utils.default_flagfile() # Import nova gflags information for ease of use from nova import flags flags.FLAGS(sys.argv) log.setup() # Location of the paste-deploy configuration file config = '/etc/nova/api-paste.ini' # Application that mod_wsgi will be deploying application = loadapp('config:%s' % config, name = ’nova-api') Tuning of Nova api # Raise the default from 8192 to accommodate large tokens eventlet.wsgi.MAX_HEADER_LINE = 32768
  • 30. Nova conductor User Nova API AMQP Queue database nova-scheduler nova-compute nova-conductor SQL 30 Nova API AMQP SQL Queue database nova-scheduler nova-compute User to disable nova conductor use:
  • 31. Tuning KVM 31 http://www.linux-kvm.org/page/Main_Page
  • 32. KSM (Kernel SamePage Merging) KSM lets the hypervisor system share identical memory pages amongst different processes or virtualized guests. KSM is critical to performance if you want to over provision your resources successfully. ksmtuned/ksmd process work the following way: – scans through the memory finding duplicate pages – Merges duplicate page to single page – Map to all virtual machine locations – Set copy on write – Separate page when individual guests write to it. 32
  • 33. THP (Transparent Huge Page) Transparent Hugepages Add to XML configuration for guests: cat /proc/sys/vm/nr_hugepages cat /proc/meminfo | grep Huge echo xxxxx > /proc/sys/vm/nr_hugepages 33 echo always > /sys/kernel/mm/redhat_transparent_hugepage/enabled <memoryBacking> <hugepages> </memoryBacking>
  • 34. Block I/O I/O Scheduler – Deadline VM cache mode/Asynchronous I/O 34
  • 36. High Available MySQL 36 wsrep Galera approach is Data Centric Connect to any node to write No headache for auto increment Replicate the full dataset across all nodes
  • 37. MySQL Config 37 [mysqld_safe] log-error=/var/log/mysqld.log [mysqld] datadir=/mysql_data socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 port=3306 skip-name-resolve max_connection=3000 open-files-limit=65584 #innodb settings innodb_additional_mem_pool_size=24M innodb_log_buffer_size=12M innodb_log_file_size=224M innodb_buffer_pool_size=4G innodb_lock_wait_timeout=50 innodb_thread_concurrency=34 innodb_locks_unsafe_for_binlog=1 innodb_flush_log_at_trx_commit=0 innodb_doublewrite=0 # wsrep binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 wsrep_auto_increment_control=1 wsrep_convert_LOCK_to_trx=1 wsrep_certify_nonPK=1 wsrep_drupal_282555_workaround=0 wsrep_slave_threads=2 wsrep_provider=/usr/lib64/libgalera_smm.so wsrep_sst_method=rsync wsrep_cluster_address=gcomm://node1,node2,node3 wsrep_node_name=node1 wsrep_node_address=xx.yy.zz.aa wsrep_cluster_name=osdb wsrep_sst_auth="sstuser:password"
  • 38. MySQL Cluster Limitations support only InnoDB Primary Key is must commit latency (based on how may nodes in cluster) Doesn’t like huge transactions Deadlock on commit Presentation Identifier Goes Here 38
  • 39. Rabbit ‘MQ’ 39 They used to make cartoons about me and now they are using me in data queues!
  • 40. What can RabbitMQ do for you? Clustering support Highly Available Queues Implements the latest AMQP spec (0.9/1.0) Federation Flexible Routing 40
  • 41. High Available RabbitMQ 41 [ {kernel, [ {inet_dist_listen_min, 41055}, {inet_dist_listen_max, 41055}, {inet_default_connect_options, [{nodelay,true}]}, {net_ticktime, 120} ]} ,{rabbit, [ {tcp_listeners, [{"0.0.0.0", 5672}]}, {log_levels, [connection,mirroring,debug,info,error]}, {cluster_partition_handling, autoheal}, {cluster_nodes, ['rabbit@node1', 'rabbit@node2', 'rabbit@node3']}, {hipe_compile, true}, {frame_max, 0}, {default_vhost, <<"/">>}, {default_user, <<“user">>}, {default_pass, <<“********">>}, {default_user_tags, [administrator]}, {default_permissions, [<<".*">>, <<".*">>, <<".*">>]} ]} ]. Rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}’
  • 42. Thank you! Q&A Copyright © 2014 Symantec Corporation. All rights reserved. Symantec and the Symantec Logo are trademarks or registered trademarks of Symantec Corporation or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. This document is provided for informational purposes only and is not intended as advertising. All warranties relating to the information in this document, either express or implied, are disclaimed to the maximum extent allowed by law. The information in this document is subject to change without notice. 42 @gabb1 @raj_geda