Now that more and more customers are using Leroy, we are seeing how many problems Leroy is solving. Here is a nice list of problems and answers we commonly see, we hope to see more problems so we can try to solve them in the best way possible !!
Problem: I have an environment in a secured “red zone” which may not be accessed by anything from the outside. This environment is accessed by millions on the internet with many skilled folks always trying to hack in. How do I deploy to this environment without risking its security ?
Answer: Leroy solves this problem and will force the security problem over to the network. If the network is not secured, you lose anyway. However, if the network is secured and you allow your hosts to connect out of the firewall to trusted IP running a Leroy controller to pickup artifacts, you can reliably and securely perform the deployment across security zones since the trigger is still within the red-zone. Basically all of your hosts that you want to deploy to will be reaching out to your secured controller IP address, waiting for it to come online via TCP. The controller is your achilles heel because if the controller is hacked then all the hosts in the deployment are compromised. That’s okay though, because there will always be some part of any deployment apparatus that is less secure than others, in this case we’re controlling where that is and know about it, so we can take measures to focus efforts to lock things down on the controller. The controller can also be configured to only accept connections from valid hosts it deploys to and we can even take the controller completely off the network while deployments are not occurring.
Problem: I have developers making configurations for their application but are not defining the proper values for their configurations in all environments, causing deployment errors at unwanted times. How do we solve this ?
Answer: Leroy’s configuration management feature completely solves this problem as well. It is simple to write a script that will iterate recursively through files and folders and do some property value replacement. We’ve been doing this with Ant for a long time. However, Leroy allows you to define properties on a global, environment or host level and enforces the idea that if you define a property in one environment, you must define them in all environments or define a global value. Leroy also does not allow properties to be used in configurations that have no definition. There is a long list of other tests that are performed when generating configurations, but at the end of the day when developers make changes to Leroy configurations and re-generate them, if these rules are violated, we’ll see the failure ahead of time and force the issue to be fixed or the deployment will be prevented from starting.
Problem: After I start a deployment it will fail in the middle because one of my hosts was never online.
Answer: Leroy requires all hosts in an environment to be online, be responsive and have the correct version of the agent binaries. If the agent binaries are the wrong version, the controller will automatically update it. This works even if the agent is running as a windows service, or as a linux daemon all the same. If a particular agent(s) are not online, the deployment will fail before any changes are made to any hosts.
Problem: I mistakenly run my deployment while it is already running, but my tooling is not aware of this and starts creating a parallelized mess. How can I lock the state of deployment in progress or not so my tool will quickly fail and doesn’t allow me to run multiple deployments at once ?
Answer: A leroy agent can only perform one deployment at a time to a given environment. When an agent is not deploying, it is polling, when it is not polling it is deploying or trying to handshake. With this, it is impossible to deploy a workflow to the same environment more than once at the same time, because the agents will not check in the second time around. If it is desired to have multiple deployments on 1 host, then simply install another agent on it, perhaps as another user, and definitely in another folder! Since agents are so lightweight, this provides no significant overhead.
Problem: My environment has many operating systems and I need a unified deployment system, even if that OS doesn’t support Java or a particular version of Java.
Answer: Leroy can be built to work on almost any operating system and doesn’t need Java, python, or ruby and her sisters.
Problem: We have a large dev ops team and we need to be able to use source control to manage our deployments so that the deployment can be branched just like the code is.
Answer: Leroy allows you to store its configuration in source control. Execution of a deployment consists of checking code out of the desired branch / revision to a folder and executing the leroy controller with the argument –leroy-configuration-root [DIR] specifying the folder that contains your Leroy configurations.
Problem: We want both our development team and our system administrators to be able to work on the deployment without having to learn a complex new tool, some new language, or have some new server.
Answer: Leroy completely solves this problem. Leroy doesn’t require you to learn any new language or convention. Even if you have no experience with Leroy, you just need to have the basic understanding of what your deployment needs to do. (Copy this file here, install this, run this script). You do not need to play with a yaml, you do not need to be a chef or marionette some puppets. You just need to understand basic XML and reference these tags: http://www.leroydeploy.com/administration-guide/. Many customers on the fast-path enjoy using our devops consulting to on-board their applications for automation and then their team takes over the management of it. No need to hire people with a special skill set. In-fact, any skilled software engineer that understands the deployment workflow on a discrete level can jump right in and use whatever programming language of choice, native scripting, or take advantage of the built-in python engine in each agent 🙂
Problem: We want a free tool that has affordable support if we need it.
Answer: Leroy is free to use for any legal and correct use under the creative commons license. Support is provided free for defects. Levels of support are as follows:
- JIRA ticket based support in an assisted self-service model
- JIRA and remote hands for on-boarding and supporting the customer’s deployments in prod and non-prod
- Zero-touch full service managed and insured application deployments
- On-site full-time staff augmentation
Tell us your problem