When Infrastructure becomes so reliable it's boring, apps can shine. Here's how to learn more about configuration management and application deployment for OpenStack clouds like Cisco Metacloud. Delivered at the OpenStack Summit in Barcelona, October 2016.
3. Find Out
What tools work well
for app deployment?
How do you practice
deploying on
OpenStack?
What did we learn?
Demos!
Get the deck:
slideshare.net/annegentle
Ask for us at Cisco Stand A25
5. Common use cases for applications on OpenStack
web apps, mobile apps
environments
CI/CD pipeline
ecommerce
entertainment/media
serving content (think: ad network)
big data
you name itFlickr: rlopez117
6. Configuration Management
Many options:
● OpenStack-inclusive:
Orchestration, Application
Catalog
● Ecosystem-only:
Ansible, Chef, Puppet, cloud-init
● Combinations:
Orchestration template that
runs Ansible or Puppet
configurations
Flickr: mingusmutter
7. Orchestration templates
in combination with CM
An Orchestration (heat) template can automate networking so that floating
IPs and public network access is available at runtime of server launch.
This combination means you truly deploy with heat. 🔥
In the template, pass parameters into the application itself at launch
(Minecraft creative mode for example).
Heat can control your software deployments with liberty for deployment of
your app (we had been waiting a while for this). 🗓
8. Containers
Where do containers on
OpenStack fit into the
application deployment use
case?
Docker resource in OpenStack
Orchestration; do cloud
providers offer it?
Docker is easy to use locally;
container orchestration that
someone else runs is even
better.
Flickr: stevensnodgrass
9. How to: practice deployment on OpenStack
1.Find a cloud that will give
you credentials.
2.Find services you want to
install.
3.Find heat templates.
4.Find ansible-galaxy
solutions.
5.Play around!
6.Test test test, sleep, test.Flickr: dharder9475
16. Who am I?
Am I admin or user?
Am I cloud or cloud-user?
Flickr: blakebolinger
17. Everything is replaced with a tiny shell script
Find out how little you know
about Linux administration
and commands (eek!).
Find out what a terrible typist
you are: m1.smell
Find out how long it takes to
have SSH access while
debugging too much at once:
cloud-init, ansible, heat, oh
my.
25. Summary
• Learn tools for deployment
• Use cloud-ready images
• Parameterize everything
• Get the best of both worlds:
infra plus configuration management
• Demos
• Orchestration + Ansible
• cloud-init + Ansible
Hinweis der Redaktion
Slides can be found on slideshare
there is a docker resource in heat - does anyone use it? Have not found many clouds supporting that resource.
It’s not just credentials to the cloud itself, I found. Also find out what the username is for the images you want to use. And since I’m cloning github repos, I needed to upload my github key as a keypair for that remote user. This is also where I found out Trystack didn’t have an Orchestration endpoint.
It’s interesting, there’s not a lot of interesting truly open source software out there. I think that’s why lots of people deploy openstack itself on openstack. It’s true open source. That’s why every infrastructure demo typically is WordPress - multi-tier app everyone knows.
Spent a ton of time trying to find a magic bullet. It doesn’t really exist for icehouse/liberty era clouds that we have access to.
TryStack doesn’t support Orchestration. RegionOne error
Found out the neutron CLI tool gives better output than the openstack CLI tool, and sometimes you have to use nova CLI
Found out your clouds don’t have the resources you want for Orchestration, such as software config and software deploy, on Icehouse clouds
. os_collect_config... Etc weren’t in some cloud images. Murano looks awesome! But none of our cloud providers have it installed.
Set up your own so you know what traffic is in and out with confidence.
For easy, dev environments, Docker pre-built images take a lot less time to test with.
Find out you’re admin on one cloud, user on another. And that makes for really long floating IP lists when you use the OpenStack CLI.
Plus, you have to know the image’s remote OS username if you’re using your public key to clone git repos.
I was surprised that all templates come down to bash scripting. I was also surprised at how hard this is.
Prerequisites: 1. Must have public key uploaded: openstack keypair create --public-key ~/.ssh/id_rsa.pub 2. Must have private network created with router to public network interface created: neutron router-gateway-set doc-router public 3. Must have a port associated with a floating IP for the subnet carved out of the private network. 3.5 Must have a floating IP allocated: openstack ip floating create public 4. Must have correct cloud user name for remote images in the ansible playbook files and then ensure that username is in the ansible-jekyll branch the cloud-init is cloning. On Trystack:
openstack server create \
--image "Ubuntu14.04" \
--flavor m1.small \
--key-name pub-key \
--security-group default \
--nic net-id=doc-test \
--user-data ~/src/deploying-apps/cloud-init-jekyll-trystack.txt \
--wait \
jekyll-staging