Python is one of the most popular language today , it is dynamic, general purpose programming language, it has a long history of over few decades but in recent time it has gained enormous attention specially with cloud computing.
Python is not only used for cloud application but with huge module library it is used all sort of applications such as desktop application , scripting and automation , web application , machine learning , data analysis and many more.
One of the recent projects that has raised Python value is OpenStack Cloud , this project is written in Python and utilizes libraries to integrate different part of the Cloud. This has raised the value of Python in Enterprises such as Facebook , Microsoft , Google and Amazon to name a few.
Though Python is highly in demand there are some advantages and disadvantages of using Python and it is good to understand those before considering Python for your next project.
Pro’s
Easy Python Syntax
Python was designed keeping simplicity in mind , its code is simple and easy to read as compared to other high level languages such as Java , C++ etc.
Object Oriented
Python is Object oriented , one of the main concept that makes it is a great choice is concept of objects, everything is an object including all the basic data types such as strings and integers are considered object and developer can apply methods on these objects.
Libraries
Python has a huge collection of libraries that makes the life much more easier , many of the task can be performed with very few lines of code. There are two type of libraries , Python Standard Library and 3rd Party libraries developed by Vendors for there own products.
Python is extensible
Python code can integrate with C / C++ and that makes it very extensible language , basically Python was used mainly for system integration in the past but in recent years it has developed into a more robust platform.
Portable
Languages like C and C++ the code varies from platform to platform example libraries for Windows and Linux might differ but that is not the case with Python , here you code once and you can run it anywhere. This is called write once and run anywhere.
Interpreted
Python code get executed Line by Line and thus debugging is easier and simpler
Open Source , Community support
Python is an open source language and it has a huge community support , more and more people are using Python and its support is increasing as well , many Enterprises have jumped in to adopt Python and that is increasing community greatly.
Con’s
Speed
Python as compared to low level languages like C / C++ is slow due to the structure, Python code is compiled into byte code at runtime while the C / C++ code is compiled before run-time.
Memory Utilization
for memory intensive application Python is not a good choice , the flexibility of data-types brings overhead in form of memory consumption.
Threading Issues
Multi-threading is another area where Python does not really perform as compared to other High level languages like Java , this is due to Global interpreter lock (GIL) which allows only one thread to execute at a time. As a result, single-threaded application perform better with Python.
Mobile Development
As compared to Java , Python is not greatly used for Mobile applications and thus does not have great support for Mobile devices. It is easy to use Python for mobile purposes but configuring require some extra effort.
Python is not native to mobile environment and it is seen by some programmers as a weak language for mobile computing. Android and iOS don’t support Python as an official programming language. Still, Python can be easily used for mobile purposes, but it requires some additional effort.
Conclusion
Python is ideal for creating tools , automation and applications, it is getting more and more support at both community and enterprise level , it is the most in demand language for programming jobs currently available in the market.
DevOps is a software engineering culture and practice that aims to unify software development (Dev) and software Operation (Opps). It is a culture of collaboration between development and operational people.-
It is also important to understand what is NOT DevOps.
Set of Tools There is huge list of tools used in DevOps world, the list is exhaustive but are these tools DevOps , answer is no.
DevOps is a standard answer is no it is not a standard similar to ISO standards or a framework similar to ITIL , DevOps is just a cultural movement, designed to provide delivery and stability at the same time.
DevOps is not a product , it is just a culture that is practice by an entire organization that is performing software development / operation.
DevOps as a job title , yes though it is one of in demand jobs currently there is no such title as DevOps, it is simply a culture practiced by Developers and Operation teams to collaborate and any one with the right experience and knowledge can fit into this role.
DevOps culture change
In the past the developers and operational team were working in silos and each process follow in a serial fashion, this design was very successful in the past decade considering the size of the software and the complexity it brings. SDLC (software development life cycle) models such as WaterFall were used to create and maintain. In today’s 4G world software application are mostly mobile / web-based, updates are very frequent infact some are even updated daily or weekly, and that is where the challenge to manage both development and operation collide. Teams on either end would try to push ends to perform better, this is totally in contrast to the model followed in the past decade.
To overcome this challenge Development and Operation teams were merged a change in the team culture was brought in by applying agile principals to deliver short and fast updates / rollouts to the customer keeping in mind both speed of delivery and operational stability in mind.
Goals of a DevOps culture
Fast time-to-market (TTM)
Few production failures
Immediate recovery from failures
DevOps practices and tools
DevOps performs both Operational and Developer tasks , below are the list of practices that are considered part of Devops practices.
Once you have installed docker its time to manage , pull , remove docker images.
What is an Image
Image is a file that comprise of multiple layers used to execute code in a docker. It is built from the instruction for a complete and executable version of an application.
Note it does rely on the OS kernel
There are more then 1500 images created by different application teams such as by apache , ngnix , mysql , mariadb , these are called official docker images. One of the biggest repositories for these official docker images is
https://hub.docker.com
.
Installing Images
Downloading and installing an image on docker in Linux is a very straight forward way with a single command,example ngnix
docker pull <package_name>
To pull a particular version of an image
docker pull <package_name>:package_version_detail
by default pull will grab the latest version of the package and same goes for removing the version with docker rmi <package_name>
To see all the images that are downloaded on your machine use the command
docker images
To delete an image you can type
docker rmi <package_name>:package_version_details
if no package version details are added it will delete the latest version of the package.