Deploy your applications to Azure using Spinnaker
A couple of weeks ago, Mark Gray, a Program Manager at Microsoft hosted a session about Spinnaker, one of the new kids of the block that has gained tremendous popularity as an alternative to the built-in deployment tools in Azure DevOps.
With this type of webinars, Microsoft wants to create awareness of the flexibility of the “mix-and-match” approach; in other words, Azure allows you to select Non-Microsoft products as part of your DevOps practices.
If you never heard of it, Spinnaker is considered a great solution due to the built-in features for deployments.
Their slogan is “Continuous Delivery for Enterprise” mainly because it is open-source solution that works for multi-cloud environments such as AWS EC2, Kubernetes, Oracle Cloud, and of course, Microsoft Azure.
You can automate your releases, create, and trigger pipelines as you would do in Azure DevOps, via git Jenkins, Docker, and the built-in Spinnaker pipelines
One of the things I love about Spinnaker is how easy it is to rollback and debug issues. Although it doesn’t support Azure App Services yet, the value that brings to enterprise’s pipelines is tremendous. I
t is backed-up by Netflix (the creators) and by an active community of developers.I will dive in into the cool features of Spinnaker next week.
In the meantime, please review the Q&A session from the webinar, I think there were some interesting questions:
Can the Azure DevOps framework with on-prem infrastructure?
Spinnaker is separate from Azure DevOps so I cannot say for sure.
Deploying to clouds only or also on premises hosting too?
As for Spinnaker for Azure, currently, it’s deploying to clouds only
Can the Azure App Gateway be replaced by F5 (LTM, APM, AFM, etc.)?
Joe, It cannot be replaced at this point but we will be adding other options like the Azure Load Balancer. We have not considered the F5 but if it is something that you need, please create an issue on https://github.com/spinnaker/spinnaker and we will track it there.
Is there any use of ARM Templates?
yes. Currently Azure resources are deployed in Spinnaker using ARM templates
Does it provision across multiple accounts?
Yes, it’s supported
Any support for tagging?
Yes, you can add tags to the Server Groups currently.
Are stack and details propagated to the resources as tags?
No, they are not but great feature request.
can we use keyvault to store creator user credentials?
yes. Indeed things are being done currently using this way. i.e. currently the VM Scale Set credential (login user name and pwd/ssh public key) are being stored in key vault
So base networking setup is to be provisioned prior to using Spinnaker at this stage, is that planned as a future feature?
This behavior is common to spinnaker so we do not currently have plans to add the functionality.
Is only Windows2012 supported? not seeing Windows 2016+ in drop down
Great feature suggest! We can definitely add that. Feel free to file an issue here: https://github.com/spinnaker/spinnaker/issues/
Can you Trigger Pipelines off ADO Git Checkins?
Not currently but we will be looking into ADO integrations in the near future. Please feel free to create an issue on https://github.com/spinnaker/spinnaker for us to track.
Can you create the azure infrastructure (LB etc) outside of spinnaker? E.g. via terraform, then reference it in spinnaker?
We did not try that yet but this is a definitely reasonable requirement. We can offline double check. And if you could file an issue here: https://github.com/spinnaker/spinnaker/issues/, we could answer this question offline to your issue location
what way this/spinnakar is more advantage than Azure DevOps Release pipeline?
Spinnaker has advanced deployment strategies built in and simplifies deployments across clouds.
also how about restricting the VM type / storage tiers and resource group for the application
Assuming that you mean allowing the user to restrict those types when setting up Spinnaker, that is a great idea!
is there more details on the actual bake on the images? i.e. how is the build artifact installed on the VM?
Bake uses Packer under the hood to build the VM image with the package. It uses a standard Packer template but that template can be customized.
Availabilty zones are not yet present everywhere in Azure, as for VM is Spinnaker checking for their presence before presenting the option?
Yes, it will not be available in Spinnaker if the region does not support it.
Can we use custom OS images?
yes. You can use independent CI (Jenkins/Travis) to build your custom image and propagate your building result as an CI artifact to Spinnaker. Spinnaker has smooth integration experience with quite a few CI system. The only concern you need to pay attention is your custom OS image should be supported by Azure VM Scale Set.
Can Spinnaker deploy to Azure App Services?
It cannot but it is something we are considering as a backlog item.
can we define DSC for the deployments and install applications post VM provision?
You can run a command when you start an image so you could technically do this but Spinnaker works best with Immutable deployments.
how about deployment templates?
May I know what deployment templates mean here?
by deployment templates I mean that can I save a application configuration as a template and reuse the same for other applications
yes, it’s supported. In fact, all manual configuration for an application pipeline is converted to a kind of configuration format that will be handled in the backend. You can directly provide the pipeline configuration (deploy template) to Spinnaker. We could put this to our document backlog work items.
Would you not just try to have AppService for Linux and docker compose to deploy Spinnaker?
Would this so that you do not have to deal with Kubernetes? We have not looking into this but it its an interesting suggestion.