Tuesday, 6 June 2017

Week 7 [05-11.06.2017] DevOps Culture

     I want to present the topic which I have been interested in for past 2 years. In my company I am responsible for creating and promoting “DevOps” culture. The reason I have chosen this topic is because it is very modern in the IT world now, and many people have probably heard of it; still, the whole context is very extensive and covers many issues.






What does DevOps mean?

 First of all, DevOps word is clipped compound of Dev – “software Development” and Ops – “information technology OPerationS”.  To define these two terms separately I want to present to you this “tweet”.


The development team is responsible only for creating changes in their products and adding and modifying new features. Most of developers do not know, or simply are not interested in the way their product is deployed on the market. Developers are only focused on producing more and more lines of code. The development phase ends on Friday at 4 PM and then the operation phase starts.  The operation team is responsible for creating stable production environment and enhancing services. If the provided code does not work, operation teams are not able to deploy it. A fight between these two teams starts, one blames the other and the whole situation brings negative consequences and delays in product delivery.

DevOps philosophy is a solution to such a problem.

DevOps is also a culture of product development that can be easily deployed and operates on the market effectively. It aims at establishing a process which will help to build, test, and release software more rapidly, frequently and reliably. DevOps is connected with tools. There is no single tool which can create DevOps toolchain. In this culture your code/product is placed in an environment that contains many tools which help you to develop, build, test, package, release, configure and monitor your product more efficiently.

This periodic table of DevOps tools shows how many interesting technologies you can meet in touch with DevOps culture.






As you can see DevOps is a very fluent term and many companies can define it in their own way. I want to present you a definition of DevOps by Amazon and Chef:





Automatization


DevOps term is inseparably related to automatization. Automatization process can eliminate human mistakes, repeatable tasks can be replaced with common procedures.  Application deployment automation ensures that companies gain easy deployment and self-documented procedures. This automated pipeline ensures that a companies gain fast feedback if something wrong happens (all problems can be solved quicker).
As I wrote above DevOps is a process, so DevOps automation is not something that is done once and forgotten. Just like monitoring environments or checking security, automated pipelines need to be continuously monitored and improved.
DevOps and automation rely always on OpenSource. These open tools attract support from the developers’ community, which means that if a tool is repeatedly developed by thousands of people, it indicates that this is a reliable tool. I want to present some open source tools in the next paragraph.


OpenSource



In the above picture you can see many open source tools and frameworks used both in DevOps and infrastructure or databases software.
People prefer to use open source tools because they have more control of it. A collaborative approach is the best way to create software that will be connected and involved in DevOps culture.

    DevOps are not just a set of tools that let you faster and better. DevOps minimize, e.g. challenges of shipping, help people cooperate better, create products faster and better. DevOps remove boundaries between Developers and Operations.




Questions:
1. Have you ever met with the term of „DevOps”, how do you understand and use it?
2. Automatization can eliminate errors and speed up development process. During your daily routine in work, do you see tasks which you can automate?
3. Does your company use “OpenSource” products or rather commercial software? Do you see any cons of using “OpenSource” frameworks?

Sources:


