Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Orchestration and CI/CD in the OpenStack Cloud

1,255 views

Published on

This project shows how to leverage CI/CD pipelines to deploy and rollback applications in the OpenStack Cloud. Best-practices allow to automate tasks and achieve high-degree of repeatability and robustness.

As part of CI/CD pipelines, Jenkins and Packer create containers, and deploy to development, staging and production.
Ansible is used to both create images with Packer, and orchestrate environments.

Deep knowledge of deployment and development workflow allows to continuously improve and make Automation run smoothly.

Published in: Internet
  • If you have any problems with writing, feel free to ask our writers for help! The team of Paper Help ⇒ www.HelpWriting.net ⇐ is ready to help with any kind of academic writing!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Orchestration and CI/CD in the OpenStack Cloud

  1. 1. Orchestration and CI/CD in the OpenStack Cloud by Simone Soldateschi @soldasimo 20150731
  2. 2. Who I am ● Senior DevOps Engineer, Sydney ● Lead DevOps Team at Rackspace AU ● ~15 years of experience as ○ Software Eng ○ Systems Eng ○ Been DevOps'in for the last 5-ish years Simone Soldateschi
  3. 3. ● Task Automation ○ Chef, Ansible ○ Heat ○ Python ● Cloud (OpenStack) ○ dev → live ○ Autoscale What do I do?
  4. 4. Outline ● pipeline to build container ● full stack ● orchestration ● service discovery ● pipeline to go live
  5. 5. ● Develop App ● Test ● UAT/QC ● Provision ● Deploy Development Workflow
  6. 6. Why
  7. 7. Desired State «Write code to tell systems how to manage themselves»
  8. 8. Trivial Issue
  9. 9. $ cat attributes/default.rb … default[‘users’] = “foo” Trivial Issue foo
  10. 10. $ cat attributes/default.rb … default[‘users’] = “foo bar” Trivial Issue foo bar
  11. 11. Causes and issues ● Complexity ○ systems, networking ○ development workflow ● Idempotency
  12. 12. ● Simple ● Repeatable ● Versioned Things should be
  13. 13. How to solve it // aim for simplicity
  14. 14. HA Cluster
  15. 15. $ curl https://discovery.etcd.io/new https://discovery.etcd.io/b42a0e4720728d4fa9ecf06a68102294
  16. 16. : 1 process
  17. 17. Build container ... RUN apt-get -qqy install git nodejs npm RUN ln -s /usr/bin/nodejs /usr/bin/node # Install reveal.js WORKDIR /opt RUN git clone https://github.com/hakimel/reveal.js.git WORKDIR /opt/reveal.js RUN npm install -g grunt-cli RUN npm install RUN sed -i "s/port: port/port: port,nttttthostname: ''/g" Gruntfile.js ... EXPOSE 8000 CMD [ "grunt", "serve" ] // suboptimal solution
  18. 18. JSON + Playbooks
  19. 19. Repository Public Hub Private Registry
  20. 20. Full Stack Hardware OpenStack CoreOs Cluster Containers
  21. 21. Provision Bare-metal server OpenStack CoreOs CoreOsCoreOs Act of Faith OSAD Vagrant, Heat !!!
  22. 22. Provision CoreOS Cluster
  23. 23. Compose lb: image: haproxy db: image: mysql web: image: httpd ports: - "80:80" volumes: - ./vhosts:/var/www/vhosts links: - lb - db
  24. 24. Service Discovery
  25. 25. web: «Where is DB server for this environment ?» ha: «Where are web nodes for this environment ?»
  26. 26. Register Web Container CoreOs Cluster Etcd while true; do etcdctl set /announce/services/apache80 ${COREOS_PUBLIC_IPV4}:80 --ttl 60 sleep 45 done
  27. 27. Discover Web Container CoreOs Cluster Etcd while true; do etcdctl get /announce/services/apache80 # reconfigure HA Proxy sleep 60 done
  28. 28. CI/CD
  29. 29. CI
  30. 30. Pub Hub Pvt Reg Dev UAT/STG LIVE CD
  31. 31. Lesson Learned ● CoreOS for HA Cluster it’s easy! ● Pipeline to build container repeatable ● let services run as desired it’s easy! ● service discovery it’s easy! ● CI/CD pipelines repeatable «All Configuration Management Systems suck, Ansible just sucks less»
  32. 32. Simone Soldateschi

×