Webinar Recap: Docker for Windows Server 2016

Last week, we held our first webinar on “ for Windows Server 2016” to a record number of attendees, showcasing the most exciting new Windows Server 2016 feature &; containers powered by Commercially Supported Docker Engine.
Docker CS Engine and containers are now available natively on Windows and supported by Microsoft with Docker’s Commercially Supported (CS) Engine included in Windows Server 2016.Now developers and IT pros can begin the same transformation for Windows-based apps and infrastructure to reap the benefits they’ve seen with Docker for Linux: enhanced security, agility, and improved portability and freedom to run applications on bare metal, virtual or cloud environments.
Watch the on-demand webinar to learn more about the technical innovations that went into making Docker containers run natively on Windows and how to get started.
Webinar: Docker for Windows Server 2016

Here are just a few of the most frequently asked questions from the session.  We’re still sorting through the rest and will post them in a follow up blog.
Q: How do I get started?
A: Docker and Microsoft have worked to make getting started simple, we have some great resources to get you started whether you&;re a developer or an IT pro:

Complete the Docker for Windows Containers Lab on GitHub
Read the blog: Build And Run Your First Docker Windows Server Container
View the images in Docker Hub that Microsoft has made available to the community to start building Windows containers: https://hub.docker.com/r/microsoft/
Get started converting existing Windows applications to Docker containers:

Read the blog: Image2Docker: A New Tool For Prototyping Windows VM Conversions
Register for the webinar on October 25th at 10AM PST &8211; Containerize Windows workloads with Image2Docker Tool

Q: How is Docker for Windows Server 2016 licensed?
A: Docker CS Engine comes included at no additional cost with Windows Server 2016 Datacenter, Standard, and Essentials editions with support provided by Microsoft and backed by Docker. Support is provided in accordance with the selected Windows Server 2016 support contract with available SLAs and hotfixes and full support for Docker APIs.
Q: Is there a specific Windows release that supports Docker for development?
A: You can get started using Windows 10 Anniversary Edition by installing Docker for Windows (direct link for  public beta channel) or by downloading and installing Windows Server 2016. You can also get started using Azure.
To learn more about how to get started, read our blog: Build And Run Your First Docker Windows Server Container or get started with the Docker for Windows Containers Lab on GitHub.
Q: Windows has a Server Core and Nano Sever base image available. What should I use?
A: Windows Server Core is designed for backwards compatibility. It is a larger base image but has the things you need so your existing applications are able to run in Docker. Nano Server is slimmer and is best suited for new applications that don’t have legacy dependencies.
For more resources:

Learn more: www.docker.com/microsoft
Read the blog: Top 5 Docker Questions From Microsoft Ignite
Learn more about the Docker and Microsoft partnership
Read the blog:  Introducing Docker For Windows Server 2016

Check out the Docker for Windows Server 2016 Webinar video and Q&A Recap w/ @friism Click To Tweet

The post Webinar Recap: Docker for Windows Server 2016 appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

Docker Community Spotlight: Nimret Sandhu

Nimret Sandhu has shown himself to be a key player in the success of the Seattle Meetup group; and now with almost 2000 eager members,  organizing engaging events has become quite the responsibility! On top of his busy work schedule at Dev9, his extracurricular activities and a family life, Nimret took the time to tell us his Docker story, his favorite thing about the Docker Community and also departed with some words of wisdom for anyone just starting a meetup group.
 
Tell us about your first experience with Docker. What drew you to joining as an organizer for the Docker Seattle Meetup group?
My first experience with Docker was when our company, Dev9, looked into partnering with this up-and-coming startup named Docker a couple of years ago. Since I’m a long time *nix user who’s been exposed to solaris zones, bsd jails, etc. in the past, I looked into it, and immediately realized the potential. Once I downloaded and played around with it, I was so blown away by the technology that I started evangelizing it to our clients. I gave a talk on it and volunteered to help out with the Docker Seattle Meetup. I had already been running the Seattle Java User’s Group for a few years, and it was quite natural for me to volunteer to join the Docker Seattle Meetup group since I am quite passionate about technology.
Now that you use Docker, how do you use it and what do you use it for?
In my role as Director of Technology for Dev9, I am expected to delve into technical nuances when necessary while also managing multiple teams for clients in the Seattle area. Accelerated, rapid development is critical. Docker allows me to experiment with various enterprise-related technologies, primarily in the Java and JavaScript space. Projects are typically software development and/or Continuous Delivery leveraging tools such as the JVM, Jenkins, Spring Boot etc.
Docker is extremely easy to work with and provides a convenient way to package a solution together. I’ve found it to be incredibly helpful in accelerating my speed of development.
What are some aspects you love about organizing Docker Meetup events? 
I love the energy and diversity within the Docker community. People really have an interest in this tech and the domain. When people take the time to show up, it makes a big difference. We always have a great turnout and people are very engaged.
What I love about organizing the events is that we have such a wide variety of presentations. A mix from vendors, companies who use the technology, or people who are playing around with it for their own needs. It’s a great forum to exchange ideas, network and even find the next opportunity.
What advice would you give to a new organizer that just started their Docker Meetup group?

Start small, but start. The journey of a thousand miles begins with a single step.
Get the word out. Put info on community calendars (i.e. WTIA, Geekwire) and applicable places that people read. You can even mention this event at another meet-up. Look into mailing lists for start-ups or small organizations.
Coordinate with people who run other meetups to leverage synergies.
Ask for volunteers and companies to help.
Seek sponsorships &; many local businesses and companies are interested in hosting, providing food or being involved in other ways.
Attend other meetups to gain tips and thoughts from the organizers. Network with them on-going.

What do you do when you are not organizing meetup events?
As the Director of Technology for Dev9, I lead teams of software developers and am responsible for the projects we have in the Seattle area. Most of the projects are server-side, client-side and mobile. I help assemble teams, assist business development efforts, conduct up-front assessments for clients, hire and retain staff, and manage projects to ensure customer satisfaction and best practices in modern software development techniques. I am also the chair of the Seattle Java Users Group (SeaJUG), and have been for the last decade. I am on multiple Advisory Boards with the University of Washington Professional and Continuous Education program and help set direction and content in technology, ensuring that the programs stay up-to-date. Most importantly, I’m a father to my two lovely daughters and enjoy family time in general.
Take look at my Geek of the Week feature for more info!
Motto or personal mantra?
Work hard, play hard.

Huge shout out to Nirmet Sandhu and all docker meetup organizers for their contributions! Click To Tweet

The post Docker Community Spotlight: Nimret Sandhu appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

Docker Weekly Roundup | October 9, 2016

 

