Custom deploy process at Utab
Hi! I’m Ilya Sher. This guest post will describe the deploy process at Utab, one of my clients. Background – system architecture summary Utab uses the services architecture. Some services are written in Java, others in NodeJS. Each server has either one Java application or one NodeJS application. The production environment uses (with the exception of load balancing configuration) the immutable server approach. Requirements for the deploy process The client specified the following requirements: Support for staging and production environments Manually triggered deploy for each of the environments Health check before adding a server to load balancing in production environment Option to easily and quickly rollback to previous version in production environment Simple custom tools are to be used ( no Chef/Puppet/… ) Solution background The Utab’s deploy and other scripts were made specifically for the client. Such custom scripts are usually simpler than any ready-made solution. It means they…
git submodules vs. google’s repo tool
I was recently asked by a customer to outline the pros and cons of using git submodules vs. google repo tool to manage multi-repository integrations in git. There are a lot of articles on the internet bashing each of the tools, but in our opinion – most of it comes from misunderstanding the tool’s design or trying to apply it in an unappropriate context. This post summarizes the general rules of thumb we at Otomato follow when choosing a solution for this admittedly non-trivial situation. First of all – whenever possible – we recommend integrating your components on binary package level rather than compiling everything from source each time. I.e. : packaging components to jars, npms, eggs, rpms or docker images, uploading to a binary repo and pulling in as versioned dependencies during the build. Still – sometimes this is not an optimal solution, especially if you do a lot…
Jenkins 2.0: With Jenkins Creator – Kohsuke Kawaguchi (KK)
Hi all! We really hope you’ve already registered to the Jenkins User Conference Israel which was SOLD OUT yesterday. But even if you haven’t – there’s still a chance to hang out with Kohsuke Kawaguchi – the father of Jenkins himself – and other Jenkins fans at a meetup the good people at JFrog are organising the day after the conference. Here is the link: http://meetu.ps/e/BHkfn/jvVGM/d Right now there are still 22 slots available. Go grab yours. Keep delivering!
Discount tickets to Jenkins User Conference Tel Aviv
We are happy to announce that @antweiss will be speaking about the future of software delivery at JUC Israel 2016 We have a couple of 100 NIS discount tickets to the conference and ticket sale is closing tomorrow! The first two folks to comment on this post will get the discount code. Type them comments!!!
Microservice Development Toolkits part 1 – Otto
Otomato is happy to announce we’re collaborating with Codefresh on their great continuous delivery for docker containers solution. (If you’re using docker in your development/production or only thinking of doing it – go check out http://codefresh.io. ) Our collaboration is mostly focused on industry analysis and docker development ecosystem research with the goal of identifying pain points and providing effective solutions. With quite a bit of evangelism on top. The linked post is the first fruit of that. https://codefresh.io/microservice-development-workflow-otto/
Have you heard of Wajig?
We love productivity tools of all kind and believe that software should be making our lives easier. For some reason many software products we have to work with don’t really feel like their creators agree. They may have great architecture, reliability and functionality but it looks like usability is snapped on as an afterthought. One example of this is apt – the Advanced Packaging Tool used on Debian/Ubuntu Linux. While a great tool in itself, for some reason it provides a number of different user interfaces for different purposes. To install/remove/upgrade/download a package there’s the apt-get tool: apt-get is a simple command line interface for downloading and installing packages. The most frequently used commands are update and install. Commands: update – Retrieve new lists of packages upgrade – Perform an upgrade install – Install new packages (pkg is libc6 not libc6.deb) remove – Remove packages …
Jenkins User Conference Israel 2016 Announced
Reposted from the official event page: Jenkins User Conference hits Israel fifth year in a row! Come learn how to optimize Jenkins across the software delivery process! With more than 100,000 active installations and more than 1,000 plugins Jenkins is no doubt a leader in the CI and CD domain. Our 2015 Jenkins User Conference in Israel drew more than 700 developers, and was so successful that this year we know it will be a blast! The Jenkins User Conference focuses on the use of Jenkins for continuous integration (CI) and continuous delivery (CD) as the fundamental best practice for enterprise software delivery. Our presenters are experienced Jenkins developers, build managers, QA, DevOps practitioners, IT managers/executives, architects and IT operations who are luminaries within the Jenkins community. They represent the many organizations around the world that are leveraging the use of Jenkins within the software delivery lifecycle. We welcome you…
DevConTlv update
Just went to DevConTLV pre-conf speaker dinner. Had a lot of fun talking about tech, life and business with some of the finest minds in the industry. Now – it figures I was wrong regarding the conference format. This one isn’t going to have beers and live music… But! It will have great speakers who are going to rock the stage with talks on cutting edge software development tools and metodologies. On my part I will do my best to keep the audience entertained. So if you want to be a ninja – make sure to attend.
Service-Oriented Collaboration
This post is yet another take on how we should be creating software together. I’m now working on a book named “Coding Together” that will be reviewing all the challenges of collaborative software delivery and the ways of overcoming them for maximum creativity and efficiency. As I’m gathering materials – my understanding not only deepens but shifts – complex systems viewed holistically definitely cannot be analyzed as a sum of their parts. Two years ago I gave a few talks and wrote about the importance of enabling self-service principle in a smart and secure way for smooth and effective value delivery in software engineering organisations. I still hold a strong belief in self-service builds, tests, deployments and infrastructure provisioning. All these can greatly enhance the rate of innovation and the quality of produced software. If done correctly, that is… But it can be quite disastrous when this self-service concept implementation isn’t…
Cloud-aware, provider-agnostic monitoring
I’ve never had to deal so much with monitoring. I’ve established a few Nagios instances in earlier days, I’ve used Amazon CloudWatch, Pingdom and New Relic lately for cloud setups, but I don’t consider myself a monitoring expert. At Otomato we are currently mainly focused on software delivery processes, on how to get those bits from dev machines and into production in the most effective and agile manner without compromising quality. Monitoring, although an important part of running software and assuring successful value delivery (should I say an important part of DevOps?) , has been largely out of our scope. But now we are working on a new project where we had to deal with the full-full cycle – building, deploying and running. Moreover – the requirement was for cloud-provider-agnostic solutions as this is going to be a multicloud setup. And with that came the most exciting part of any project – the research!…