DevOps Starter Pack

If you didn’t know about it, Red Hat is running a DevSecOps Roadshow right now!  They’re going on tour from city to city spreading the good word of Red Hat OpenShift and the value it delivers in a DevSecOps pipeline, and the benefit it draws into the Software Development Lifecycle.  I was fortunate enough to join them in Atlanta and I’ve got to say it is a treasure trove of information so if there’s one in a city near you, try to clear a spot on your calendar for it because this is something you don’t want to miss!

As many of you know, one of the things that sets Fierce Software apart and a cut above the rest is our ability to deploy workshops almost anywhere.  In fact, we recently executed on a DevSecOps workshop in Ft Worth for some of the friendly folk over at Red Hat.  During this workshop, we started with high-level 10,000ft concepts of what DevOps, Continuous Integration, Continuous Delivery, and Containers are.  With that, we had a workshop session where we worked directly with containers in our Containers 101 Workshop. With the next workshop session, we spent time on DevOps, and how security needs to “shift-left” into every step of the Software Development Lifecycle instead of being an afterthought that causes the process sometimes to start anew.

Over those days our conversations naturally focused on what DevOps means to different parts of the organization, how everyone is excited about employing these strategies and tools, and I’ve got to say, the enthusiasm was palpable.

 

DevOps and YOU!

DevOps has many meanings and different entanglements depending on what hat you wear.  On the Operations side of the house, it means automation, control, and ease of management.  Over in the Developer encampment, they see the wonders of having the resources they need, removing manual development labor, and better quality code.  Universally DevOps means a culture shift and a technological investment in standardization, automation, and optimization.

Navigating the vast DevOps landscapes can sometimes be difficult.  There are so many collaboration platforms, some with different communication features, and varying integrations.  If you think there are too many types of cookies to choose from, there are even more source code, asset, and artifact storage solutions out there.  Now let’s not forget about integrating security, as we shift security left into each step of our pipeline instead of as a bolt-on after-thought.

With this in mind, I’d like to introduce you to the new Fierce Software DevOps Starter Pack!  Quickly wrap your mind some of the core components in an Enterprise DevOps Environment, and drive innovation across your organization with some key platforms and methods.  Of course, we’re able to help put these solutions together and get them in your hands fast so think of us as a one-stop-shop!

Welcome to the Fierce Software DevOps Starter Pack!

  • Start with Culture (just like in Civilizations)

    First thing’s first, we need to get everyone on the same page.  This means increasing thoughtful communication and productivity across teams.  Our friends over at Atlassian fill this need with their best-of-breed Jira, Confluence, and Trello platforms.  Track your projects and progress, communicate without the distractions, and organize and collaborate in one central place.

  • Manageable Source Code Management

    Centralize your repository in-house or in the cloud with GitLab and integrate with the same tools you use today.

  • Continuous Things with Enterprise Jenkins

    Jenkins Sprawl is a real thing, almost in some dictionaries in fact.  Wrangle in these disparate Jenkins environments lurking around every corner cubicle, manage build environments across teams with Team Masters, and give your star running-back Jenkins the field it needs to excel with Cloudbees Core and the new CloudBees Enterprise Jenkins Support.

  • Spot the landmines

    Every DevOps strategy needs to start employing security in every step of the workflow.  This can range from binary analysis tools to container scanning, the possibilities are endless but it’s important to not carry security measure out in batch at the end of the workflow.  As we integrate these different security mechanisms into the fold at different stages we start to see our security methods “shift-left” from the end of the pipeline into earlier stages.  Get started with Static Code Analysis and find the common issues, potential vulnerabilities, and the general health of your code base by employing Continuous Inspection with SonarQube.

  • Polygot Platforms

    Give your developers not only the resources they need but also the platform they need, and not just some developers, all your developers.  By standardizing with Red Hat OpenShift Container Platform you can enable every DevOps workflow your developers could want across all the languages they use such as Java, Node.JS, PHP, and more.

  • Visionary Insight

    Keep your environment from turning into the Wild Wild West.  Add an additional layer of security with SysDig Secure and gain valuable analytics and metrics across your entire environment by harnessing the rich insights of SysDig Monitor.  Naturally, the SysDig Platform integrates with Red Hat OpenShift, CloudBees Core, and every other part seamlessly.

Next Steps

Of course, this is only the start in many DevOps journeys. If you’ve had a chance to take a look at the Cloud Native Landscape, you may notice many more application stacks, programs, and DevOps-y drop-ins.  Just because you’ve heard about a solution being used somewhere else does not mean it’s a good fit for your particular DevOps pipelines.  We at Fierce Software have had the great pleasure of guiding organizations along their DevOps journey and seeing them grow along the way.  Contact us and a Fierce Software Account Executive will promptly respond to start the process of helping you and your team along the way to very own DevOps strategy.  Outside of getting a quote in your hands quickly, we can help you strategize and architect your solution, set up proof-of-concepts and demos, coordinate trial subscriptions, and of course, can deliver workshops on-site to help better enable your organization.  Just drop us a line and let us know how we can help you as well!

#moveToGitLab