It’s time for your weekly ! Get caught up on the top news including; expansion into China through a commercial partnership with Alibaba Cloud, announcement of DockerCon 2017, and information on the upcoming Global Mentor Week. As we begin a new week, let’s recap the top five most-read stories of the week of October 9, 2016:

Alibaba Cloud Partnership Docker expands into China market through new partnership with the Alibaba Group, the world&;s largest retail commerce group. The focus of the partnership is to provide a China-based Docker Hub, enable Alibaba to resell Docker’s commercial offerings, and create a “Docker For Alibaba Cloud”.

DockerCon 2017 a three day, conference organized by Docker. This year’s US edition will take place in Austin, TX and continue to build on the success of previous events as it grows and reflects Docker’s established ecosystem and ever-growing community.

Global Mentor Week  is a global event series aimed at providing Docker training to both newcomers and intermediate users. Participants will work through self-paced labs that will be available through an online Learning Management System (LMS). There will be different labs for different skill levels, Developers, Ops, Linux and Windows users.

Docker on Windows &; check out this blog on three tips for setting a solid foundation and improving the Docker on Windows experience from Elton Stoneman.

SQL Server 2016 was publicly available this week and SQL Server 2016 Express Edition in Windows Containers is now available on Docker Hub. In addition, the build scripts will be hosted on the SQL Server Samples GitHub repository and the image can be used in both Windows Server Containers as well as Hyper-V Containers.

Weekly Roundup: Top 5 Docker stories for the week 10/09/16Click To Tweet

The post Docker Weekly Roundup | October 9, 2016 appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

OpenStack Developer Mailing List Digest October 8-14

SuccessBot Says

loquacities: Newton docs are live on docs.openstack.org! Way to go docs team o/
dhellmann: OpenStack Newton is officially released!
tristanC: 6 TC members elected for Ocata [1].
dulek: Cinder gate is now voting on basic rolling upgrades support. One step closer to get assert:supports-rolling-upgrade tag.
More

Thoughts on the TC Election Process

When deciding to run, candidates write a long thoughtful essay on their reasons for wanting to serve on the TC.

It is rare for anyone to ask follow-up question, or to challenge the candidates to explain their position more definitively.
Some people pick by names they are most familiar with and don’t read those candidacy posts.
It is believed that it’s rare for someone who hasn’t been a PTL of a large project to be elected.
An example of implicit bias, blind auditions for musical orchestras radically changing the selection results [2].

Proposal: have candidates self-nominate, but instead of a long candidacy letter, just state their interests in serving.

After nominations close, the election officials will assign each candidate with a  non-identifying label (e.g. random number).
Candidates will post their thoughts and positions and respond to questions from people.
Candidacy essay would be posted in the campaign period, instead of the nomination period. This will exclude biographical information.
Perhaps candidates can forward their responses to election officials, who will post them for the candidates and identify only by candidate number.
The voting form will only list the candidates’ numbers.

Thoughts on the proposal:

Not allowing people to judge peoples’ character introduces a fraud incentive. You can tell friends your number secretly. Their implicit bias will make them think this is morally ok, and make them more likely to vote for you.
It can be important to identify candidates. For some people, there’s a difference in what they say, and what they end up doing when left calling the shots.
Familiarity doesn’t necessarily equal bias. Trust is not bias.
A good example [2] of needing to know the speaker and words came out of the thread. Also a reason why anonymous elections for leaders are a bad idea and favor native English speakers.

We need several things:

Allow time between the nomination and the voting. Some candidates don’t announce until the last day or two. This doesn’t allow much time to get to know them.
How to deal with timezone differences. One candidate may post an answer early and get more reaction.
Reduce the effect of incumbency.

The comparison of orchestra auditions was brought up a couple of cycles ago as well, but could be a bad comparison. The job being asked of people was performing their instrument, and it turns out a lot of things not having to do with performing their instrument were biasing the results.

The job of the TC is:

Putting the best interests of OpenStack at heart.
Be effective in working with a diverse set of folks in our community to get things done.
To find areas of friction and remove them.
Help set the overall direction for the project that community accepts.

Writing a good candidacy email isn’t really good representation of those abilities. It’s the measure of writing a good candidacy email, in English.

Sean Dague hopes that when voters vote in the election that they are taking the reputation of individuals into account.

Look at the work they did across all of OpenStack.
How they got consensus on items.
What efforts they are able to get folks to rally around and move forward.
When they get stuck and get unstuck.
When they ask for help and/or admit they’re out of their element.
How they help new folks.
How they work with long timers.

It’s easy to dismiss it as a popularity contest, however, this is about evaluating the plausible promise that the individuals put forward. Not just ideas they have, but how likely they are to be able to bring them to fruition.

Full thread

API Workgroup News

API usability tests being conducted at the Barcelona summit [3].
Two lively discussions [4]:

Collecting and improving error messages across OpenStack.
Request semantics with regards to GET and body processing.

New guidelines:

Add a warning about JSON expectations [5].

Guidelines currently under review:

Specify time intervals based filtering queries [6].

Full thread

Project Teams Gathering from the Ops Perspective

The first PTG will be held February 20-24 in Atlanta, GA at the downtown Sheraton hotel.
Tickets are $100.
Group rate is $185/night.
Registration will go live in the next couple of weeks.
Horizontal/cross project teams will meet Monday and Tuesday.
Vertical projects will meet Wednesday through Friday.
There’s a lot of great planning happening around the PTG planning, however, it’s going take some time for operators to figure it out.
Tom Fifield gives some notes for the operators:

Check out the diagram on the PTG site [7].

We’re finally acknowledging a release cycle starts with planning. Now we’ll be finalizing a release, while planning another.
This puts the summit at the right place to get feedback and decent ideas from users.

The OpenStack summit is the place the entire community gets together.

The PTG doesn’t mean the summit becomes a marketing thing. The summit can also include:

Pre-spec brainstorming
Feedback with users
Be involved in strategic direction.

Don’t expect Ops at the PTG

The PTG has been designed for space to get stuff done. Unless a user is deep in code, they won’t be there. If you want feedback from users, use the summit.

For ops-focused teams like Kolla, participating at OpenStack summits and Ops mid cycles are essential. Not everyone has to go to every event though. These teams should organize who is going to what events.
If you’re going to the summit in Barcelona, Thierry and Erin from the OpenStack Foundation will be hosting informational presentation on the PTG [8].
Full thread

Next PTL/TC Elections Timeframes

At the last TC meeting, TC members discussed future election period, with consideration of the OpenStack Summit and Project Teams Gathering.
The TC charter which uses “Design Summit” and “Summit” interchangeably is no longer valid and requires change.