35 comments:

  1. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. I agree with you, now companies are focused on making money, and DevOps will help them to reduce costs of development and maintenance. DevOps helps to make structure in company and assign responsibilities to people, it simply introduces order.

      Delete
  2. Yes, I have. As you said "DevOps is a very fluent term and many companies can define it in their own way."
    I work as a automation engineer. I like to automate processes, especially now I'm focused to automate
    testing process, which is part of devops. Devops methodology is everything between developers and operations.
    Personally, it's the most interesting part of project. In my opinion developement is very creative and responsible.
    Operations is not so creative as development but is very responsible, as you said and everything between this two
    kind of jobs is the most powerful part. It links skills programming skills and other amazing things.
    As I said above, automation it's my mainly reason why I have job. I have opportunity to work with plenty of clients,
    so I also see many of interesting cases. I'd like to automate everything which is possible to automate and boring to do manually.
    Have you ever read https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912. It's nice book to read.
    It's not so technical but it's worth! It depends on client. Some prefer open source some commercial software. If it will be rely on me,
    my preferable way it's open source. It's great to have opportunity to develop some products. But who is
    responsible for bug? Nobody. That is why big companies choose commercial that open source.
    I'm not agree with you if you said "DevOps and automation rely always on OpenSource.". Have you ever heard about
    IBM Urban Code?

    ReplyDelete
    Replies
    1. Nice to hear that you work as an automation engineer, the term of DevOps must be well known for you. You have to share with me your ideas about automation the testing process, because in my automated pipeline, tests still need to be better done (improved). Thank you for this book, I know it but I have to definitely recall it.
      Of course I know IBM urban code, I have heard about it but for many companies, when people hear about IBM they know that it is associated with big expenses. I prefer to create deployment process in Ansible, this is great tool, open source tool and I have not met yet by chance that Ansible could not do something.
      Have you heard about database automation processes? The Liqiubase tool is a great open source framework which will help you to create deployment pipelines on all databases. I really recommend you to check this.

      Delete
    2. Yes, I've heard something. My colleagues presented nice speech about database automation at Devops conference in Cracov. Keep looking for meetup connected with this subject, here in Warsaw. To be more specific at national stadium. I will be remember about you, when I will know exact time!

      Delete
  3. 1. No. Unfortunately I’ve never heard about this methodology but from your description ensues that it’s very interesting approach in development process.
    What I read about, this is recommended in IT environments when there are a lot of releases. I understand this methodology as a very close cooperation between developers team which create software and administration team which are responsible for maintenance.

    2. Sure!! There are a lot of such of this tasks. For example the standard tests that you have to do when you finished your piece of code. In my company we consider to deploy continues integration which helps us in test phase and save our time.

    3. We use both: open source and commercial products. I see one big plus of using opensource frameworks: there are a lot of developers which use open source product therefore the fixes and upgrades of product appear faster than commercial product.

    ReplyDelete
    Replies
    1. Definitely DevOps will help to organize thinks when you have many releases or just like Netflix or Amazon, where they are doing a production deploy every 11.6 seconds, that is amazing (http://joshuaseiden.com/blog/2013/12/amazon-deploys-to-production-every-11-6-seconds/).

      Delete
  4. Of course, I know the concept of "DevOps" and I understand it as a common work of developers and administrators on product development. At work very often many things need automation, we repeat the same thing many many times, so it is important to write scripts that with one click will do it for us. In the company where I work we use commercial software, so I have no opinion on "OpenSource" products.

    ReplyDelete
    Replies
    1. Automation is a key to success for me. When you have many tasks which you are doing over and over again, you should automate it. When something is automated it is harded to make a mistake, because the biggest mistakes are made by humans, and if a script is doing this job, it is flawless.

      Delete
  5. 1. Have you ever met with the term of „DevOps”, how do you understand and use it?
    - Yes, I have. To be honest, I still have trouble to understand what exactly is DEVops.
    2. Automatization can eliminate errors and speed up development process. During your daily routine in work, do you see tasks which you can automate?
    -Yes, for example or sort of testing cases. Testing is time consuming and automatization could significantly speed the process. I have also common everyday work regarding documenting work which also could have been automatized.
    3. Does your company use “OpenSource” products or rather commercial software? Do you see any cons of using “OpenSource” frameworks?
    - My company use rather commercial software. It's a matter of security. It said that open source software can be not as safe as commercial one. Speaking as a user, I can't feel much difference between open source and commercial software.

    ReplyDelete
    Replies
    1. When I first met this term I also haven’t understand what it is exactly. The problem of this term is that DevOps is a very fluent. Everybody can understand it in their own way. The other problem of this term is that it is associated with changes. If you are doing DevOps, you are still evolving and changing. And if something is still constantly changing it is hard to define it.

      Delete
  6. Isn't it stressfull job? I don;t know do you use languages C+,C++,C#, but for me it is black magic and I admire you. Glad to see that your interests merge with your job. As far as I had contact with supports I can only say that they weren't so good at this, do you think you are good? Can I say that you are support?
    1 No, I heve never met this term until now. I think that it some kind of support.
    2 I didn't think about that in this way, but in my spare time it you can make some softwaress and games faster.
    3 Unfortunately my company use only commercial softwares, and I can't say nothing else.

    ReplyDelete
    Replies
    1. I use many languages but know I create a platform which helps people to build and deploy their code and this platform is associated with DevOps, because it is built on DevOps rules and foundations. For me it is not a stressful job, I really enjoy it.

      Delete
  7. 1. Have you ever met with the term of „DevOps”, how do you understand and use it?
    Yes, I've met but I'm not common with it. In my company all things which belongs to DevOps, as you've described, are done by developers and it isn't anything strange.

    2. Automatization can eliminate errors and speed up development process. During your daily routine in work, do you see tasks which you can automate?
    Of course yes, I see many things which can be automated. And if there is enough time, we're trying to automate it. So step by step, month by month there is more and more automated tasks.

    3. Does your company use “OpenSource” products or rather commercial software? Do you see any cons of using “OpenSource” frameworks?
    Mostly not, but as you know, sometimes it's hard to do not use OpenSource products. Best example is Linux.

    ReplyDelete
    Replies

    1. Yes, Linux is the best example of Open source product. Thank you for your comment.

      Delete
  8. Wow. Thanks for interesting article. In my current job we work together with admin IT. I think that this people have many magical skills. We create great team, because we want optimize and automatize our daily tasks. This is big improve our products. Our software can send sms for us if this soft have any problems or errors.Detecting all incompatibilities is very important for our customers, because we create core systems for security.

    We often usage open source components, but we not should publish our solutions, because we often works in secret projects. My colleagues in my room often send small fixes and new functionality for existing projects.
    Currently, if I have free time I develop small library for data vis. It is my part of open source community.

    ReplyDelete
    Replies
    1. It is great to hear that you and your team is involved in open source community. I have never made a pull request in open source tool but sometimes I create a issues on jira to help others find bugs in theirs code.

      Delete
  9. Thank you for interesting article. I do not know this term before, but I know the Agile ( it is one of programs, which focus on there is an observation that the client often evolves during the topic. It is a component that is the subject of cooperation with customers). About Agile told me friend from work, which is project manager.
    In the sector IT sector is based on coding, automatize could be a good solution, however it is depending on sector, in which we work. I am creative designer, so I could only carry to work according to the planing task by our project manager, however we still should remember, that not every client is the same they have totally different needs and target. My company do not use open source framework, it could be depending from sector, which I work PR and Advertisement.

    ReplyDelete
    Replies

    1. Thanks for your comment. DevOps can be used in many companies in a different way, so it can even be used in your company to help and organize this planning tasks created by a project manager.

      Delete
  10. Thanks for periodic table for devops tools. I will print it tomorrow :)
    1. I heard about it before. Someone tolds me that it is person between Administrator and Computer Programmer.
    2. I use automatization every day. If I see something which I can automatize I will do it. Unless it takes too much time :)
    3. I programming in Ruby on Rails. It is open source framework. It has its pros and cons, but not the time to discuss about it. I generally value open source

    ReplyDelete
    Replies
    1. DevOps is not a person; I don’t agree with it. For me this term defines a culture of work. You can’t assign this term to a person or a set of tools. DevOps connects all of this things.

      Delete
  11. 1. Have you ever met with the term of „DevOps”, how do you understand and use it?
    Honestly I don't remember this term. Often so I have that I know definition, but I do not remember the term in this case just that.

    2. Automatization can eliminate errors and speed up development process. During your daily routine in work, do you see tasks which you can automate?
    I make the processes automatic and the computer is performing for me. This strategy is great for server administration, we can write a script that will make a copy of that day for us on that day. Thanks to that I know how automating tasks is helpful and how much time can save you.

    3. Does your company use “OpenSource” products or rather commercial software? Do you see any cons of using “OpenSource” frameworks?
    Of course. It's base core of most of my company's products. Operating system Linux, CMS Drupal or Wordpress without this software my company can't be exists.

    ReplyDelete
    Replies
    1. I agree with you about automated tasks. The more automated jobs are created, the more free time and less stressful job we have.

      Delete
  12. I have heard about DevOps for first time.
    But if I google for a moment there comes two ideas which can describe it:
    agile
    continuous integration

    Both are known for me.
    But think DevOps is important in companies where ecommerce is important.

    Elements of it I see in my development reality - Scrum.
    Srum is another method from agile family focused on better cooperation of IT and business (same idea, different actors :)
    Continuous integration is element which we talked about in company but still not in place.

    ReplyDelete
    Replies

    1. Thank you for your opinion, I recommend to convince your company to use more continuous integration and continuous delivery processes. It will definitely effect on costs reduction and better issue tracking.

      Delete
  13. This comment has been removed by the author.

    ReplyDelete
  14. I've heard about DevOps, but never really checked what that term precisely means. Thanks for bringing some light in that matter. So now for me DevOps is a good solution for a software developing and shipping problem.
    I automate every single task that I'm able to automate. Every single one. I've seen people who, having ie. cvs/xls file with data to change in Active Directory, did it manually... What a waste of time.
    My company uses many Open Source products, ranging from MySql (MariaDB) to Red Hat Enterprise Linux. When I'm thinking about cons of Open Source frameworks, the first that comes in mind is lack of assurance that it'll not end like ie. TrueCrypt.

    ReplyDelete
  15. We have a devops team. They write in Puppet technology and of course I had the opportunity to learn a little bit. We use these tools to build packages for production, most projects are based on this approach, which greatly minimizes the manual process of the programmer. I met with the disadvantages of this technology, but these errors were wrong programming activities, but the process worked as it should. I have not noticed any serious mistakes. Automating some of the processes really in our business is rewarding and we focus on Devops teams.

    ReplyDelete
  16. 1. Have you ever met with the term of „DevOps”, how do you understand and use it?

    I have heard about DevOps before. I think it is a buzz word but in fact, it really makes sense in my opinion. Software development changes regularly and DevOps evolved from known approaches and tries to solve their problems. I think cloud solutions helped to create resilient products that are developed in iterations and easily maintainable.

    2. Automatization can eliminate errors and speed up the development process. During your daily routine in work, do you see tasks which you can automate?

    I really like Continous Integrations which helps to run test automatically, statically analyses code base and take care releases. I just use such tools but know very little how they are maintained, but they work like a charm and I know it is because of our great DevOps guy :)

    3. Does your company use “OpenSource” products or rather commercial software? Do you see any cons of using “OpenSource” frameworks?

    Yes, most of the tools we use are open sources. If a solution has a well-established position in a market it is worth using it. However, from time to time it happens that an open source solution is abandoned by its creators. Then it starts to rust and after some time is very hard to maintain it so it has to be changed by something new. I think that for the most critical point of software development it is worth paying for a commercial solution because then you know you could sue its producers when something went really bad ;)

    ReplyDelete
  17. I have never heard of "DevOps". I'm not a programmer. I think that this is a very good way to solve many problems. Of course automatic process works according some pattern. There are advantages and disadvantages. Fact is that automatic process simplifies your life. Personally I would like to make my morning coffee and breakfast atomatic :)

    ReplyDelete
  18. 1. Have you ever met with the term of „DevOps”, how do you understand and use it?
    Sure I heard about this term. Like more people here I'm IT guy :) For me personally it is now a kind of key word for everything, but me, my team and I also have hope the rest of our company use the Dev Ops :)

    2. Automatization can eliminate errors and speed up the development process. During your daily routine in work, do you see tasks which you can automate?

    I love automatization! I try to automate everythink what can be automate :P

    3. Does your company use “OpenSource” products or rather commercial software? Do you see any cons of using “OpenSource” frameworks?

    Ofcourse I use lot of OpenSource products, but I depends a lot for what kind of client we do our software. I'm in financial sector and for most of our clients we have to use commercial frameworks. They need warranty of support and so on.

    ReplyDelete
  19. Yes, I have come across the notion of DevOps. For me it is a person who is familiar with numerous technologies. Nowadays a programmer is required to know more than just one technology. An employee who is familiar with various technologies may be very valuable to the company and can bring considerable benefits for the employer. In the IT world there are more and more ready-for-use solutions. As a result, we can shorten the time needed for creating a new system. What is the most required thing from programmers nowadays is speed and the quality of the delivered software. The person who knows many technologies is able to conduct effective talks with other departments, as well as carry out the project successfully.

    Recently, I have been using SpringBoot very often. It is a technology that allows one to build a new program in a very fast time. SpringBoot provides a new project creation wizard. It is a great tool which can be used to automate the process of adding libraries and dependencies that we will be using when writing code. We are able to shorten the amount of time required to create a new project and quickly integrate into other systems.

    Until recently, I worked in a small business. "OpenSource" technologies were used very often.
    I used technologies such as ElasticSearch, Zabbix, Kibana, Eureka. Small businesses do not build large IT systems so they do not need every solution to have the support of a large corporation. The use of ready-made components significantly shortened the time required to create a new system. Many small businesses would not have been able to develop because of the lack of funds to buy licenses.

    ReplyDelete
  20. This comment has been removed by the author.

    ReplyDelete
  21. 1. Yes, I have met this term. I understand that in 2017 IT companies are much more than code producers. They need to play a role of consultant and counselor of the client. We (as programmers) need to understand the business realities in which product of our development is going to be used, why is there a need to have our product in general and which other processes can be optimized by applying some additional functionalities to our software. So all in all – we need to take a broader look at the business we cooperate with to propose the solution which addresses all the main problems in the company rather just follow client’s suggestions.

    2. Of course I do. I hate repetitive actions. I try to eliminate them on the spot. Each time I notice that some action of mine requires significant time investment and it’s repetitive I ask myself if the way I proceed is really the best way to cope with that. Why do I do this in general? Is it needed? What benefits it brings? How can it be done better? I answer this kind of questions to eliminate and automate and optimize daily routines.

    3. My company is a corporation. Each and every solution we have implemented within our systems is purely business dedicated software. I think that decision of using open-source or commercial software strongly depends on our needs. If an open-source addresses our needs, then why shouldn’t we be using it? But we need to keep in mind one very important factor. That what matters for companies is not only the application or framework itself, but also the support which is provided by developer. This can be a significant barrier in B2B world.

    ReplyDelete
  22. Thanks for sharing difference between software Development and Ops – information technology. i have gone through the article and this is very interesting and engaging. I have read information on application development from SupraITS website and that give me some idea also.

    ReplyDelete