Achieving Continuous Delivery. Part 1. What are the CI/CD?

This will be the start of the series of blog posts with the title “Achieving Continuous Delivery”, which I plan to write about in the upcoming few months. Topics I plan to cover are:

  1. What is the difference between CI and CD? Two meanings of CD. What is the business value in it? The tooling we will be using in the series
  2. Dockerization of a basic application
  3. Dockerization of an application, which has external dependencies (we will have just a database)
  4. Build service preparation. I will definitely cover TravisCI and probably some others for a comparison
  5. Preparing Staging and Production environments, using Heroku and integrating them into the CI pipeline
  6. Getting closer to the Continuous Delivery with feature toggles

After that, if I will still have an interest, I will also cover the AWS way of going from classical ELB+EC2 to the containerized approach, but won’t commit for this for now. Also, as you know, along the way people tend to change their mind and forgotten steps may appear or in the opposite, some steps will be too easy, so they will be merged with one another. Otherwise, all our estimations would be perfectly precise %)

However, let’s get started with the definitions, to understand, what we’re trying to tell and achieve when we’re talking about CI/CD.

Continue reading

Developing a database. Part 1. Why may you need indexes and how does Hash index work.

I plan to write a series of posts about databases internals. In order to make it easily perceivable, I’ll be writing a NoSQL DB from scratch in Ruby. No doubts that it’s not the best fit for database development, but it’s extremely readable and will help us a lot. This one will be about why may you want to have an index and what is a Hash index.

UPD. I decided to not continue this series because it takes too much effort to investigate deep enough to explain, but it had got much fewer views and likes than more applicable ones. Probably will return to this topic once, but not now.
Continue reading

HOWTO: Create and integrate AWS Lambda function using Terraform

If you followed my 3 my previous posts – you already created your first Amazon Lambda function, made it able to write to DynamoDB and be accessible from the outside world, using API Gateway.

In this post, I will guide you how to implement the same but without touching the AWS Management Console, which is barely understandable and very volatile by the interface. Instead, we will be using Terraform, which I also covered in the past blog post.

Let’s get started:

Continue reading

Amazon DynamoDB introduction

This post is the second one in series about Amazon Web Services first steps howtos.

I believe that traditional guides like AWS Certification preparation and Linux Academy don’t give the information in proper order, so here I give it in the format and the way how I give it to my colleagues at Babbel.

This post gives you an introduction to the DynamoDB and prepares a ground for the next practical lesson.

Continue reading

Introduction to Terraform. Terraform + Github

Not a long time ago I had no idea about what is the tool named Terraform. It was just beyond my bounds of interests and problems. But a month ago I changed a company and then had to deal with it. And guys, it’s wow. It’s so amazing thing so I even started liking DevOps job.

In few words it’s a tool to do infrastructure as a code. As they say on their website “Terraform enables you to safely and predictably create, change, and improve production infrastructure”.

In this post, I’ll cover why may you (as a developer or a DevOps) need it and how to get started. Getting started will be not just a hello world, but a real example, you can try right away.

Continue reading