Tools
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
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
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
Stream Processing Systems
Libraries
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.
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
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/