Microservices Infrastructure Release 0.3
On behalf of the development team. I’m pleased to announce the 0.3.0 release of Microservices Infrastructure. In the weeks since 0.2, we’ve added a number of features and improvements.
The software can be downloaded at:
Documentation is located at:
What is it?
Microservices Infrastructure is software that launches servers and then configures them to support a wide range of applications – like continuous delivery or realtime data processing.
This makes it easy to run application containers alongside data-centric workloads like Kafka, HDFS, Cassandra and Elasticsearch. We take leading open-source projects (Docker, Consul, Terraform, Mesos) and integrate them to build a powerful platform.
Microservices Infrastructure deploys to multiple cloud providers in minutes. High-availability, service discovery, metrics, security, and logging are built in.
All the components are released under an Apache 2.0 license. Bug reports and pull requests are welcome.
Deployment to OpenStack, AWS and Google Cloud via Terraform
With the addition of Openstack support to Terraform, Ansible-based cloud provisioning has been deprecated. With this release we’ve included configurations for OpenStack, Amazon Web Services, and Google Cloud. Future releases will include storage, VPN, and networking configurations and support for more providers.
To make the cloud installation process smoother, we’ve included a dynamic Ansible inventory script terraform.py that automatically discovers your hosts across clouds from your Terraform tfstate file and integrates them with Ansible roles.
Logging with Logstash and collectd
0.3.0 includes collectd plugins for Docker, Mesos, Marathon and Zookeeper.
Simplified Vagrant runs
We’ve simplified the Vagrant process, getting rid of the need to run security setup or install python modules. vagrant up will bring up an environment without needing to run any other commands.
To improve service discovery, we’ve developed mesos-consul, a tool that populates Consul service discovery with Mesos tasks. Mesos task <taskname> will be automatically discoverable via dns as <taskname>.service.consul.
One benefit of this approach is that Mesos leader detection is saved in Consul DNS. leader.mesos.service.consul will point to the current Mesos leader.
Future releases will support populating consul with Mesos Service Discovery and labels.
We’ve developed a bridge between Marathon state and consul with marathon-consul. This allows us to support richer haproxy configurations (see below).
Updated haproxy configuration
Our haproxy container now supports optionally reading from marathon-consul data. This means we now support non-HTTP proxying using Marathon global ports.
Future releases will support Mesos Service Discovery and labels to fine tune the proxy configuration.
Improved security-setup script
You can selectively disable security settings at a granular level (for example, turning off Marathon authentication), or disable security entirely.
ISO image creation and Packer support for Vagrant, AWS & Google Cloud
Initial support has been added for creating ISO images that can be used on bare metal systems.
Packer builds have been added for AWS, Google Cloud, and Vagrant. Openstack Glance support will be added in a future release.
Future releases will integrate these builds with terraform in order to speed up deployments.
- Support for Hashicorp’s Vault. Currently Vault is installed using Consul as an HA backend. This will allow us to dynamically manage credentials across servers, and keep SSL keys and secrets out of your containers.
- Use of NetworkManager to manage dnsmasq and /etc/resolv.conf has been removed, in favor of using dnsmasq directly.
- We’ve cleaned our containers and packages to be sourced from a single repository. Packages come from the bintray.com/ciscocloud account, and Docker images will download from docker.io/ciscocloud.
- Ansible openstack provisioning playbooks and references are being removed in favor of terraform and dynamic inventory.
- Using /etc/hosts has been deprecated in favor of using consul DNS. (For example, server.node.consul)
- Ansible groups have been simplified, thanks to https://github.com/CiscoCloud/microservices-infrastructure/pull/357
If you encounter any issues, please open a Github Issue against the project. We review issues daily.
We also have a gitter chat room. Drop by and ask any questions you might have. We’d be happy to walk you through your first deployment.
Cisco Intercloud Services provides support for OpenStack based deployments of Microservices Infrastructure.