Tools

Devops from scratch

The common tools are the open-source tools\libraries\design principles which could be leveraged to build the cloud services. Even though the cloud reflects a bigger terminology, the basic components like provisioning, deployment, configuration management, scalability, pipelines like queueing, consumer-producer remains common. The understanding of these tools around 'purpose & feature' helps in stitching the optimal infrastructure design.

Microservices

Apart from selecting the right infrastructure tools, the next critical section is to expose RESTful microservices with json.

The Cloud Services with RESTful APIs could be developed using Python Pyramid.

With high frequency of python library availability for lot of infrastructure tools, and python in-itself having wide range of libraries and framework, Python becomes one of obvious choice for writing any cloud services or components.

The Python Pyramid is more flexible both for small and big projects and is seen as best fit among available Python frameworks.

What is REST

http://rest.elkstein.org/2008/02/what-is-rest.html

http://www.restapitutorial.com/lessons/whatisrest.html

http://www.tutorialspoint.com/restful/restful_introduction.htm

What is JSON

http://www.w3schools.com/json/

http://developers.squarespace.com/what-is-json/

http://www.secretgeek.net/json_3mins

Learning Python

http://www.learnpython.org/

This would help in learning basic python along with hands-on.

Learning Python Pyramid framework

Te Python Pyramid is a framework to develop a RESTful service.

Installing Pyramid - http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/install.html#installing-chapter

Build 1st Application - http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/firstapp.html#firstapp-chapter

Examples - http://docs.pylonsproject.org/projects/pyramid-cookbook/en/latest/index.html#pyramid-cookbook

Pyramid framework - http://docs.pylonsproject.org/projects/pyramid/en/latest/

Packaging

Basics of debian packaging for Ubuntu

Control files and their fields

Declaring relationship between packages-dependenciesdepends,postinst, postrm

Package maintainer script and installation procedure

Upstart - Modern init daemon for Ubuntu

Upstart code-book

Provisioning

Image Packaging Tool Packer

Container Provisioning Docker

Hybrid Provisioning Terraform

Misc Tools

Service Discovery Consul

Coordination Service Zookeeper

Health Check Distributive

Log analysis\ Analytics Elastic

Replicated Log Service BookKeeper

Messaging Systems

ActiveMQ

Camel

Kafka

RabbitMQ

Stream Processing Systems

Samza

Storm

Libraries

Websockets

Loadbalancers

The cloud basic requirement of hot reload is served by both of these. It means existing connections remains intact which new configuration is applied and loadbalancer config gets reloaded.

HAProxy

Nginx

The AWS has inbuilt loadbalancer ELB which is mostly leveraged for Availability Zones and Regions loadbalancing.

Configuration Management

These configuration management tools are extremely powerful in deploying, configuring, managing, maintaining, a server machine cluster.

Puppet, Chef, Ansible, Salt

Chef

- Chef also use a D.S.L but based on the Ruby syntax.

Puppet

- Puppet use a D.S.L (Domain Specific Language), a mixte between JSON and Ruby.

Salt

Ansible

Introduction

Documentation

Galaxy

Best Practices

References

Chef Vs Puppet :

- https://pierrerambaud.com/blog/devops/chef-vs-puppet

- http://www.scriptrock.com/blog/puppet-vs-chef-battle-wages

Moving away from Puppet to Salt

- http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/