There was a focus on limiting the impact change to avoid the need to modify the Foundation bylaws [9].
PTL elections would continue to be organized around development cycle boundaries.
TC elections would continue to be organized relative to OpenStack Summit dates.

Full thread

Running Non-Devstack Jobs in Python Projects

Devstack is the common tool to deploy OpenStack in CI environments.

However, it doesn’t deploy OpenStack in production versus tools like Kolla, Fuel, TripleO, etc.

Things might (and did) break when deploying OpenStack outside of Devstack:

SSL was not tested. Some projects still don’t test with SSL enabled.
IPv6 is not tested everywhere.
Production scenarios with HA (HAproxy and/or Pacemaker) are not tested.

Proposal:

This is not about removing Devstack. The idea is to add more coverage in an interactive way.
Projects like TripleO and Heat have been added as CI jobs in the experimental pipeline.
A draft document about increasing coverage in different projects [10].

Finding a balance between enough testing and overusing infra resources is tricky.

Also anything that’s more complicated than unit tests has > 0% chance of failure.

Another proposal:

Running periodic testing and moving forward reference hashes everyday if tests pass.

Allows deployment tools to move forward automatically.
Quite close to master, but not tightly coupled into every change.
This is pretty much what the OpenStack-Ansible project does for its “integrated build”.

Full thread

 
[1] &; http://lists.openstack.org/pipermail/openstack-dev/2016-October/105299.html
[2] &8211; http://blog.leafe.com/bias/
[3] &8211; https://wiki.openstack.org/wiki/UX#.21
[4] &8211; http://eavesdrop.openstack.org/meetings/api_wg/
[5] &8211; https://review.openstack.org/#/c/364460/
[6] &8211; https://review.openstack.org/#/c/383862/
[7] &8211; https://www.openstack.org/ptg
[8] &8211; https://www.openstack.org/summit/barcelona-2016/summit-schedule/events/17383/project-teams-gathering-101
[9] &8211; https://review.openstack.org/#/c/385951/
[10] &8211; https://docs.google.com/spreadsheets/d/1bLg-uEGrQXyRZ-FuR6pf1WT4XN0-6MrlfqEShI7xMxg/edit#=0
Quelle: openstack.org

Docker Distributed System Summit videos & podcast episodes

Following LinuxCon Europe in Berlin last week, we organized a first of its kind Docker event called Docker Distributed Systems Summit. This two day event was an opportunity for core Docker engineers and Docker experts from the Docker community to learn, collaborate, problem-solve and hack around the next generation of distributed systems in areas such as orchestration, networking, security and storage.

More specifically, the goal of the summit was to dive deep into Docker’s infrastructure plumbing tools and internals: SwarmKit, InfraKit, Hyperkit, Notary, libnetwork, IPVS, Raft, TUF and provide attendees with the working knowledge of how to leverage these tools while building their own systems.
We’re happy to share with you all the videos recordings, slides and audio files available as episodes!
Youtube playlist

Podcast playlist

All the slides from the summit are available on the official Docker slideshare account.
 
Please join us in giving a big shout out to our awesome speakers for creating and presenting the following projects:
 

InfraKit: A toolkit for creating and managing declarative, self-healing infrastructure

Speaker: Bill Farner and David Chung (Docker)
GitHub repo, Slides, video, podcast and Liveblogging

Heart of the SwarmKit: Store, Topology & Object Model

Speaker: Aaron Lehman, Andrea Luzzardi and Stephen Day (Docker)
GitHub Repo, Slides, video, podcast and Liveblogging

Persistent storage tailored for containers

Speaker: Quentin Hocquet (CTO at Infinit)
GitHub repo, Slides, video, podcast and Liveblogging

Prometheus: Design and Philosophy

Speaker: Julius Volz &; @juliusvolz (Author of Prometheus)
GitHub repo, Slides, video, podcast and Liveblogging

Talking TUF: Securing Software Distribution

Speaker: Justin Cappos (Professor at New York University)
GitHub repo, Slides, video, podcast and Liveblogging

Orchestrating Least Privilege

Speaker: Diogo Monica (Docker)
GitHub Repo, Slides, video, podcast and Liveblogging

Cilium &8211; BPF & XDP for containers

Speaker: Thomas Graf (Principal at Noiro Networks)
GitHub repo, Slides, video, podcast and Liveblogging

Docker Networking: Control Plane and Data Plane

Speaker: Madhu Venugopal and Jana Radhakrishnan (Docker)
GitHub repo, Slides, video, podcast and Liveblogging

Unikernels: the rise of the library hypervisor in MirageOS

Speaker: Anil Madhavapeddy and Martin Lucina (Docker)
GitHub repo, Slides, video, podcast and Liveblogging

 
The Docker team would also like to extend a huge thank you to everyone who attended the Summit in Berlin last week. The event was a success because of the amazing participation and energy of the community.
 

Thanks for this wonderful @docker team! Lot ´s of great ppl, great detailled tech infos, I learn so many things! See you soon! pic.twitter.com/oDrSs6XATH
— Julien Maitrehenry (@jmaitrehenry) October 9, 2016

 

Great talks, deep-dive content, really enjoyable ppl, Thks @docker 4 t dockersummit Berlin, bye-bye till next year pic.twitter.com/TgitFaieWQ
— grealish (@grealish) October 8, 2016

 
Click to tweet:

Check out the videos, slides and dockercast episodes from the dockersummit sessions last week! Click To Tweet

The post Docker Distributed System Summit videos &; podcast episodes appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

Using Tags for Access Control

Most systems use Access Control Lists (ACL’s) to manage user’s access to objects. Common examples are ACL’s for file systems, LDAP, Web Servers and many more. Anyone who has had to create ACL rules and maintain them knows how complicated this can be. To make access control easy again, CloudForms uses tags. If the group a user belongs to has the same tag as the accessed object, access is granted, if not, access is denied.
This sounds simple and straightforward, but there are a couple of things to know about tags which make them very powerful, but also a bit tricky.

Let’s start with a basic explanation of common objects in CloudForms:

Users: users can be created in the internal database or retrieved from external authentication. Meta data, including the full name, email address, password (in the case of database authentication) and relationship to one or more groups, is associated to the user.
Groups: every user is a member of one or more groups. Groups are used to define the scope or visibility of a user. For example, a member of the “Engineering Department” group can be granted access to all virtual machines (VMs) owned by the engineering department. Or a member of the group “Operations” could be granted access to all VMs running in the production environment.
Roles: every group is associated to exactly one role, which describes the privileges granted to that group. Roles are used to define which actions a user is allowed to perform. For example, an “Operator” role could include permissions to start or stop VMs, re-configure them, etc. A “Self Service” role could allow a user to order new VMs and manage them.