There’s been a lot of hub-bub about GitLab lately.  They’ve really set the bar recently and have been pumping out quality, best-of-breed features out the doors with their latest releases.  You might notice a monthly regularity to their releases…yes, that’s agile DevOps by a DevOps company!  Talk about doing what you preach!  Another exciting development is that GitLab has recently announced that GitLab Ultimate and Gold now free for education and open source in order to deliver additional flexibility.

Outside of their last few exciting releases, you might have heard something in the news about Microsoft buying a little start-up called GitHub.  That purchase certainly caused a stir in the open-source and development communities, and there’s a lot of momentum behind the #moveToGitLab, with plenty of good reason…

Commitment to Open-Source

We at Fierce SoftwareTM take great pride in supporting open-source.  We contribute to the community and even operate our own GitLab Enterprise Edition environment!  As open-source software becomes a larger part of our everyday lives, many developers find comfort in relying on an open-core platform like GitLab.

Vertically Integrated DevOps

Ever find yourself managing your repository environment, issue tracker, documentation and wiki, and continuous integration environments separately?  Now you don’t have to with GitLab, and you can cover all stages of the DevOps lifecycle from a centralized, enterprise-ready platform.  The integration between code repository, documentation management, issue tracking, and CI/CD is seamless with GitLab.

Ease of Use

You’ve got your development workflow already setup, migrating to another platform will take too long, cause too much disruption to development, there’ll be data loss, and a slew of other headaches, right?  Right?

Not with GitLab.  You can install GitLab into almost any environment within a matter of minutes and start collaborating in no time.  Since GitLab uses the same standardized Git SCM, you can use all the same tools, without changing your workflow.  Swap out a few git remote URLs and you’re done.

Importing your GitHub repositories?  That simply takes a few clicks and your files, changes, issues, history, and everything in between is imported.  There’s even a video showing how to migrate from GitHub to GitLab!

I like to move it, move it

Alright, so you’ve done your research, contacted and talked with your Partner Account Manager, read the text, watched the videos, done the dance, and now you’re ready to take the plunge!  Well, we recently have helped a customer do exactly that, and here’s how you can too…

Installing GitLab

There are a few different options to installing GitLab, be that in a container, from source, or with the OmniBus package.  For these purposes, we’re going to deploy to an AWS EC2 instance running Red Hat Enterprise Linux 7 with the OmniBus package.  There are a few steps that are important to remember…

  1. Provision Infrastructure
    1. Spin up an EC2 instance
    2. Setup FQDN with proper A records and with reverse DNS PTR records
    3. Set hostname on server
  2. Update server, setup firewall rules
  3. Install GitLab via OmniBus
  4. Reconfigure GitLab for Let’s Encrypt SSL

Now, it’s important to create the FQDN and to set the hostname on the server BEFORE installing GitLab via OmniBus as it will configure the web interface to the set hostname.  Once that is set, we can install GitLab via the OmniBus which will take just a few minutes.  Once the installer is complete and before we load the GitLab web panel, let’s enable HTTPS support for some added security.  To do so, we’ll modify the GitLab configuration file and run a reconfigure command…

$ sudo nano /etc/gitlab/gitlab.rb

In that file, you’ll find a section for Let’s Encrypt and we need to set two variables…

################################################################################
# Let's Encrypt integration
################################################################################
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your_email@example.com'] # This should be an array of email addresses to add as contacts

Then we’ll just run…

$ sudo gitlab-ctl reconfigure

It might fail on the first pass of the Lets Encrypt provisioning…just come back a while later and try again.  It will request the secured domain in a challenge and if you just recently set up that DNS entry for the FQDN, it might just need a few minutes to propagate.

Configuring GitLab, Users, and Groups

Now that we’ve got this shiny new GitLab server up and running, let’s get some things set up.  Of course, there are projects to create, groups to set up, and users to provision but aside from that a few notable things to set up are…

  • Sign-up restrictions – In case this is more of a private party
  • Terms of Service & Privacy Policy – Cross your eyes and dot your tees on the whole GDPR bit
  • Continuous Integration and Deployment – Get your AutoDevOps on

Importing from GitHub + Others

Now that we’ve got things up and running, our teams and new projects are now living happily under one roof with GitLab.  What about importing existing code repositories, issues, wiki pages, and all of the other components involved?

All you have to do is Create a New Project, and within a few clicks, everything is imported.  You can see a few of the current import options below.

GitLab - Create Project & Import

Create a project in GitLab and import your current work

Conclusion

So now we’ve got GitLab installed, configured, and imported all our data, we have officially completed our #moveToGitLab.

This isn’t the only way to go about provisioning a GitLab environment.  There are many other ways of deploying GitLab, be that with containers on-premise, installed via OmniBus on a cloud server like we did, or even maybe via the PaaS offered at GitLab.com.   That’s all before even getting into the integrations and using it as a complete DevOps CI/CD platform!

As confusing as it may be, our account teams and engineers, along with our partners at GitLab, can find you the right solution to meet your development needs.  Simply need a centralized repository management platform?  No problem.  Want a fully vertically integrated DevOps CI/CD powerhouse?  We can do that too.

We’ll be more than happy to get you started on your digital transformation with an enterprise DevOps platform like GitLab.  Simply drop us a line and contact us for the fastest response in the land!