+ All Categories
Home > Technology > Continuous Integration from server to cloud

Continuous Integration from server to cloud

Date post: 21-Nov-2014
Category:
Upload: paolo-dincau
View: 265 times
Download: 2 times
Share this document with a friend
Description:
Continuous Integration (CI) is a practice every team should adopt in order to solve integration problems easily and detect defects and errors early. Using CI we can growth solid software by giving greater confidence to the developers and better products to the final customers. In this slides we will briefly introduce what CI is and we will discuss some of the many different solutions we can employ when it comes to setting up a CI pipeline for our projects.
35
Continuous Integration from server to cloud
Transcript
Page 1: Continuous Integration from server to cloud

Continuous Integrationfrom server to cloud

Page 2: Continuous Integration from server to cloud

Agile Software Developer at XPeppers

Erlang addicted since 2009

Twitter: @pdincau

Paolo D’Incau

Who am I?

Page 3: Continuous Integration from server to cloud

Contents

IntroIn House

CI aaSDrone

Conclusions

Contents

Our road to CI...but what is CI?Your dear old blade serverTravis and friendsThe new kid in townQuestions & maybe mild criticism

Page 4: Continuous Integration from server to cloud

Once upon a time...

A team composed by several developers with strong passions, different cultures and skills

Multiple projects ranging from mobile applications to complex backend applications

Page 5: Continuous Integration from server to cloud

How can we further improve the quality of our work to get a better product?

Continuous Integration to the rescue!

Retrospective question

Page 6: Continuous Integration from server to cloud

CI: Pragmatic definition

Codebase is owned by several developers that continuously integrate their changes to a common version control system.

For each integration the system runs a predefined set of tasks automatically; these tasks may vary from running all the tests to building all the components

Page 7: Continuous Integration from server to cloud

confidence+

automation=

better product** with attitude and agreement

CI for me is...

Page 8: Continuous Integration from server to cloud

Confidence

Fast feedback for my work

Easy merge of changes

I can always download a working copy of codebase

Page 9: Continuous Integration from server to cloud

Automation

Using IDE is not automating

Not only unit tests but also infrastructure

Reduce human error

Page 10: Continuous Integration from server to cloud

Better product

Less time spent in fixing

Integrate now and not later

“Pay me now or pay more later”

Page 11: Continuous Integration from server to cloud

confidence

+

automation

=

better product*

* with attitude and agreement

CI for me is...

Page 12: Continuous Integration from server to cloud

Now you know what CI is, but...

Page 13: Continuous Integration from server to cloud

CI is obviously not...

“WELL, IT BUILDS ON MY MACHINE”

“PROBABLY YOU DON’T HAVE VERSION ABC OF XYZ”

“I SWEAR, TEST PASSED ON ECLIPSE”“IT IS NOT AN ERROR, IT’S JUST A FAILURE”

“I PUSHED WITHOUT RUNNING THE TESTS”

“WHEN WAS THIS FEATURE INTRODUCED?”

“MY MACHINE IS NOT CONFIGURED”“THE BUILD HAS BEEN BROKEN FOR 3 DAYS”

“MY TEST DB IS NOT CLEAN” “DO YOU HAVE DEFAULT MAVEN PROFILE?”

“INTEGRATION IS LAST PART”

Page 14: Continuous Integration from server to cloud

Starting a new project?

Page 15: Continuous Integration from server to cloud

True story I:

“Full Metal Blade”

Page 16: Continuous Integration from server to cloud

In-House CI

Freedom to install anything we need

Full control over the build pipeline

Good if you have security constraints

Page 17: Continuous Integration from server to cloud

In-House CI

Maintenance is up to you!

time + knowledge + patienceBut well... Murphy’s law is behind the corner!

Page 18: Continuous Integration from server to cloud

In-House to the cloud

Our blade server doesn’t scale very much...

...why don’t we go to the cloud?

Scalable system obtained with little effort

Page 19: Continuous Integration from server to cloud

Jenkins CI

Formerly knows as Hudson Battle tested over the years

Many plugins available...

Page 20: Continuous Integration from server to cloud

A kid’s dream...

Page 21: Continuous Integration from server to cloud

True story II:

“In my other life I am a developer”

Page 22: Continuous Integration from server to cloud

CI aaS

Page 23: Continuous Integration from server to cloud

Travis CIFirst CI aaS in town

Easy integration with GitHub repos

Configuration takes minutes

On push builds starts

Page 24: Continuous Integration from server to cloud

Travis CIConfiguration obtained by adding .travis.yml file

to your repository

Page 25: Continuous Integration from server to cloud

Travis CI - Pros

Free for ∞ public repos and collaborators

Great variety of languages

Supports datastores and services

Page 26: Continuous Integration from server to cloud

Travis CI - Cons

Free plan means no private repos...

... and no priority on build pipeline

Page 27: Continuous Integration from server to cloud

Shippable CI

Startup founded in 2013

Supports both GitHub and Bitbucket

Configuration similar to Travis’ one

Page 28: Continuous Integration from server to cloud

Shippable CI

Page 29: Continuous Integration from server to cloud

Shippable CI - Pros

Up to 5 private repos for free

New stuff continuously added

They want your feedback

Page 30: Continuous Integration from server to cloud

Shippable CI - Cons

Probably still not mature as Travis is

Sometimes behaves in unexpected ways

Page 31: Continuous Integration from server to cloud

Very small story:

“Can we Go-lang to Docker?”

Page 32: Continuous Integration from server to cloud

Drone CI

Open source project

Prevents configuration headaches

Based on Docker

Page 33: Continuous Integration from server to cloud

Linux containers are really great!

Sometimes slower than other CIs

Collapsed mails made my crazy!

Drone CI

Page 34: Continuous Integration from server to cloud

Conclusions

Much more than a bunch of tools

Automation is essential

Experiment and see what fits your needs best

Page 35: Continuous Integration from server to cloud

Thank you!

Questions???


Recommended