The combination of groups and roles defines which actions are allowed and on which objects. An “Operator” role in the “Engineering Department” group would have the same privileges as an “Operator” role in the “Finance Department” group because they share the same role, but they would see different objects because they are not in the same group.
Let’s discuss a couple of examples to get familiar with this model.
Setting the Stage
As an administrator, navigate to Settings > Configuration and click on “Access Control” in the pane on the left, and then click on “Roles”. Add a new role by clicking on Configuration > Add a New Role and name it “Self Service”. Granting privileges to the role is very nicely implemented. The tree on the right represents all of the menus and actions a user can perform in the UI. Enabling (checking) a feature grants the privilege to the role. By drilling down into sub folders, very fine grained permissions can be granted (e.g. power on, but not power off).
For the purpose of this demo, a role with full access to “Cloud Intel”, “Services”, “Compute”, “Settings” and “Access Rules for all Virtual Machines” &; but no other privileges &8211; is created.

Example Group “Engineering”
In the next step, a group called “Engineering” is created. All members of this group will have the “Self Service” role assigned, which was created in the previous step. For now, we skip tags and filters and keep them all unchecked.

Example User “Joe Doe”
In the last step a user “Joe Doe” is created. This will be a local user (stored in the database) and is a member of the “Engineering” group.

Results
If Joe Doe logs into the web interface and navigates to Providers > Hosts > Virtual Machines or Providers > Hosts > Service Catalogs he will see all of the existing objects. This should not be a surprise, because he is assigned to a group which doesn’t have any restrictions on visibility.
Granting Access to Individual Objects
For our next step, we want to restrict Joe Doe’s visibility to only those VMs associated to the Engineering Department. To accomplish this, we will restrict Joe Doe to only see objects tagged as Department/Engineering. But first, we will learn a little bit about tags and tag categories.
Tags and Tag Categories
Tags are any string that you would like to describe a particular characteristic of an object. The best tags are clearly descriptive and easy for other users to understand. For example, Engineering and Finance are clearly descriptive and easy to understand tags that describe the part of the organization to which a user or VM belongs. Tag categories are groupings of related tags. For example, Engineering and Finance belong to the Department tag category. Using tag categories you can group related tags together.
CloudForms comes with a default set of tags and tag categories that you can use, or you can create your own custom taxonomy of tags. In this way, tags are very flexible. For this demonstration, we are going to work with the default set of tags and tag categories.
Assigning a Tag to an Object
Navigate to the “Engineering” group, edit it and select the Department/Engineering tag.

When changing groups, roles or tenants, the user doesn’t need to logout and login again. Changes to groups and roles are reflected immediately in CloudForms, even if the user is already logged in. If Joe now navigates to view VMs, only those VMs tagged with Department/Engineering will be shown. In this case, none!
First Gotcha!
You might have noticed, after setting the Department/Engineering tag for the group, no objects are showing up in the UI. The scope for the group, and hence the user, was just limited to objects which are tagged as Department/Engineering &8211; and no objects have been tagged so far. We now need to tag all objects which should be visible for the user. An object, like a VM, can be tagged by using the Policy > Edit Tags menu. After tagging a VM and navigating to the VM list, the VM will show up in the user interface.
This process works the same way for all other objects. If Joe Doe should be able to order a specific item from the service catalog, the item or bundle has to be tagged with the Department/Engineering tag to make it visible.
Working with Multiple Tags
If a VM or other object has to be visible to multiple groups, we can add all the necessary tags to the object. For instance, adding the Department/Finance tag to a VM, makes the VM available to members of the “Finance Department” group, which also has that tag.
Tags within the same tag category are processed as logical OR relationships. That is, if at least one tag of the group matches with at least one tag of the object, access is granted. For example, if a user is in a group with the Department/Engineering or Department/Finance tag, they will see the object. Users which are in a group with neither the Department/Engineering or Department/Finance tag, will not see the object. This also applies, if the object isn’t tagged with any tag &8211; which means, nobody will see it.
Second Gotcha!
Tag restrictions also apply to Super Administrators! If you restrict the visibility of a Super Administrator by assigning them tags, they will no longer see those objects which do not have matching tags! Since Super Administrators can always fix tag assignments or remove the tags for their group, they can restore full visibility, but it’s probably best to make sure you never limit Super Administrators.
Working with Multiple Tag Categories
When working in more complex environments, multiple tag categories must be used. For example, in addition to separating VMs by departments, tags can be used to separate VMs in different stages of deployment (Development, QA, Production). However, as soon as multiple tag categories are introduced, things get a bit more complicated.
Third Gotcha!
When using multiple tag categories, there is a logical AND between tags in multiple categories. This is probably best explained with an example. CloudForms comes with a default tag category called Environment with tags like Development and Production.
If the “Engineering” group, of which Joe Doe is a member, gets the additional tag Environment/Development, Joe will only see objects which have the Department/Engineering tag and the Environment/Development tag.  A VM tagged as Department/Engineering and Environment/Production will be hidden from Joe.

Object Tags
Group Tags
Visible?

Department/Engineering
Department/Engineering
Yes, Tags match.

Department/Engineering
AND
Department/Finance
Department/Engineering
Yes. At least one tag in the same category matches.

Department/Engineering
AND
Environment/Development
Department/Engineering
No. Tags from multiple categories, so both must match.

Department/Engineering
AND
Environment/Production
Department/Engineering
AND
Environment/Development
No. Tags from multiple categories, so both must match.

Department/Engineering
AND
Environment/Development
AND
Environment/Production
Department/Engineering
AND
Environment/Development
Yes. At least one tag in each tag category matches.

This is very important and often causes confusion. As soon as you start tagging objects with tags from different tag categories, the logical AND comes into play!
Conclusion: Think Before You Tag
There are a few rules we try to follow when we plan tagging:

Don’t use tags for information which is already available as an attribute for the object. For example, tagging all Windows VMs as Operating System Windows is in most cases not a good idea. Since this information is already stored in an VM attribute, you can use a filter to find all of the Windows VMs.
Try to minimize the number of tags and tag categories. Having a large number of categories and tags makes things more complicated.
Think before you add a new tag or tag category. Besides increasing the number of tags or tag categories, you will have to tag all of the objects already in CloudForms.
Try to use auto tagging where possible. Instead of manually tagging objects, write Automate code to do this for you or make use of the CloudForms REST API.

