Contributed by Piotr Musial, Manager IT- DevOps, Philip Morris International
Nothing ever stays the same in business, and only companies that change with the times will survive. In some cases, transformation is all about refreshing an existing brand identity. Other times, transformation goes much deeper to create something new altogether.
Philip Morris International (PMI) has more than 38 production facilities and employs 73,500 people around the globe, including more than 400 R&D scientists, engineers, and technicians. Probably everyone knows Philip Morris—or at least, the old Philip Morris.
PMI is undergoing the biggest transformation in its more than 170-year history. Even though PMI built a name on tobacco and cigarettes, the company committed to going smoke-free, and eventually discontinuing the production of cigarettes. PMI is pivoting to producing smoke-free alternatives, and many of those R&D scientists, engineers, and technicians are now working to develop alternative products, such as IQOS.
The company's business model is changing, too. Instead of selling products directly to warehouses that distribute to authorized product sellers, PMI is going directly to consumers. This is a big change—everything from the PMI values and beliefs to its business model has been affected.
A transformation like this requires more work on the digital side of the business, with IT playing a key role. We—as PMI's IT team—must be agile and efficient to respond quickly to the changing needs of the business. In fact, we’re now more important than ever because we’re often the ones delivering the new products and software that propel the company forward.
Setting a Global Standard: Cleaning up Chaos
Today, I’m the manager of IT DevOps, but I joined PMI back in 2014 as an IS service manager. I was in charge of the global intranet, which at the time didn’t require particularly quick responses to fast-paced changes. Two years later, I pivoted to the R&D team as we prepared for FDA inspections to ensure our systems were compliant.
I continued upgrading my skills and looking for ways to streamline and simplify the lifecycle of our solutions. The trouble was that everyone else was also trying to figure out how to make the business more efficient—and it was a zoo.
Don’t get me wrong, it was great that so many people were invested in the same goal. But every development team managed, created, or sourced their own tools to streamline their own processes. They thought that owning their tools would make them faster and more efficient, but it was a mess. Our product teams didn’t want to follow global standards because they thought it would slow down their processes, and that meant there was no standardization.
This lack of structure also became a security concern. When you work for a highly regulated company like PMI, all solutions must be compliant with security protocols. Everyone had different needs and setups. One team's decisions were impacting other team's work, causing delays and frustrations. With over 200 developers to support, you can imagine how quickly the problems added up.
Costs were going up and efficiency was going down. It was unsustainable, and I’d had enough. In 2018, I established my current team with the goal of implementing some global standards around CI/CD and Jenkins.
Strengthening our CI/CD
We knew we couldn’t continue operating the old way. But the more users we on-boarded to our CI/CD processes, the more complaints we got. I wanted to build processes that would be well-adopted by various product teams to bring standardization across the organization.
I started looking for purpose-built solutions to help us along our CI/CD journey. That’s when I discovered CloudBees CI, which could help with our Jenkins instances. Jenkins is an open source automation server and one of the top CI/CD tools on the market. But the open source version has its limitation. We’d used Jenkins for quite some time, but with CloudBees, we’d get a enterprise-grade, standardized, reliable, and secure Jenkins environment that could integrate with all of our other tools and give teams some autonomy.
With CloudBees we’d get access to the best practices we needed to evolve our Jenkins instances. And, best of all, CloudBees let us test out the platform to make the case for it. My approach is to try solutions to ensure they fit in with our portfolio, and then go full speed ahead.
Even though we started with CloudBees CI only on one Jenkins instance, we were quickly impressed. Developers were able to manage projects on a folders level instead of a jobs level. This gave our developers access to the tools they needed without additional complexity. Adoption was great, and we soon migrated all users to CloudBees.
Making the Most of Feedback: Upgrading Jenkins and Our Systems
After our proof of concept, CloudBees was so well adopted that we were ready to upgrade.
CloudBees was the natural evolution of our existing use of Jenkins. It has pre-tested and pre-approved plugins we can push to developers to install themselves. CloudBees’ support proved valuable, as they provided guidelines about how to improve our Jenkins implementation, even when we initially just wanted to prove out the solution. They invested the time to help us figure out some use cases and determine how best to apply Jenkins to our processes.
Our teams loved having that extra level of authority and independence. My team continues to maintain the platforms on a global level, ensuring that they’re compliant, but individual teams have full freedom when it comes to building CI/CD pipelines. Using CloudBees CI is like providing each developer with a standalone version of Jenkins that’s still governed by my team. We’ve now evolved our DevSecOps portal into what we called Delivery Engineering Enterprise Platform (DEEP). This is our one-stop shop for all PMI teams to quickly and autonomously build and run consistently designed, secure, compliant, and reliably-operated software applications.
When a developer runs DEEP, they’ll get a suite of tools to maintain or enhance their application. The new tools they get include Jira, Bitbucket, Confluence, an AWS account for hosting, some solutions to maintain APIs, and Jenkins. That Jenkins piece is where CloudBees aligns with DEEP.
In our old instance of Jenkins, users only had access to go in and configure CI/CD jobs. With DEEP, they get access to even more tools, such as the Build History, Project Relationship, Support, and so much more. Users now have all the access and tools they need to manage their products autonomously without compromising security.
The DEEP is like a starter kit for our developers. We let teams allocate their time to the delivery of their applications, while we take care of the infrastructure and tools.
Reducing Provisioning from Days to Minutes
This new portal, with all its new functionality, was like jumping from a bike into a nice car: developers can get where they’re going much faster and more comfortably. Now, users can manage their own plugins and credentials as they build CI/CD pipelines while maintaining that independence they craved.
All the while, my team and I act as the safety net to ensure everyone’s work stays compliant and secure. If my team needs to push a new release that fixes some security vulnerabilities, for example, we can now easily push it without interrupting their work.
Automating provisioning with CloudBees CI is a game-changer. What used to take developers a few days now only takes 10 minutes to complete. This, of course, has an impact on our internal resources, as developers are now more impactful. This newly cultivated productivity saves the company money and helps everyone to move faster.
New Systems, New Habits, New Future
Before we engaged CloudBees, my team and I were stuck with our distributed approach. Though we knew that we wanted to continue with Jenkins, we were experiencing difficulties inventing something new that would help people manage their solutions using Jenkins. At one point, we even questioned whether we should choose a different solution.
It was a tough time for us, but CloudBees really helped us through it. CloudBees CI has an intuitive way of managing Jenkins, and helped us get our processes streamlined and efficient.
Our changes may seem small, but CloudBees has ultimately helped our IT team transform. This is exactly what needs to happen over and over again at a micro-level for systemic transformation to take hold within an organization.
PMI is on a mission to change what we do and what we stand for—from selling cigarettes to going smoke-free. We can all breathe a little bit easier now knowing that our team is supporting this new vision from the ground up.