Fuel – czyli jak stworzyć
własną chmurę w ciągu
godziny

PyCon PL, 2013
Łukasz Oleś <loles@mirantis.com>

®
®

http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
PaaS
SaaS
IaaS

NaaS
http://vector-magz.com/symbols/camera-vector-item-1/
G

D

A
T

http://vector-magz.com/objects/cell-phone-clipart-item-3/
http://vector-magz.com/nature/cloud-clipart-item-5/
®

http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
®

http://www.openstack.org/
https://github.com/openstack
Horizon

Swift

Glance

Nova

Keystone

Cinder

Neutron
HAProxy

Controller

Controller

Controller

Galera(mysql)
Corosync/pacemaker

Swift
5-10 węzłów

Swift

Compute

Cinder

...
HAProxy

7
2

Controller

Controller

Controller

Galera(mysql)
Corosync/pacemaker

Swift
5-10 węzłów

Swift

Compute

Cin...
HAProxy

Controller

Controller

43

7
2

Controller

Galera(mysql)
Corosync/pacemaker

Swift
5-10 węzłów

Swift

Compute
...
HAProxy

Controller

Controller

43

7
2

Controller

Galera(mysql)
Corosync/pacemaker

Swift
Swift

1000 węzłów

Compute
...
HAProxy

Controller

Controller

43

7
2

Controller

Galera(mysql)
Corosync/pacemaker

Swift
Swift

1000 węzłów

Compute
...
HAProxy

Controller

Controller

43

7
2

Controller

Galera(mysql)
Corosync/pacemaker

Swift

3
4

1000 węzłów

Compute

...
HAProxy

Controller

Controller

43

7
2

Controller

43000
Galera(mysql)

Corosync/pacemaker

Swift

3
4

1000 węzłów

Co...
®

http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
HAProxy

Controller

Controller

43

7
2

Controller

43000
Galera(mysql)

Corosync/pacemaker

Swift

3
4

1000 węzłów

Co...
®
®

http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
®
®
®
®

puppetmaster

slave

slave

slave
Przykładowy manifest 1
https://forge.puppetlabs.com/puppetlabs/ntp

