Industrializing the production process for Cloud Native services
Insiel is the in-house ICT company of Italy’s Friuli-Venezia Giulia Region, that designs, implements and manages IT services in collaboration with the territory for public offices. A recent company consolidation left Insiel dealing with dated software production methods, and with a team of people interested in the DevOps world and ready to implement this methodology, the team began experimenting with introducing the cloud native paradigm in software production.
The digital transformation project began in 2017, when Insiel partnered with Kiratech to create a proof-of-concept and test the use of Microsoft Azure. The main objective of this initial phase was to innovate the production of software within a production structure of the company. Results had to be achieved through the implementation of:
- A cloud culture as a basis on which to build the services to be provided internally and externally
- DevOps methodology
- Products as services for a more immediate delivery
The initial project has proven hugely successful, with Insiel onboarding the newly designed development teams and prioritizing a full adoption of the cloud native approach. The team has also defined the KPIs for measuring the level of product adoption, as well as emphasizing the automated collection of data directly at the source. On this strong foundation, Insiel is now introducing FinOps to measure internal infrastructure costs for each individual product, and undergoing an in-depth analysis of DevSecOps issues.
By the numbers
Software development times
Complexity of managing infrastructures
Insiel is the in-house ICT company of Italy’s Friuli-Venezia Giulia Region that designs, implements and manages IT services in collaboration with the territory for the public offices of the Region, Municipalities, Companies, Health Services, Hospitals, local authorities, and affiliated citizens.
Project origins and initial goals
The digital transformation project was started by Insiel in 2017, with an agreement between Kiratech and Insiel to create a proof-of-concept and test the use of Microsoft Azure – an opportunity to start using container technology through an experimentation project.
Stefano Devoti, Program Manager of the project within the Innovation and ICT Governance Department at Insiel S.p.A., explained that the team decided to partner with Kiratech, a CNCF Silver Member and Kubernetes Certified Service provider, because “between our companies there is a particular harmony which made Kiratech the traveling companion suitable for Insiel’s needs. The experience gained in complex contexts like ours ensured that there was a certain clarity in the collaboration proposal.”
Within the Insiel there was also a team of people very interested in the DevOps world and ready to implement this methodology. The company had recently consolidated, which left it with dated software production methods and there was a desire to modernize the production process. Thus was born the idea of starting an initially experimental path of introducing the cloud native paradigm in software production.
The main objective of the initial phase of this introduction to the cloud was to innovate the production of software within a production structure of the company, with particular attention to:
- the definition of a clear process as a single guide for development activities
- the decrease in software development times (and consequent increase in productivity)
- increase the quality of the software produced
- the decrease in the complexity of managing infrastructures for the provision of services, through the implementation of the infrastructure as code
- improving collaboration and sharing within software development groups
Based on the project, these results had to be achieved through the implementation of:
- a cloud culture as a basis on which to build the services to be provided internally and externally
- DevOps methodology
- products as services * aaS for a more immediate delivery
Insiel specifically chose to move to the cloud because it considered this step as “the synergy between the infrastructure and the DevOps development methodology“, explained Stefano Devoti, Program Manager of the project within the Innovation and ICT Governance Department at Insiel S.p.A.
The process, which began in 2017, was then expanded and developed in 2019 thanks to Insiel’s activation of the IPP-Industrialization of the production process project, with the acquisition of Red Hat OpenShift and tools to implement the DevOps methodology and, in 2020, for the provision of services in Cloud Service Provider mode using on-premise infrastructure resources.
The first phase of the project involved the creation of a specific service for the Public Administration in SaaS – a system of configurable, multi-platform, distributed and integrated applications with external services. Subsequently, given the increase in the complexity of software systems and their increasingly wide distribution, the goal became much more ambitious: the company moved from a project limited to a well-defined context of the company (production structure) to a transversal project – cutting across many teams and functions. An interdivisional team was created, with the aim of involving a significant part of the company’s production core and its production facilities. It is a real industrialization of the production process to be applied on two lines:
- introduction of the cloud native paradigm on new projects
- progressive introduction of the main cloud native skills at company level (Agile and Scrum methodology in the production process, DevOps, CI / CD, Microservice and Container)
The formulation of the second phase of the project benefited from a larger application horizon, from a single production unit to the entire company production system, based on the concepts of a cloud native development model:
- Adoption of a cloud infrastructure with the hybrid cloud model
- Adoption of the DevOps methodology in the company, in order to make developers and operations interact more quickly (expand sharing and collaboration starting from a common base and recognized best-practices), releasing quality and safe solutions for traditional environments and in the cloud
- Reduction of silos between development departments and the release in production of applications
- Adoption of a product-centric approach with emphasis on automation and instrumentation to speed up and make more secure mechanical tasks such as tests, qualitative code analysis, compilation and release in the service delivery environment
- Increased productivity
- Reduction of implementation times for development team solutions
- Rationalization of tools for development activities
- Introduction of new metrics for measuring results.
The phases foreseen for this evolution of the project were:
- The introduction of practices and methodologies for the evolution and purchase of Enterprise solutions capable of offering an adequate level of assistance and quality. Specifically, the solutions introduced are:
– Jira for change management
– GitHub Enterprise as a tool for managing source code (social coding)
– CloudBees as a tool for continuous integration
– Extension of the use of Selenium for the establishment of an automatic test system
– Extension of the use of AppDynamics for monitoring critical services
– Elastic for log file analysis and monitoring
– Red Hat OpenShift Container Platform and Kubernetes as orchestrator
– SonarQube for checking the quality of the code
– Sonatype Nexus as artifacts repository
– Krateo PlatformOps for the management of infrastructural resources
– Keptn for the automation of releases
- Carry out training work for the departments involved.
Specifically, training was provided for developers:
- On container and Kubernetes technologies
- On Git and GitHub
- About Jenkins
- On the DevOps methodology
For systems engineers:
- On container and OpenShift technologies
- On the DevOps Methodology
“At the end of 2021, we adopted Krateo PlatformOps, the open-source platform created by Kiratech that allows us to simplify the creation and management of resources on our infrastructures and in self-service mode from a single control panel, aggregating the important information for the user and standardizing the resource procurement process.
Through Krateo we have created templates, starting models for the development of applications. We have already verified that with a few simple operations we are able to generate a complete and functional application in a containerized development environment: in the next phase, the development team must focus solely on the product logic to be included in the pre-set code.“Stefano Devoti, project program manager
An important goal was to rationalize and optimize the tools already in use, or necessary, for the implementation of DevOps and the cloud native approach, integrating them with what is already present in the agency.
“We have tried to structure issues and insert technologies and methodologies not previously present to reduce the complexity of the production process, automating and streamlining the activities of application development, creating all the optimal conditions for an increase in company productivity.”Stefano Devoti, project program manager
During this period, Insiel onboarded the newly designed development teams, prioritizing a full adoption of the cloud native approach, but also providing the services of the toolchain individually, with a step-by-step approach for the products / teams that require it.
They also got to grips with products that make up the toolchain – choosing to adopt Enterprise open-source solutions, to adapt to the reference development methodologies for the cloud and thus be able to offer services in line with what is present in the cloud market.
An example is GitHub: it was one of the first services introduced and that allowed Insiel to meet the needs of corporate change for the management of the source code. The Enterprise version of GitHub – installed in the datacenter – gives the team modern support and management, allowing them to introduce key concepts such as social coding and infrastructure management via code. Among other things, the corporate GitHub is also used to maintain all documentation of the cloud native project and provide all operational information for development teams.
GitHub was installed on VMware virtual machines outside the Kubernetes clusters precisely because Insiel is able to deliver the service to development teams that opt for a gradual approach to adopting the cloud native approach to development.
The team has also defined the KPIs for measuring the level of product adoption, as well as emphasizing the automated collection of data directly at the source of the information. They will continue measuring the level of diffusion and use of the practices and the results they bring (for example the number of code releases and the creation of new repositories, the number of repositories, the frequency in the execution of the pipeline and the quantity of products that are released on containers).
The next goals of the project are related to the introduction of FinOps for the measurement of internal infrastructure costs for each individual product and a very strong focus on security issues, with an in-depth analysis of DevSecOps issues.
Devoti explained focus will now shift to the automation-development side of the software.
“We have started the orchestration part (Infrastructure as a Code). The goal for the future is to offer marketplace services internally, as we are doing with Krateo, with particular attention to safety and automation. This opens up numerous opportunities for the creation of new services within the Public Administration.”Stefano Devoti, project program manager