Tags are a very simple and yet powerful way to manage access control lists. Used properly, they can provide greater flexibility and manageability in CloudForms. For more information on tags and access control, see the following resources:
Creating and Using Tags in Red Hat CloudForms
Planning your CloudForms tagging taxonomy
Quelle: CloudForms

Full Stack Automation with Ansible and OpenStack

Ansible offers great flexibility. Because of this the community has figured out many useful ways to leverage Ansible modules and playbook structures to automate frequent operations on multiple layers, including using it with OpenStack.
In this blog we’ll cover the many use-cases Ansible, the most popular automation software, with OpenStack, the most popular cloud infrastructure software. We’ll help you understand here how and why you should use Ansible to make your life easier, in what we like to call Full-Stack Automation.

Let’s begin by analyzing the layers of Full-Stack Automation, shown in the diagram above. At the bottom, we have the hardware resources (servers, storage area networks, and networking gear). Above, is the operating system (Linux or Windows). On the Linux side, you can install OpenStack to abstract all of your datacenter resources and offer a software-defined version of your compute, network, and storage resources. On top of OpenStack, are the tenant-defined services needed to create the virtual machines where the applications will reside. Finally, you have to manage the operating system (Linux or Windows) to deploy the actual applications and workloads that you really care about (databases, web servers, mobile application backends, etc.). If you use containers (like Docker or Rkt), you’ll package those applications in images that will be deployed on top of your Guest OS. In addition to that, some languages introduce the concept of application servers, which adds another layer (i.e. J2EE).
Ansible management possibilities
With Ansible, you have a module to manage every layer. This is true even for the networking hardware, although technically speaking it’s for the network operating system, like IOS or NXOS (see the full list of Ansible network modules here).

General interaction with the Operating System: install packages, change or enforce file content or permissions, manage services, create/remove users and groups, etc.

Linux and BSD via SSH (the first and most popular use-case)
Windows via PowerShell (since 1.7)

IaaS Software: install the IaaS software and its dependencies (databases, load balancers, configuration files, services, and other helper tools)

OpenStack-ansible installer https://github.com/openstack/openstack-ansible, as used in some upstream-based OpenStack distributions from other vendors. Note that the Red Hat OpenStack Platform does not use Ansible, but Heat and Puppet. Future releases will leverage Ansible to perform certain validations and to help operators perform their updates and upgrades.
CloudStack installer is also an Ansible-based project.

Virtual Resources: define the resource, like a Virtual Machine or Instance, in terms of how big it is, who can access it, what content should it have, what security profile and network access it requires, etc.

OpenStack Ansible modules (since Ansible 2.0): for instance, Nova or Neutron. It&;s based on the OpenStack &;shade&; library, a common tool for all CLI tools in OpenStack.
It can also manage not so virtual network resources, via netconf (since 2.2) https://docs.ansible.com/ansible/netconf_config_module.html
VmWare vSphere Ansible modules
RHV or oVirt or Libvirt for bare KVM
It also has modules for public cloud providers, like Amazon, Google Cloud, Azure and Digital Ocean

Guest OS: the same components as described for the Host OS. But how do you discover how many Guests you have?

Ansible Dynamic Inventory will dynamically interrogate the IaaS/VM layer and discover which instances are currently available. It detects their hostname, IPs, and security settings and replaces the static Inventory concept. This is especially useful if you leverage Auto Scaling Groups in your cloud infrastructure, which makes your list of instances very variable over time.

Containers Engine (optional)

Docker: Note that the old Docker module is deprecated for a new, native version, in Ansible 2.1.
Kubernetes
Atomic Host

Tenant Software: databases, web servers, load balancers, data processing engines, etc.

Ansible Galaxy is the repository of recipes (playbooks) to deploy the most popular software, and it’s the result of the contributions of thousands of community members.
You can also manage web Infrastructure such as JBoss, allowing Ansible to define how an app is deployed in the application server.

How to install the latest Ansible on a Python virtual environment
As you have seen, some features are only available with very recent Ansible versions, like 2.2. However, your OS may not ship it yet. For example, RHEL 7 or CentOS 7 only comes with Ansible 1.9.
Given that Ansible is a command-line tool written in Python, which supports multiple versions on a system, you may not need the security hardening in Ansible that your distribution offers, and you may want to try the latest version instead.
However, as any other Python software, there are many dependencies, and it’s very dangerous to mix untested upstream libraries with your system-provided ones. Those libraries may be shared and used in other parts of your system, and untested newer libraries can break other applications. The quick solution is to install the latest Ansible version, with all its dependencies, in a isolated folder under your non-privileged user account. This is called a Python Virtual Environment (virtualenv), and if done properly, allows you to safely play with the latest Ansible modules for a full-stack orchestration. Of course, we do not recommend this practice for any production use-case; consider it a learning exercise to improve your DevOps skills.
1) Install prerequisites (pip, virtualenv)
The only system-wide python library we need here is “virtualenvwrapper”. Other than that, you should not do “sudo pip install” as it will replace system python libraries with untested, newer ones. We only trust one here, “virtualenvwrapper”. The virtual environment method is a good mechanism for installing and testing newer python modules in your non-privileged user account.
$ sudo yum install python-pip
$ sudo pip install virtualenvwrapper
$ sudo yum install python-heatclient python-openstackclient python2-shade
2) Setup a fresh virtualenv, where we’ll install the latest Ansible release
First, create a directory to hold the virtual environments.
$ mkdir $HOME/.virtualenvs
Then, add a line like &8220;export WORKON_HOME=$HOME/.virtualenvs&8221; to your .bashrc. Also, add a line like &8220;source /usr/bin/virtualenvwrapper.sh&8221; to your .bashrc. Now source it.
$ source ~/.bashrc
At this point, wrapper links are created, but only the first time you run it. To see the list of environments, just execute &8220;workon&8221;. Next, we&8217;ll create a new virtualenv named “ansible2” , which will be automatically enabled, with access to the default RPM-installed packages.
$ workon
$ mkvirtualenv ansible2 –system-site-packages
To exit the virtualenv, type &8220;deactivate&8221;, and to re-enter again, use &8220;workon&8221;.
$ deactivate
$ workon ansible2
3) Enter the new virtualenv and install Ansible2 via PIP (as regular user, not root)
You can notice your shell prompt has changed and it shows the virtualenv name in brackets.
(ansible2) $ pip install ansible
The above command will install just the ansible 2 dependencies, leveraging your system-wide RPM-provided python packages (thanks to the &;system-site-packages flag we used earlier). Alternatively, if you want to try the development branch:
(ansible2) $ pip install git+git://github.com/ansible/ansible.git@devel
(ansible2) $ ansible –version
If you ever want to remove the virtualenv, and all its dependencies, just use use &8220;rmvirtualenv ansible2&8221;.
4) Install OpenStack client dependencies
The first command below ensures you have the latest stable OpenStack API versions, although you can also try a pip install to get the latest CLI. The second command provides the latest python “shade” library to connect to latest OpenStack API versions using ansible, regardless of the CLI tool.
(ansible2) $ yum install python-openstackclient python-heatclient
(ansible2) $ pip install shade –upgrade
5) Test it
(ansible2) $ ansible -m ping localhost

