Sunday, July 1, 2018

Continuous Integration Menggunakan CircleCI

Pada blog post kali ini, saya akan membahas mengenai salah satu continuous integration tools, yaitu CircleCI. Sebelum membahas lebih dalam mengenai CircleCI, saya akan membahas apa itu continuous integration terlebih dahulu.

Apa itu Countinuous Integration ?
Continuous Integration adalah sebuah software development practice. Salah satu ciri khas dari CI adalah frekuensi dari code integration yang dilakukan cukup sering. Tujuan utama dari seringnya frekuensi code integration tersebut adalah mengidentifikasi problem yang dapat terjadi pada saat proses development lebih awal, sehingga problem tersebut dapat dicegah. Dengan lebih sering melakukan code integration, update terhadap code menjadi lebih mudah untuk dimerge dan diintegrasikan. Di dalam CI, terdapat juga step testing, untuk memastikan code sudah berjalan dengan baik. Setelah lolos tahap testing, aplikasi akan di build, dan kemudian di deploy ke server.

Skema Continuous Integration



CircleCI


CircleCI adalah salah satu continuous integration tools yang bersifat cloud based. Namun tidak menutup kemungkinan CircleCI juga dapat diinstall di private server.

Apa saja fitur dan kelebihan dari CircleCI?
CircleCI memiliki fitur-fitur yang membedakannya dengan continuous integration tools yang lainnya.
  • CircleCI dapat dipakai scara gratis dan berbayar.
  • CircleCI adalah CI tools yang bersifat cloud based.
  • CircleCI mengotomasi proses build, test, dan deploy.
  • Dapat menggunakan SSH mode untuk mengakses container.
  • Rest API. Kita dapat mengakses project, build, dan artifact.
  • CircleCI menyimpan requirements installation.
  • Support language Ruby, Python, Node, Java, PHP, RoR, DJ, JavaScript.
  • Support database MySQL, MongoDB, PostgreSQL, Cassandra, Riak, Redis, SQLite, Solr, CouchDB, ElasticSearch, Neo4j, Couchbase, Lucene, Sphinx, ThriftDB, Memcache.
CircleCI juga mudah dan cepat untuk disetup dan configure. Karena CircleCI bersifat cloud-based, maka tidak memerlukan server khusus untuk menjalankannya. Namun, hal tersebut selain menjadi kelebihan, juga dapat menimbulkan masalah jika terjadi problem pada cloud CircleCI itu sendiri.


Jenkins


Jenkins juga merupakan salah satu continuous integration tools. Namun, Jenkins tidak bersifat cloud based (tidak menutup kemungkinan untuk diinstal di cloud server). Dari segi popularitas, nama Jenkins lebih banyak diketahui orang di dalam bidang CI. Sama seperti CI lainnya, dengan menggunakan Jenkins, kita dapat mengotamasi task seperti build, test, dan deploy.

Apa saja fitur dan kelebihan dari Jenkins ?

  • Jenkins memiliki banyak sekali plugins yang dapat mengintegrasi Jenkins dengan banyak tools dalam untuk membantu proses build, test, dan deploy.
  • Karena memiliki banyak plugins, Jenkins memiliki banyak kemungkinan yang tidak terbatas.
  • Memungkinkan untuk launching build dengan berbagai kondisi.
  • dan masih banyak kelebihan lainnya.
Kelebihan dari Jenkins terletak pada banyaknya plugins yang dapat digunakan. Jenkins juga dapat dicustomize sesuai dengan kebutuhan. Jenkins juga bersifat open-source dan gratis.

Namun jika dibandingkan dengan CircleCI, meskipun Jenkins bersifat gratis, Jenkins membutuhkan server dan team DevOps untuk mengkonfigurasi dan memaintain Jenkins. Hal tersebut dapat menjadi cost. Proses konfigurasi dan kostumisasi juga dapat memakan waktu.


Sekian pembahasan saya mengenai CircleCI, semoga postingan ini dapat bermanfaat.

Referensi :
  1. https://en.wikipedia.org/wiki/Unit_testing
  2. https://docs.microsoft.com/en-us/azure/devops/what-is-continuous-integration
  3. https://hackernoon.com/continuous-integration-circleci-vs-travis-ci-vs-jenkins-41a1c2bd95f5
  4. https://code-maze.com/top-8-continuous-integration-tools/
  5. https://blog.takipi.com/jenkins-vs-travis-ci-vs-circle-ci-vs-teamcity-vs-codeship-vs-gitlab-ci-vs-bamboo/#1




No comments:

Post a Comment