Speaker: Mr. Dennis De Vera | Exist Tech Architect
The primary purpose of DevOps implementation is to accelerate software delivery and increase business agility. The enterprise-wide impact that it can bring has been more evident, and much desired by businesses who want to remain at the top of their games. Although transitioning to DevOps can be vital to business success, challenges along the way might become overwhelming.
This session was organized to give an introduction to DevOps and assist businesses at the early stage of their DevOps journey.
Why DevOps; What is the fuss all about?
DevOps is a culture-changer. It is a process wherein each individual should be able to contribute to their own little way for it to be successful. Most of the time, it is correlated to your build automation. Build automation is directly correlated to your CI/CD pipeline.
How mature is your automation strategy?
Continuous integration
The process wherein you have a central source code repository. A developer can commit code, build, validate, compile, test, and can build an artifact out of it.
Continuous Delivery
The process wherein you deploy your application to your QA server, do the necessary tests and deploy it to your UAT servers for end-users to validate. The goal here is to automate it/deploy it to your UAT server and subsequently, to your production server with just a click of a button.
Continuous Deployment
The application is deployed into production. With the help of your continuous integration and continuous delivery, the right set of tools, and the right set of configurations, you won’t need an individual to put an application to production. With this automation, the risk of having human-errors is alleviated.
What is Application Modernization
It is the process of breaking down a monolithic application into smaller pieces to make changes faster, allowing you to deploy just a specific module, or augment a new feature without having to deploy the whole ecosystem. Having smaller pieces of codes or features with a smaller set of individuals participating in the process makes the process more agile than in monolithic setup.
Implementation of DevOps in Your Organization
There is no such thing as a generic DevOps because of different things to take into consideration such as:
Deployment Environment
We first have to assess if the existing pipelines and continuous integration are working before going into production.
Connectivity
Continuous integrations usually need to have access to download and upload artifacts. You have to consider firewalls, bandwidth, security, and other stuff under Connectivity.
Type of Application
You have to consider whether you want to build a web application, a mobile application, or a desktop application.
Infrastructure
Without the proper infrastructure, you will not be able to start anything. Under this, you should consider whether going on the cloud, on-premise, or hybrid.
Software Licenses
Should you go directly for enterprise licenses, or can you go for an open-source first? If you are already subscribed to a cloud provider, can you utilize those tools, and if these aren’t enough, can I choose for the other options?
People
You need to have the right people to guide your organization in making sure that you are implementing it the correct way, people who are experienced in building this kind of environment. You also need to have some changes in management.
Infrastructure – Cloud
Pros:
-
- Less management
- Resiliency and scalability
- Built-in tools for CI/CD
- Cost (Opex vs. Capex, pay as you go)
Cons:
-
- Connectivity
Infrastructure – On-Premise
Pros:
-
- Complete control of infrastructure
- Complete control of data
Cons:
-
- Harder to scale
- Maintainability
- OS Licenses
Infrastructure – Hybrid
Pros:
-
- Best of both worlds
Cons:
-
- Latency
- Specific hardware to bare metal to match cloud infrastructure
- Cloud compatibility
Software – Licensed
Pros:
-
- Support
- Larger List of features
- InfoSec Compliance
- Highly Scalable
Cons:
-
- Cost
Licensed Tools:
-
- ThoughtWorks
- Urban Code
- Perforce
- Bamboo
- GitLab
- Jenkins
Software – Open-Source
Pros:
-
- No License Cost
- Easy to Jumpstart
Cons:
-
- Support
- Restricted Scalability
- Non-Enterprise Grade Standard
Open-Source Tools:
-
- Jenkins
- Teamcity
- GitLab
- Sonar
- Ansible
Open-source is more recommendable for starters since it won’t have license cost and it is easier to set up.
Software – Cloud Tools
Pros:
-
- Less Management
- Scalability and Resiliency
- Fast Development
- Pay as You Use
Cons:
-
- Dependent on Deployment Locations (e.g. On-Premise
- Network
Cloud Tools:
-
- Microsoft Azure
- GitLab Runner
- Docker
DevOps as a Culture
How does DevOps affect each individual within your organization?
People
Consultants
-
- They will guide your organization in implementing the right tools, the right configurations, and the right strategies for you to be able to successfully implement a DevOps culture within your organization.
Project Team
-
- DevOps will make the process more transparent to project managers, making each individual more accountable for what they need to deliver and improve the delivery process.
- DevOps will make sure that the developers are responsible for their codes from the point that they committed it until the code reaches the production.
- DevOps will allow QAs to make more tests which secure the improvement and quality of the deliverable.
- Faster deployments mean faster the end-users can also see the output faster, which will allow the business analysts to get a clearer understanding of the end-users’ perspective.
- Some of the deployment tasks will be from the infrastructure through DevOps. This will let them focus on more specific tasks like improving the infrastructure, security, network connectivity, compatibility of hardware to software.
- DevOps will be a new participant in the project team which will serve as the bridge between the developers and the infrastructure team. This person will also be responsible for streamlining the process and making sure that the process will be improved over time.
Management
-
- Management – The more efficient the process and people are, the faster it will be to release into production. Work will be done faster. By making your people more effective, the management can minimize their operating costs.
- Sales & Marketing – It will be easier to sell products since they can be launched earlier in the market. It will also let the business cope up with competitors with a faster process of delivering the product to the customer.
- Finance – Costs will be down, while sales will be up. Thus, making the company more financially stable.
- Human Resource – HR can hire employees on a more specific scale to supplement the existing teams.
- Product Owners – They can see the product in the market and easily compare it to competitors, and easily make adjustments to stay one step ahead.
What Is Our Success Criteria?
-
- Improve turnaround time
- Improve the quality of deployment
- Automate the deployment process
- Streamline the process