Starting To Automate Software
Submitted By Jenkins User Alberto Conchas Jiménez
Mexico-based DevOps engineer saves time and money for international clients.
Organization: Tiempo Development, https://www.tiempodev.com
Programming Language: Ruby
Platform: Docker or Kubernetes, Linux
Version Control System: GitHub
Build Tool: Rails server command
Team: Ricardo Magaña Villalba, Data Scientist, Yotepresto
Community Support: Jenkins.io websites & blogs
Changing a legacy system to one that provides
continuous integration with the help of Jenkins.
Background: I work for a company that is widely recognized as one of the leading software engineering organizations. We design, build, and deploy software for clients internationally. Working for a fintech client, we recently were looking to create a robust CI/CD process and achieve zero downtime — but it also needed to have excellent security limits.
Goals: Migration for a cloud solution like Codeship+ virtualized instances to Jenkins and containers.
Solution & Results: We did a lot of research about which automation tools would be best for us to use, and in the end, we selected Jenkins. Our choice depended on the high level of customization it offers and because we can have the Jenkins server inside our architecture. This allows us to achieve a higher level of networking security; it isn’t necessary to open services to the world or share credentials to start automating.
One of the biggest challenges when changing an existing solution to a newer one is that you need to achieve similar functionality to the older one before migrating and then growing from that point onward. During this process, we learn a lot about plugins, Jenkins agents, and security. When we achieved that similar functionality, the second challenge was to get the developer’s acceptance. This step was one of the longest because we needed to help the developers migrate their apps to containers. Still, before that, we start creating more sophisticated implementations and start thinking in zero downtime deployments.
When we achieved an entire automated development process, we also started a new automation phase. Then we were able to see how we can also automate things related with security, branching and also infrastructure cost savings.
Key capabilities used:
- Jenkins Git webhook plugins
- Blue Ocean for dashboard visualization improvement
- Jenkins implementation using helm charts
- Custom agents containers to apply our own build and test stack
- fast recovery process from errors
- faster feature delivery
- 10 times faster build and test process
- big automation possibilities
- strong security at user and networking level