In the cloud era, where version control, reliability, repeatability and idempotency are top of mind it seems like everything-as-code is the new norm. Public cloud and private infrastructure resources are most effective when their lifecycle, configuration, and security are managed in code and deployed through automation. These practices improve consistency, supportability, and tighten security holes. This powerful combination of source code management and automated deployment has been used in the software development space for a long time with great success. How can we take this concept and apply it to broader business areas? Why would we want to do this?--to make "happiness-as-code" a reality for everyone in our organization. Organized data leads to organized and happy humans. Check out this talk given by Seth Vargo, a Developer Advocate at Google, as he dives into the intricacies of everything-as-code and everything you should know about to get started.
At LucidPoint, we think all businesses are data-driven organizations. Whether you're managing source code, customer sales records, or even a staffing schedule, these are all data requiring multiple humans to interact with over time. Given the importance of tracking this business information, how do you manage copies of this data for backup? How do you collaborate on improvements of that data or configuration over time? How do you secure access to that information?
All of these practices can be embodied in an effective source control and collaboration system like GitLab. At LucidPoint we use GitLab not only for our own source code development, but also these additional business functions:
Gitlab has become a central repository for all of our electronic records that would otherwise be scattered across disconnected tools. Consolidating these items to a common platform lets us maintain a single pane of glass and make valuable integrations between different data types and tasks. All of the configuration rules, data templates, access controls, and more are managed as code directly in GitLab. Collaboration and resolving conflicts, whether in complex source code or a sales opportunity record, use GitLab's excellent branching & merging capabilities for resolution.
For example, as a Sales opportunity is tracked and eventually booked by our Sales team, all of the customer information, schedule, and resource requirements are captured together. This info feeds into resource scheduling and allows us to securely add access for delivery engineers & other teammates. As projects progress, tracking related support requests or enhancements needed to code are all managed in similar work streams with issue tracking and branching & merging for changes. Since all of this data is in one system, security policy is simplified through GitLab's group management. Sales and contact data directly feeds the delivery engineers for the work; no complex CRM to engineering tool integration is needed. The data naturally moves from task to task and across workstreams within the same GitLab environment.
GitLab helps LucidPoint manage all of our electronic records and collaborate across time zones, backup/restore the data, and secure access to our most important information. This is a happy data management solution with happy humans participating. Happiness-as-code achievement unlocked!
Author: Eric Lozano
Sr. Cloud Engineer
Continuous Integration and Continuous Deployment (CI/CD) management pipelines are a necessity in large companies, however, small teams can also take advantage of the many benefits they provide. Developers are able to focus on security, code quality, and business needs because the deployment process is entirely automated. These benefits keep a company more agile and focused when responding to new challenges.
Continuous integration (CI) is the process of merging developer’s work into the source code multiple times a day. When talking about it in a pipeline context, it is a set of tools and tests that check to ensure the proposed changes don’t break any of the existing code. Continuous deployment (CD) is the automation required to push out a valid update to users. Married together, these two concepts create the CI/CD management pipeline, an automated process that merges, tests, and deploys code in a predictable, efficient manner.
CI/CD management pipelines are now the norm for good reason. Beyond making developers happier, deployments have become more reliable with fewer errors which results in better allocation of technical resources. Any high powered development team needs... you guessed it, high powered programmers. In order to attract talent and retain it, developers want environments that enable them to create and build rather than fight through the minutiae of errors and broken deployment. Pipelines reduce the hands-on time, and open doors to solve issues quickly. When pipelines are built properly, they increase deployment reliability and reduce errors that make it to production environments. The effort up front to integrate proper unit tests, integration tests, and descriptive feedback returns on the investment many times over. When these pieces come together, developers get to spend more time enhancing features and building value instead of trying to tame a wild codebase. The combination of happy, engaged developers and increasing value of a companies’ product makes it a win-win situation for all parties.
As CI/CD management technologies, both commercial and open source, become more widely available, it has never been easier to build and deploy a basic pipeline for your development team. What was once only necessary for the big players can be leveraged by small teams without the need for heavy investment on the front end to get started. Git services such as GitLab provide powerful pipeline and CI/CD management tools to let developers focus on the pipeline stages themselves instead of the complexities of infrastructure to execute them. In modern or hosted CI environments, all of the development effort goes toward improvements of the pipeline stages and robust testing, reducing the overhead of deployments and increasing quality. In small teams, the collaboration and peer review is streamlined into a central workspace that acts as a single source of truth.
With the velocity of business in the modern world, every advantage to pursue revenue and create value is necessary. Pipelines enable developers and companies to build quality software at unprecedented speed. Keeping engineering teams engaged and customers happy is critical to success and pipelines take the first step in opening the doors for long term achievement. For more information on the specifics of pipelines that are used today, check out the introductory resources from GitLab and GitHub.
LucidPoint Cloud Engineer