Langsung ke konten utama

DevOps

DevOps is Software Development and IT Operations

  • Dev-Team:
    • Delivery features quickly
    • Goal is speed
  • Ops-Team:
    • Maintain stability
  • DevOps Team:
    • Delivery features quickly
    • Maintain stability
    • Goal: Speed
    • Shared Goals
    • Time to Market

DevOps Culture

  • Automated Build
  • Automated Integration
  • Automated Testing
  • Automated Deployment
  • Parallel Processing
  • Highly Efficient Teams
  • Robust Automation Process
  • Automation Leads to Consistency

Build Automation

Continuous Integration

  • Frequently merging the code.
  • Build then run unit test. Upon failure notification is sent to the Team
  • Benefit:
    • Ensure every one's changes are integrated.
    • Catch bugs
    • Reduce merge conflict
  • Tools:

Continuous Deployment

  • Is the practice of frequently deploying small code changes

Continuous Delivery


Infrastructure as Code (IaC)

  • Managing and provisioning infrastructure using code
  • Use code to deploy infrastructure of any size
  • Provisioning new resources / modify existing resource using code
  • Consistent deployment
  • Self documenting
  • Replicate environments to Test, QA and Prod

Continuous Management

  • Doing the changes in maintainable way
  • Minimizing the configuration drift
  • Controlling the configuration / deployment
  • Configuration management keep all servers as consistent state
  • Identity the state of infrastructure

Monitoring

  • Quickly response to problems
  • Collect system metrics
  • Represent data in a presentable maner
  • Reel time monitoring and notifications
  • Assist in troubleshooting

Microservices

  • Concept of a software architecture
  • Will break an application into a collection of small but loosely coupled services
  • Interact with each other and with the application overall using a stable and well defined API's, and that means that way are dependent an another
  • Is all about breaking up large application into individual functional components

Build Automation and Continuous Integration Tools

  • Build Automation is automated process of building the code for deployment. Example tools:
  • Continuous Integration is practice of continuously merging the code into a single branch or the main line. These tools usually consist of a server that does continuous integration and integrates with the source code. Every time code changed in the source control, the continuous integration server will respond by existing an automated build. Continuous tools example:

Configuration Management Tools

  • Configuration management means managing and changing the state of pieces of infrastructure is a consist and maintainable way, usually using automation
  • Most popular configuration tools:

Virtualization and Containerization Tools

  • Virtualization means managing resources by creating a virtual layer on top a physical machine
  • Containerization is the packages beyond virtualization. Containers are light weight, isolated packages that these contain everything that is made needed to run a pieces of software. They require very few resources as compared to a virtual machine
  • Example tools is a docker

Monitoring Tools

  • Infrastructure monitoring, focus on data related to the health of infrastructure, things like CPU usage, memory usage, networking statistics. Example tools:
  • Application Performance Monitoring (APM)
    • Focus on the performance and stability of application, that are running on infrastructure. Take a look at things like response time for web application and also the application logs. Example tools:

Orchestrating DevOps

  • Orchestration means automation that supports process and workflow, particularly that provisioning of resources. Orchestration lets us do things like scale up, scale down an application base request and that means assigning more resources to them or taking away resources when they are no longer needed
  • Autoscale application based on usage
  • Create self healing systems.
  • Orchestration tools:

DevOps and The Cloud





Komentar

Postingan populer dari blog ini

Pengujian Perangkat Lunak

Pengujian perangkat lunak merupakan suatu investigasi yang dilakukan untuk mendapatkan informasi mengenai kualitas dari produk atau layanan yang sedang diuji. Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkat risiko pada implementasinya. Teknik-teknik pengujian mencakup, namun tidak terbatas pada, proses mengeksekusi suatu bagian program atau keseluruhan aplikasi dengan tujuan untuk menemukan “ bug ” perangkat lunak. Bug merupakan suatu kesalahan desain pada suatu perangkat keras komputer atau perangkat lunak komputer yang menyebabkan peralatan atau program itu tidak berfungsi semestinya. Bug umumnya lebih umum dalam dunia perangkat lunak dibandingkan dengan perangkat keras. Pengujian perangkat lunak merupakan suatu tahapan penting dalam pembangunan perangkat lunak. Pengujian dilakukan dengan cara mengevaluasi konfigurasi perangkat lunak yang terdiri dari s...

Alur Pembuatan Program

Seorang programmer tidak melakukan pembuatan dan pengkodean program secara begitu saja, namun mengikuti perencanaan  dan metodologi yang terstruktur yang memisahkan proses suatu aplikasi menjadi beberapa bagian. Berikut ini langkah – langkah sistematis  dasar dalam menyelesaikan permasalahan pemrograman : 1.  Mendefiniskan masalah 2.  Menganalisa dan membuat rumusan pemecahan masalah 3.  Desain Algoritma dan Representasi 4.  Pengkodean, Uji Coba dan pembuatan dokumentasi

Ruby on Rails - Sebuah Ringkasan

David Heinemeier Hansson menciptakan Ruby on Rails dengan prinsip Convention over Configuration, yaitu kerangka kerja yang meminimalkan kebutuhan konfigurasi rumit. Rails dirancang dengan konvensi bawaan yang kuat sehingga memudahkan pengembangan dan perubahan aplikasi. Rails bersifat open source dan dibangun dengan bahasa pemrograman Ruby, yang terkenal sederhana dan ekspresif. Rails memungkinkan pengembangan cepat, misalnya menambahkan resource baru melalui RESTful routes dan tampilan templated dengan mudah. Rails memiliki komunitas besar dan berpengalaman, sehingga solusi mudah ditemukan melalui Stack Overflow, GitHub issues, blog, tutorial, maupun buku. Dengan dukungan tersebut, masalah biasanya bisa cepat teratasi hanya dengan pencarian di Google. Rails Conventions Rails menggunakan pola MVC (Model-View-Controller) untuk mengatur arsitektur aplikasi. Model Berhubungan langsung dengan database melalui ActiveRecord ORM . ...