'Debian': {
$config
= '/etc/ntp.conf'
$package_name = ...
Przykładowy manifest 2
https://forge.puppetlabs.com/puppetlabs/ntp

file { $config:
ensure => file,
owner => 0,
group => 0...
Przykładowy szablon
https://forge.puppetlabs.com/puppetlabs/ntp

<% [@servers].flatten.each do |server| -%>
server <%= ser...
®

puppetmaster

slave

slave

slave
®

PXE, DHCP, TFTP
®

DHCP request

DHCP request

Slave

DHCP request
DHCP
server

TFTP server
IP

Slave

®
DHCP
server

TFTP
server

Slave

®
DHCP
server

TFTP
server
img

Slave

®
DHCP
server

TFTP
server

DNS
server

http://www.cobblerd.org/
https://github.com/cobbler/cobbler

®
HAProxy

Controller

Controller

Controller

Galera(mysql)
Corosync/pacemaker

Swift
5-10 węzłów

Swift

Compute

Cinder

...
®
®

https://fuel.mirantis.com/
https://github.com/stackforge/fuel-web
®
DHCP
server

TFTP
server
img

Slave

Fuel server IP:
10.20.0.2

®
DHCP
server

TFTP
server

Slave

Fuel

POST /api/nodes

®
®
®
http://jquery.com/
http://backbonejs.org/
http://getbootstrap.com/2.3.2/
http://lodash.com/

http://webpy.org/
http://www....
DEMO
PL
Pytania
®

®

?

Łukasz Oleś <loles@mirantis.com>
@lukas_oles
Dzię kuję
®

Łukasz Oleś <loles@mirantis.com>
@lukas_oles
Fuel - czyli jak stworzyć chmurę w ciągu godziny
Fuel - czyli jak stworzyć chmurę w ciągu godziny
Fuel - czyli jak stworzyć chmurę w ciągu godziny
Upcoming SlideShare
Loading in...5
×

Fuel - czyli jak stworzyć chmurę w ciągu godziny

642

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
642
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • {"38":"Trzeba to spiąć wszystko razem → python\nFuel\n","27":"Przykładowy manifest\n","16":"I więcej\n","5":"„Wszyscy mówimy chmuuura”\n","44":"Netboot pxe\n","33":"Netboot pxe\n","22":"Takiego Boba\nNEXT: Można zapytać\n","11":"Architektura:\nKontroler: horizon, nova, glance, quantum\n","39":"Netboot pxe\n","28":"Przykładowy szablon\n","17":"43k plikow\n","6":"Backup –&gt; do cmhury google\nTwitter → chmura\nDropbox –&gt; tez do chmury → Amazon\n","34":"Netboot pxe\n","23":"Można, zapytać...\nAle jest nadzieja, kilka elementów\n","12":"27 plików konfiguracyjnych\n","1":"1\n2 Budapeszt, Amsterdam, Hong kong, ja Szczyrk\n3\n4\n","40":"Tftp przesyla jeszcze adres serwera\n","29":"Działanie:\nSlave: skąd się wziął, jak się zainstalował?\nSlave: Gdzie jest puppetmaster\nMaster: co im wysłać?\npierwsze pytanie, skąd się wziął slave\nKolega który recznie przeinstalowuje windowsa.NEXT-&gt; tak to można zrobić\n","18":"I bob ma się tym zająć?\n","7":"Bob ma zbudować chmurę z Openstacka\n","46":"Netboot pxe\n","35":"Cobbler\n- zarzadza wszystkim\nNEXT:\nMamy węzły\nWiemy jak je skonfigurować\nWiemy co chcemy osiągnąć -&gt;\n","24":"Puppet\nZacznę od wad → ruby\n- bez wdawania się w szczegóły\n","13":"43 procesy\n","2":"Oto Bob - mirantis\nBob dostał zadanie → zbudować chmurę\n1000 serwerów\n","41":"Netboot pxe\n","30":"Netboot pxe\nBob podpiął serwer do sieci.\n","19":"Tym?\n","8":"Open – opensource → licencja Apache 2.0\nCzwartek o 20: „I see OpenStack in your future!!”\nLinki!!!\nNEXT: To tylko nazwa głównego projektu\nWiele części\n","36":"Wczesniejsze pytanie:\nSkąd puppet master wie który węzeł jak ma skonfigurować?\nNEXT → Python!\n","25":"Opis architektury\nSlave&apos;y odpytuja mastera\n","14":"9 plikow konfiguracyjnych\n7 procesówj\n","3":"Co to jest chmura?\nSkupisko pary wodnyj\nNEXT: techniczna definicja\n","42":"Netboot pxe\n","31":"Netboot pxe\n","20":"What the fuck?\nProsta droga do...\n","9":"Podstawowe elementy:\n- Horizon – web u → django, centrum sterowaniai\n- nova – zarzadzanie VM\n- neutron/quantum siec\n- keystone – uzytkownicy i prawa\n- swift obiekty → konkurencja dla dropboxa\nCinder → block storage\nGlance –&gt; image storage → uzywa swifta\nNEXT: to tylko projektty → \\\nrozrysowanie zaleznosci → trudniej\n","37":"Trzeba to spiąć wszystko razem → python\nRejestracja - nailgun\n","26":"Przykładowy CONFIG\n","15":"Jeszcze więcejj\n","4":"Co to jest chmura?\nBrak definicji\nRóżne rodzaje\nPubliczne - prywatne\nMy → iaas\nNEXT: użyjmy chmury\n","43":"Netboot pxe\n","32":"Netboot pxe\n","21":"Bob szybko zamieni się w:\n","10":"Kazdy projekt → Kilka procesow\nWiele serwerów\n-&gt;Komunikacja bezpośrednio z bazą\n-&gt;Rabbitmq\nTylko Zależność między procesami\n"}
  • Fuel - czyli jak stworzyć chmurę w ciągu godziny

    1. 1. Fuel – czyli jak stworzyć własną chmurę w ciągu godziny PyCon PL, 2013 Łukasz Oleś <loles@mirantis.com> ®
    2. 2. ® http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
    3. 3. PaaS SaaS IaaS NaaS
    4. 4. http://vector-magz.com/symbols/camera-vector-item-1/
    5. 5. G D A T http://vector-magz.com/objects/cell-phone-clipart-item-3/ http://vector-magz.com/nature/cloud-clipart-item-5/
    6. 6. ® http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
    7. 7. ® http://www.openstack.org/ https://github.com/openstack
    8. 8. Horizon Swift Glance Nova Keystone Cinder Neutron
    9. 9. HAProxy Controller Controller Controller Galera(mysql) Corosync/pacemaker Swift 5-10 węzłów Swift Compute Cinder 1000 węzłów Compute 1-2 węzły Cinder
    10. 10. HAProxy 7 2 Controller Controller Controller Galera(mysql) Corosync/pacemaker Swift 5-10 węzłów Swift Compute Cinder 1000 węzłów Compute 1-2 węzły Cinder
    11. 11. HAProxy Controller Controller 43 7 2 Controller Galera(mysql) Corosync/pacemaker Swift 5-10 węzłów Swift Compute Cinder 1000 węzłów Compute 1-2 węzły Cinder
    12. 12. HAProxy Controller Controller 43 7 2 Controller Galera(mysql) Corosync/pacemaker Swift Swift 1000 węzłów Compute Cinder 9 5-10 węzłów Compute 1-2 węzły 7 Cinder
    13. 13. HAProxy Controller Controller 43 7 2 Controller Galera(mysql) Corosync/pacemaker Swift Swift 1000 węzłów Compute Cinder 9 43 7 5-10 węzłów Compute 1-2 węzły 7 Cinder
    14. 14. HAProxy Controller Controller 43 7 2 Controller Galera(mysql) Corosync/pacemaker Swift 3 4 1000 węzłów Compute Cinder 2 Swift 10 43 7 5-10 węzłów Compute 1-2 węzły 2 Cinder
    15. 15. HAProxy Controller Controller 43 7 2 Controller 43000 Galera(mysql) Corosync/pacemaker Swift 3 4 1000 węzłów Compute Cinder 2 Swift 10 43 7 5-10 węzłów Compute 1-2 węzły 2 Cinder
    16. 16. ® http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
    17. 17. HAProxy Controller Controller 43 7 2 Controller 43000 Galera(mysql) Corosync/pacemaker Swift 3 4 1000 węzłów Compute Cinder 2 Swift 10 43 7 5-10 węzłów Compute 1-2 węzły 2 Cinder
    18. 18. ®
    19. 19. ® http://www.everystockphoto.com/photo.php?imageId=2964735&searchId=27dee4501f5da0e12be7ef16eb743e56&npos=60
    20. 20. ®
    21. 21. ®
    22. 22. ®
    23. 23. ® puppetmaster slave slave slave
    24. 24. Przykładowy manifest 1 https://forge.puppetlabs.com/puppetlabs/ntp 'Debian': { $config = '/etc/ntp.conf' $package_name = [ 'ntp' ] $service_name = 'ntp' $servers =[ '0.debian.pool.ntp.org iburst', '1.debian.pool.ntp.org iburst', '2.debian.pool.ntp.org iburst', '3.debian.pool.ntp.org iburst', ] } ®
    25. 25. Przykładowy manifest 2 https://forge.puppetlabs.com/puppetlabs/ntp file { $config: ensure => file, owner => 0, group => 0, mode => '0644', content => template($config_template), } ®
    26. 26. Przykładowy szablon https://forge.puppetlabs.com/puppetlabs/ntp <% [@servers].flatten.each do |server| -%> server <%= server %> <% end -%> ®
    27. 27. ® puppetmaster slave slave slave
    28. 28. ® PXE, DHCP, TFTP
    29. 29. ® DHCP request DHCP request Slave DHCP request
    30. 30. DHCP server TFTP server IP Slave ®
    31. 31. DHCP server TFTP server Slave ®
    32. 32. DHCP server TFTP server img Slave ®
    33. 33. DHCP server TFTP server DNS server http://www.cobblerd.org/ https://github.com/cobbler/cobbler ®
    34. 34. HAProxy Controller Controller Controller Galera(mysql) Corosync/pacemaker Swift 5-10 węzłów Swift Compute Cinder 1000 węzłów Compute 1-2 węzły Cinder
    35. 35. ®
    36. 36. ® https://fuel.mirantis.com/ https://github.com/stackforge/fuel-web
    37. 37. ®
    38. 38. DHCP server TFTP server img Slave Fuel server IP: 10.20.0.2 ®
    39. 39. DHCP server TFTP server Slave Fuel POST /api/nodes ®
    40. 40. ®
    41. 41. ®
    42. 42. http://jquery.com/ http://backbonejs.org/ http://getbootstrap.com/2.3.2/ http://lodash.com/ http://webpy.org/ http://www.sqlalchemy.org/ http://kombu.readthedocs.org/en/latest/ http://nose.readthedocs.org/en/latest/ http://www.voidspace.org.uk/python/mock/ ®
    43. 43. DEMO
    44. 44. PL
    45. 45. Pytania ® ® ? Łukasz Oleś <loles@mirantis.com> @lukas_oles
    46. 46. Dzię kuję ® Łukasz Oleś <loles@mirantis.com> @lukas_oles
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×