Image for post
Image for post

Last year I was working on improvement of deployment pipelines for a large live application, which has as usual plenty of new features and bugs. And it’s very important in such projects to consider development flows and choose a right one according to the product and business needs. Choosing a wrong strategy can cause not only losing of efficiency but also can let dramatic bugs leak to the production.

Since we speak about pipelines, it also means not only CD but CI. But the CI topic usually boils down to the simple fact: the bug must be revealed as soon as possible. Which means: adapt Testing Pyramid and integrate the tests to your deployment pipelines. …


Image for post
Image for post

Prehistory

In the good old days, when we had only Jenkins out there for deployment, everything was clear: take it, install on the server machine, configure it and if there is not enough functionality use plugins or write your own.

Things got to change since Travis in 2013 has been released. Travis aimed to bring CI/CD to Github projects suggesting a new approach: you just need to put a .travis.yml file to the root of your projects with instructions for build/deployments/tests.

The approach was called Pipeline as Code and was so successful, that very quickly became a standard for CI/CD processes. In 2016 Jenkins released its second version with support of Jenkinsfile — analog of .travis.yml. And with the growth of Gitlab and its wonderful SaaS platform (which, of course, implemented PaC), everyone has happily moved their pipelines to Gitlab. That’s completely understandable: many things become automatically managed and simple. …


Image for post
Image for post

If you work with clouds for a while, you probably know that “I’m definitely missing something” feeling. There can be some not terminated EC2 instance still running, some unjustified settings that you forgot to set back, some test buckets are not deleted, some not covered security issues. All of that can lead to extra costs (sometimes quite sufficient) or vulnerability of the system. So let’s consider how we could stop worrying and enjoy the cloud life.

Cloudformation

Always using Cloudformation for any kind of resources is a known good practice. …

About

Roman Krivtsov

Cloud Architect at thinkport.digital. AWS, Big Data, DevOps

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store