localhost | SUCCESS => {

“changed”: false,

“ping”: “pong”

}
NOTE: you cannot run this version of ansible outside the virtualenv, so always remember to do “workon ansible2” before usi.

Using Ansible to orchestrate OpenStack
Our savvy readers will notice that using Ansible to orchestrate OpenStack seems to ignore the fact that Heat is the official orchestration module for OpenStack. Indeed, an Ansible Playbook will do almost the same as a HOT template (HOT is the YAML-based syntax for Heat, an evolution of AWS CloudFormation). However, there are many DevOps professionals out there who don’t like to learn new syntax, and they are already consolidating all their process for their hybrid infrastructure.
The Ansible team recognized that and leveraged Shade, the official library from the OpenStack project, to build interfaces to OpenStack APIs. At the time of this writing, Ansible 2.2 includes modules to call the following APIs

Keystone: users, groups, roles, projects
Nova: servers, keypairs, security-groups, flavors
Neutron: ports, network, subnets, routers, floating IPs
Ironic: nodes, introspection
Swift Objects
Cinder volumes
Glance images

From an Ansible perspective, it needs to interact with a server where it can load the OpenStack credentials and open an HTTP connection to the OpenStack APIs. If that server is your machine (localhost), then it will work locally, load the Keystone credentials, and start talking to OpenStack.
Let’s see an example. We’ll use Ansible OpenStack modules to connect to Nova and start a small instance with the Cirros image. But we’ll first upload the latest Cirros image, if not present. We’ll use an existing SSH key from our current user. You can download this playbook from this github link.

# Setup according to Blogpost “Full Stack automation with Ansible and OpenStack”. Execute with “ansible-playbook ansible-openstack-blogpost.yml -c local -vv”
# #
# #
# #
– name: Execute the Blogpost demo tasks
hosts: localhost
tasks:
– name: Download cirros image
get_url:
url: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
dest: /tmp/cirros-0.3.4-x86_64-disk.img
– name: Upload cirros image to openstack
os_image:
name: cirros
container_format: bare
disk_format: qcow2
state: present
filename: /tmp/cirros-0.3.4-x86_64-disk.img

– name: Create new keypair from current user’s default SSH key
os_keypair:
state: present
name: ansible_key
public_key_file: “{{ ‘~’ | expanduser }}/.ssh/id_rsa.pub”

– name: Create the test network
os_network:
state: present
name: testnet
external: False
shared: False
: vlan
: datacentre
register: testnet_network

– name: Create the test subnet
os_subnet:
state: present
network_name: “{{ testnet_network.id }}”
name: testnet_sub
ip_version: 4
cidr: 192.168.0.0/24
gateway_ip: 192.168.0.1
enable_dhcp: yes
dns_nameservers:
– 8.8.8.8
register: testnet_sub

– name: Create the test router
ignore_errors: yes for some reasons, re-running this task gives errors
os_router:
state: present
name: testnet_router
network: nova
external_fixed_ips:
– subnet: nova
interfaces:
– testnet_sub

– name: Create a new security group
os_security_group:
state: present
name: secgr
– name: Create a new security group allowing any ICMP
os_security_group_rule:
security_group: secgr
protocol: icmp
remote_ip_prefix: 0.0.0.0/0
– name: Create a new security group allowing any SSH connection
os_security_group_rule:
security_group: secgr
protocol: tcp
port_range_min: 22
port_range_max: 22
remote_ip_prefix: 0.0.0.0/0

– name: Create server instance
os_server:
state: present
name: testServer
image: cirros
flavor: m1.small
security_groups: secgr
key_name: ansible_key
nics:
– net-id: “{{ testnet_network.id }}”
register: testServer

– name: Show Server’s IP
debug: var=testServer.openstack.public_v4

After the execution, we see the IP of the instance. We write it down, and we can now use Ansible to connect into it via SSH. We assume Nova’s default network allows connections from our workstation, in our case via a provider network.

Comparison with OpenStack Heat
Using Ansible instead of Heat has it&8217;s advantages and disadvantages. For instance, with Ansible you must keep track of the resources you create, and manually delete them (in reverse order) once you are done with them. This is especially tricky with Neutron ports, floating IPs and routers. With Heat, you just delete the stack, and all the created resources will be properly deleted.
Compare the above with a similar (but not equivalent) Heat Template, that can be downloaded from this github gist:
heat_template_version: 2015-04-30

description: >
Node template. Launch with “openstack stack create –parameter public_network=nova –parameter ctrl_network=default –parameter secgroups=default –parameter image=cirros –parameter key=ansible_key –parameter flavor=m1.small –parameter name=myserver -t openstack-blogpost-heat.yaml testStack”

parameters:
name:
type: string
description: Name of node
key:
type: string
description: Name of keypair to assign to server
secgroups:
type: comma_delimited_list
description: List of security group to assign to server
image:
type: string
description: Name of image to use for servers
flavor:
type: string
description: Flavor to use for server
availability_zone:
type: string
description: Availability zone for server
default: nova
ctrl_network:
type: string
label: Private network name or ID
description: Network to attach instance to.
public_network:
type: string
label: Public network name or ID
description: Network to attach instance to.

resources:

ctrl_port:
type: OS::Neutron::Port
properties:
network: { get_param: ctrl_network }
security_groups: { get_param: secgroups }

floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network: { get_param: public_network }
port_id: { get_resource: ctrl_port }

instance:
type: OS::Nova::Server
properties:
name: { get_param: name }
image: { get_param: image }
flavor: { get_param: flavor }
availability_zone: { get_param: availability_zone }
key_name: { get_param: key }
networks:
– port: { get_resource: ctrl_port }

Combining Dynamic Inventory with the OpenStack modules
Now let’s see what happens when we create many instances, but forget to write down their IP’s. The perfect example to leverage Dynamic Inventory for OpenStack is to learn the current state of our tenant virtualized resources, and gather all server IP’s so we can check their kernel version, for instance. This is transparently done by Ansible Tower, for instance, which will periodically run the inventory and collect the updated list of OpenStack servers to manage.
Before you execute this, you don’t have stale cloud.yaml files in either ~/.config/openstack, /etc/openstack, or /etc/ansible. The Dynamic Inventory script will look for environment variables first (OS_*), and then it will search for those files.
ensure you are using latest ansible version

