Any teams out there practicing DevOps?

Danielle Gessow
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
April 13, 2017

Do you have designated DevOps teams? Where are you in the process of implementation? What Atlassian and other add-ons and tools do you use? What best practices and advice do you have for others getting started?

4 comments

Comment

Log in or Sign up to comment
Daniel Yelamos [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 18, 2017

Hello Danielle. 

I do not mind starting this discussion. However, I am a very young Computer Engineer so take any of this with a grain of salt. As I understand DevOps, it is spending a lot of time, to develop tools to be more comfortable.

Before my current position at Adaptavist I was a DevOps engineer in Spain and before that I was a System Administrator trying to get a very traditional company to get into a CI pipeline. We would use DevOps methodologies to help deploy around 15-30 packages a day within a very complex infrastructure. Our core infrastructure was based upon Stash, Bamboo and Crowd. 

I have switched to a different position within another company as you can see but I still read a lot about DevOps. The following is an opinion that I have based on what I believe would be a good automated infrastructure based on DevOps methodologies. This is by no means anything that I have developed before, but it is a basic idea of what I believe a good DevOps infrastructure could look like.

The main parts of it would be:

-Crowd Server for easy auth that integrates well with other Atlassian software.

-Bitbucket server for storing their source code.

-Bamboo server for the CI pipeline. Some people also use Jenkins, which could be more powerful but it does not integrate as well with the rest of the Atlassian software suite.

-Docker for easy deployment and fault protection (if an app fails, you can spin up a new container automatically and redeploy within that container in a matter of minutes).

-Any DNS that comes with a healthcheck capability and load balancers. There are a few out there but I have never set any of them up, would not feel comfortable recommending. This is needed to check the status of your Docker instances, and if any of them fail, you can scrip the spin up of a new Docker instance.

-Any configuration management tool, if you are a new team, I would recommend Ansible, since it is easier to read that Puppet or Salt. If you have a beefy team I would recommend Salt over Puppet for security purposes. This part of the machinery would automate the setup of the Docker instances as they spin up.

-Python, cannot stress this enough. You can do Bash, Ruby and I have seen people using others, however, in terms of accessibility and readability, Python is as good as it gets. To make an extra note, I would recommend Python 3 over 2.7, but that is just a personal preference.

-Jira to keep track of your issues and your workflows.

The main issue with all of this is that it would take a long time to setup properly, and it will not be an easy road. However the benefits of having something like this would be rewarding to say the least.

I could take this further but without knowing more about what it is exactly that you do I would not feel comfortable recommending anything else. For anyone that reads this, feel free to disagree and comment on it, since this is probably the first time I comment on anything like this and would love to hear some feedback.

Daniel Yelamos [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 18, 2017

Hello Danielle. 

I do not mind starting this discussion. However, I am a very young Computer Engineer so take any of this with a grain of salt. As I understand DevOps, it is spending a lot of time, to develop tools to be more comfortable.

Before my current position at Adaptavist I was a DevOps engineer in Spain and before that I was a System Administrator trying to get a very traditional company to get into a CI pipeline. We would use DevOps methodologies to help deploy around 15-30 packages a day within a very complex infrastructure. Our core infrastructure was based upon Stash, Bamboo and Crowd. 

I have switched to a different position within another company as you can see but I still read a lot about DevOps. The following is an opinion that I have based on what I believe would be a good automated infrastructure based on DevOps methodologies. This is by no means anything that I have developed before, but it is a basic idea of what I believe a good DevOps infrastructure could look like.

The main parts of it would be:

-Crowd Server for easy auth that integrates well with other Atlassian software.

-Bitbucket server for storing their source code.

-Bamboo server for the CI pipeline. Some people also use Jenkins, which could be more powerful but it does not integrate as well with the rest of the Atlassian software suite.

-Docker for easy deployment and fault protection (if an app fails, you can spin up a new container automatically and redeploy within that container in a matter of minutes).

-Any DNS that comes with a healthcheck capability and load balancers. There are a few out there but I have never set any of them up, would not feel comfortable recommending. This is needed to check the status of your Docker instances, and if any of them fail, you can scrip the spin up of a new Docker instance.

-Any configuration management tool, if you are a new team, I would recommend Ansible, since it is easier to read that Puppet or Salt. If you have a beefy team I would recommend Salt over Puppet for security purposes. This part of the machinery would automate the setup of the Docker instances as they spin up.

-Python, cannot stress this enough. You can do Bash, Ruby and I have seen people using others, however, in terms of accessibility and readability, Python is as good as it gets. To make an extra note, I would recommend Python 3 over 2.7, but that is just a personal preference.

-Jira to keep track of your issues and your workflows.

The main issue with all of this is that it would take a long time to setup properly, and it will not be an easy road. However the benefits of having something like this would be rewarding to say the least.

I could take this further but without knowing more about what it is exactly that you do I would not feel comfortable recommending anything else. For anyone that reads this, feel free to disagree and comment on it, since this is probably the first time I comment on anything like this and would love to hear some feedback.

Russell Spivey May 8, 2017

"Do you have designated DevOps teams?" 

I work at a small company with about 5 other developers. We're so small that we don't have a dedicated DevOps team, we just manage it ourselves. This can be a good and a bad thing. It's nice to have the freedom to explore and implement DevOps tools that improve our workflow, but it's bad when maintaining those tools takes too much time away from writing code. 

"Where are you in the process of implementation?"

Typically, a developer just decides to try something out. Ideally, DevOps tools should be easy enough to get started that we don't have to get buy-in from everyone just to do a trial. If one developer can't get a decent sample workflow going within a day or less, we probably won't end up using the tool because it is likely too complex for our team to manage.

What Atlassian and other add-ons and tools do you use?

  • BitBucket
  • Bamboo Server
  • HipChat
  • JIRA
  • GitKraken

What best practices and advice do you have for others getting started?

  1. Start with HipChat (or Slack, etc), and make it fun. Create an atmosphere where developers like to communicate with eachother and don't mind trying out their ideas. 
  2. Make bug-reporters and feature-requesters use JIRA.
  3. Train your team to use Git, enourage them to use branches for bugs/features.
  4. Setup a build server, using either Bamboo or BitBucket Pipelines.
  5. Configure integrations with HipChat so that they aren't too annoying but people get notified if they break the build 
Richa williams March 1, 2018

hai Danielle, 

we have designated devops team. 

There 7 process for implementation of devops:

  • Processes
  • Communications and collaboration planning
  • Continuous development tools
  • Continuous integration tools
  • Continuous testing tools
  • Continuous deployment tools
  • Continuous operations and CloudOps tools.

Thanks

Richa

TAGS
AUG Leaders

Atlassian Community Events