$ workon ansible2
$ wget https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/openstack.py
$ chmod +x openstack.py
$ ansible -i openstack.py all -m ping
bdef428a-10fe-4af7-ae70-c78a0aba7a42 | SUCCESS => {
    “changed”: false,
    “ping”: “pong”
}
343c6e76-b3f6-4e78-ae59-a7cf31f8cc44 | SUCCESS => {
    “changed”: false,
    “ping”: “pong”
}
You can have fun by looking at all the information that the Inventory script above returns if you just executed as follows:
$ ./openstack.py &8211;list
{
 “”: [
    “777a3e02-a7e1-4bec-86b7-47ae7679d214″,
    “bdef428a-10fe-4af7-ae70-c78a0aba7a42″,
    “0a0c2f0e-4ac6-422d-8d9b-12b7a87daa72″,
    “9d4ee5c0-b53d-4cdb-be0f-c77fece0a8b9″,
    “343c6e76-b3f6-4e78-ae59-a7cf31f8cc44″
 ],
 “_meta”: {
    “hostvars”: {
     “0a0c2f0e-4ac6-422d-8d9b-12b7a87daa72″: {
       “ansible_ssh_host”: “172.31.1.42”,
       “openstack”: {
         “HUMAN_ID”: true,
         “NAME_ATTR”: “name”,
         “OS-DCF:diskConfig”: “MANUAL”,
         “OS-EXT-AZ:availability_zone”: “nova”,
         “OS-EXT-SRV-ATTR:host”: “compute-0.localdomain”,
         “OS-EXT-SRV-ATTR:hypervisor_hostname”: “compute-0.localdomain”,
         “OS-EXT-SRV-ATTR:instance_name”: “instance-000003e7″,
         “OS-EXT-STS:power_state”: 1,
         “OS-EXT-STS:task_state”: null,
         “OS-EXT-STS:vm_state”: “active”,
         “OS-SRV-USG:launched_at”: “2016-10-10T21:13:24.000000″,
         “OS-SRV-USG:terminated_at”: null,
         “accessIPv4″: “172.31.1.42”,
         “accessIPv6″: “”,
(….)

Conclusion
Even though Heat is very useful, some people may prefer to learn Ansible to do their workload orchestration, as it offers a common language to define and automate the full stack of I.T. resources. I hope this article has provided you with a practical example, with a very basic use case for Ansible to launch OpenStack resources. If you are interested in trying Ansible and Ansible Tower, please visit https://www.ansible.com/openstack. A good starting point would be connecting Heat with Ansible Tower callbacks, as described in this other blog post
Also, if you want to learn more about Red Hat OpenStack Platform, you&8217;ll find lots of valuable resources (including videos and whitepapers) on our website. https://www.redhat.com/en/technologies/linux-platforms/openstack-platform
 
Quelle: RedHat Stack

Mirantis OpenStack 9.1 – Continuing to Simplify the Day-2 Experience

The post Mirantis OpenStack 9.1 &; Continuing to Simplify the Day-2 Experience appeared first on Mirantis | The Pure Play OpenStack Company.
Mirantis OpenStack 9.1 makes it easier for cloud operators to consume upstream innovation on a periodic basis, both for bug fixes and minor feature enhancements, and you can get access to this capability through an easy and reliable update mechanism. In addition, along with a number of additional features in Fuel, Mirantis OpenStack 9.1 simplifies the day-2, or post-deployment, experience for operators.
Improved Day-2 Operations
Streamline OpenStack updates
The prior mechanism of applying Maintenance Updates (MU) had several limitations. First, the MU script could only apply package updates to controller and compute nodes, and not to the Fuel Master itself. Next, the previous mechanism suffered from the inability to restart services automatically, and lacked integration with Fuel.
In 9.1, a new update mechanism has been introduced that uses Fuel’s internal Deployment Tasks to update the cloud and the Fuel Master. This new mechanism delivers the following:

Reliability: It is tested and verified as part of the Mirantis OpenStack release. This includes going through our automated CI/CD pipelines and extensive QA process.
Customizations: It provides users the ability to detect any customizations before applying an update to a cloud to enable operators to decide whether an update is safe to apply.
Automatic restart: It enables automatic restart of services so that changes can take effect. The prior mechanism required users to manually restart services.

Simplify Custom Deployment Tasks With a New User Interface
In Mirantis OpenStack 9.0, we introduced the ability to define custom deployment tasks to satisfy advanced lifecycle management requirements. Operators could customize configuration options, execute any command on any node, update packages etc. with deployment tasks. In the 9.1 release, you get access to a new Deployment Task user interface in Fuel that shows the deployment workflow history. The UI can also be used to manage deployment tasks.

Automate Deployment Tasks With Event-Driven Execution
Consider an example where you need to integrate third-party monitoring software. In that case, you would want to register a new node with the monitoring software as soon as it is deployed via Fuel. Items such as these can now be automated with 9.1, where a custom deployment task can be triggered by specific Fuel events.
Reduce Footprint With Targeted Diagnostic Snapshots
With prior releases, diagnostic snapshots continued to grow over time to consume multiple GB of storage per node in just a few weeks. To solve this problem, 9.1 features targeted diagnostic snapshots to only allow log retrievals of recent N (configurable) days for a specific set of nodes.
Enhanced Security
Mirantis OpenStack 9.1 includes a number of important security features:

SSH Brute Force protection on the Host OS
Basic DMZ Enablement to separate the API/Public Network from the Floating Network
RadosGW S3 API authentication through Keystone to enable the use of the same credentials for Ceph object storage APIs

The latest versions of StackLight and Murano are compatible with 9.1, so you will also be able to benefit from the latest features of the logging, monitoring and alerting (LMA) toolchain and application catalog and orchestration tool.
Because it&;s an update, installation of the Mirantis OpenStack 9.1 update package requires you to already have Mirantis OpenStack 9.0 installed, but then you&8217;re ready to go.  All set? Then hit the 9.0 to 9.1 update instructions to get started.
The post Mirantis OpenStack 9.1 &8211; Continuing to Simplify the Day-2 Experience appeared first on Mirantis | The Pure Play OpenStack Company.
Quelle: Mirantis

Docker Announces Expansion To China Through Commercial Partnership with Alibaba Cloud

The containerization movement fueled by has extended across all geographic boundaries since the very beginning. Some of Docker’s earliest success stories were from Chinese based, web-scale companies running Docker in production before Docker had released its 1.0 version. Additionally, through the grass roots efforts of the development community, we have thriving Docker Meetups in 20 of ’s largest cities. This is a testament to the innovative spirit within the Chinese developer community because the ability to deliver great community content from Docker Hub has been highly constrained. That is why a partnership with China’s largest public cloud provider is so significant. Docker, in concert with Cloud, is going to deliver a China-based instance of Docker Hub to ensure optimal access and performance to the thousands of Dockerized images that will serve as the foundation of a new generation of distributed applications in China.  
In addition to formally providing Dockerized content on Docker Hub to China, Docker is commercially partnering with Alibaba to address the substantial demand for running enterprise applications in containers.  A June 2016 Alibaba Cloud survey indicates that more than 80% respondents are already using or plan to use containers. Together Alibaba Cloud and Docker will make it easier for organizations of all sizes to containerize legacy applications, accelerate their digital transformations and build new microservices. Through this commercial partnership with Alibaba Cloud, we look to serve the unique needs of global enterprises in China and to deepen our roots in the market.
Specifically, the commercial partnership entails:

Providing a China-based Docker Hub running on Alibaba Cloud for the distribution of thousands of Dockerized applications
Enabling Alibaba to resell Docker’s commercial offerings in China, including Docker Datacenter and Commercially Supported Docker Engine
Creating “Docker For Alibaba Cloud” &; a configuration of Docker for Alibaba that has been created  by Docker

Agility is key to innovation. By  partnering with Alibaba Cloud to deliver a locally-hosted Docker Hub,  developers will enjoy significantly faster image downloads and UI response rates. Now, development teams will begin leveraging Docker Hub to integrate source code management, build and QA tools. This enables users to reduce their commit-to-deploy cycle times from days to minutes, often enabling them to ship applications more frequently than before.
We are excited to advance the user experience for developers throughout China and to help unlock the innovation and creativity that will help transform the economy. In addition, we’ve added Alibaba Cloud to Docker’s growing list of supported cloud environments where Docker Datacenter can be easily and quickly installed. Our collaboration further enables application portability &8211;  without sacrificing the security, policy and control that comes with Docker Datacenter, an integrated platform where both developers and IT ops teams can meet to collaborate. This is another critical step towards enabling ‘write-once, run-anywhere’ apps that can be deployed on-premises or in the cloud. Overall, there is a vast opportunity in this collaboration between Docker and Alibaba Cloud as China’s cloud spending is expected to increase roughly 5X over the next three years.   

Docker Announces Expansion To China Through Commercial Partnership with Alibaba To Tweet

The post Docker Announces Expansion To China Through Commercial Partnership with Alibaba Cloud appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

Auto-remediation: making an Openstack cloud self-healing

The post Auto-remediation: making an Openstack cloud self-healing appeared first on Mirantis | The Pure Play OpenStack Company.
The bigger the Openstack cloud you have, the bigger the operation challenges you will face. Things break &; daemons die, logs fill up the disk, nodes have hardware issues, rabbitmq clusters fall apart, databases get a split brain due to network outages&; All of these problems require engineering time to create outage tickets, troubleshoot and fix the problem &; not to mention writing the RCA and a runbook on how to fix the same problem in the future.
Some of the outages will never happen again if you’ll make the proper long-term fix to the environment, but others will rear their heads again and again. Finding an automated way to handle those issues, either by preventing or fixing them, is crucial if you want to keep your environment stable and reliable.
That&;s where auto-remediation kicks in.
What is Auto-Remediation?
Auto-Remediation, or Self-Healing, is when automation responds to alerts or events by executing actions that can prevent or fix the problem.
The simplest example of auto-remediation is cleaning up the log files of a service that has filled up the available disk space. (It happens to everybody. Admit it.) Imagine an automated action that is triggered by a monitoring system to clean the logs and prevent the service from crashing. In addition, it creates a ticket and sends a notification so the engineer can fix log rotation during business hours, and there is no need to do it in the middle of the night. Furthermore, the event-driven automation can be used for assisted troubleshooting, so when you get an alert it includes related logs, monitoring metrics/graphs, and so on.

This is what an incident resolution workflow should look like:

Auto-remediation tooling
Facebook, LinkedIn, Netflix, and other hyper-scale operators use event-driven automation and workflows, as described above. While looking for an open source solution, we found StackStorm, which was used by Netflix for the same purpose. Sometimes called IFTTT (If This, Then That) for ops, the StackStorm platform is built on the same principles as a famous Facebook FBAR (FaceBook AutoRemediation), with “infrastructure as code”, a scalable microservice architecture, and it&8217;s supported by a solid and responsive team. (They are now part of Brocade, but the project is accelerating.) StackStorm uses OpenStack Mistral as a workflow engine, and offers a rich set of sensors and actions that are easy to build and extend.
The auto-remediation approach can easily be applied when operating an OpenStack cloud in order to improve reliability. And it&8217;s a good thing, too, because OpenStack has many moving parts that can break. Event-driven automation can take care of a cloud when you sleep, handling not only basic operations such as restarting nova-api and cleaning ceilometer logs, but also complex actions such as rebuilding the rabbitmq cluster or fixing Galera replication.
Automation can also expedite incident resolution by “assisting” engineers with troubleshooting. For example, if monitoring detects that keystone has started to return 503 for every request, the on-call engineer can be provided with logs from every keystone node, memcached and DB state even before starting the terminal.
In building our own self-healing OpenStack cloud, we started small. Our initial POC had just 3 simple automations: cleaning logs, service restarts and cleaning rabbitmq queues. We placed them on our 1,000 node OpenStack cluster, and they run there for 3 months, taking these 3 headaches off our operators. This example showed us that we need to add more and more self-healing actions, so our on-call engineers can sleep better at night.
Here is the short list of issues that can be auto-remediated:

Dead process
Lack of free disk space
Overflowed rabbitmq queues
Corrupted rabbitmq mnesia
Broken database replication
Node hardware failures (e.g. triggering VM evacuation)
Capacity issue (by adding more hypervisors)

Where to see more
We&8217;d love to give you a more detailed explanation on how we approached self-healing of an OpenStack cloud. If you’re at the OpenStack summit, we invite you to attend our talk on Thursday, October 27, 9:00am at Room 112, or if you are in San Jose, CA come to the Auto-Remediation meetup on October 20th and hear us sharing the story there. You can also meet with the StackStorm team and other operators who are making the vision of Self-Healing a reality.
The post Auto-remediation: making an Openstack cloud self-healing appeared first on Mirantis | The Pure Play OpenStack Company.
Quelle: Mirantis