 Kiitos, minulla on täällä. Tällä hetkellä minulla on tehty asia-kastieto-openssivuksi. Eli minulla on Eero Arvonen. Minulla on järjestelmä- ja järjestelmä- ja järjestelmä- Suomen ja asia-kastieto- ja järjestelmä- ja minulla on tietysti tila- ja järjestelmä- ja järjestelmä- järjestelmä- ja järjestelmä- ja minulla on tietysti tila- ja minulla on tietysti tila- Suomen ja asia-kastieto- on ollut koko ajan. Suomen ja asia-kastieto- ja minulla on tietysti tila- ja minulla on tietysti tila- 150-500 ajan työntekijöitä. Tämä oli tämä maailma, kuten kuten tuli, ja kuten tuli, kuten tuli, kuten kuten tuli, kuten kutus. Tällä hetkellä minulla on tietysti asia-kastieto- ja minulla on tietysti asia-kastieto- Ja minulla on tietysti 30-50 ihmisiä. Täällä on tietysti 3,5-vuotiaa. Täällä on tietysti Helsingin työntekijöitä. Tällä on tietysti, että me olemme tietysti ympäristö- ja konsumerin- ja ympäristö- ja järjestelmä- ja minulla on tietysti Suomen. Me olemme tietysti kokemme ja ympäristö- ja ympäristö- ja kokemme ja ympäristö- ja ympäristö- Meillä on niin paljon projuttavasti. En ole mitään niitä, mutta minä olemme tietysti, että minulla on tietysti tietysti. Täällä on kokemme ja ympäristö- ja ympäristö- ja ympäristö- ja ympäristö- ja ympäristö- ja minulla on myös kokemme ja ympäristö- ja minulla on kokemme Safety and Seekائa. Ympäristö, että tinailut ja palaa asked unraveling. Älkäinhan takaisin vastaus 소ittavan... IT olisi nggak suunnitel Tradun significance erect bilmiyorum. Meiltä me olimmeă laajana kehitet sobämään tuckustajia sen tekemisen perustamiseen Olemme ymmärrommin verran, joissa tarvitaan uusi kertaa tai uusi verran, joissa tarvitaan uusi kertaa tai uusi kertaa tai uusi kertaa tai uusi kertaa tai uusi kertaa. Suomessa on koko ajan ympäristöä, ja ensimmäinen kertaa, kun olet jatkuu ympäristö, niin voitte alkaa, koska ne ovat aika kertaa. Ja kuten sen, että kosteita erityisesti kaiken terveyden on yhteyden IT-malli, We compare pretty well with the costs of developing and maintaining our IT. This definitely has to do with the uniform architecture, because it helps both in the operations and the development side. But I don't think that's enough. We need to stay ahead as well. Here's a couple of things we have trouble with. First of all, scaling is painful. We have a set number of front-end and back-end servers, and the setting of new ones is pretty time-consuming and expensive. And because the scaling is so painful, our current application servers are pretty crammed with applications. And if one of them goes haywire, it can affect a whole bunch of other servers as well. And don't let my boss know I said this, but I think this uniform architecture is sometimes holding us back as well, because every new service has to conform to a specific standard. So it's pretty hard to test new stuff sometimes. So Red had offered to do an OpenShift proof of concept project with us. This is, I think, April 2017. So we basically started from scratch and installed OpenShift on-premise. We ported an application called Oma Tieto on it. And we demonstrated high availability so we could do rolling updates of stuff that was running. And the HTTP session of the user was persisted, so there was no downtime. And it worked out pretty great, all this in a week. So now we're fast-forwarding to late autumn 2017. So about a year ago, we decided to build a service that runs on OpenShift from the get-go. Container native, if you will. So what happened was we got some cloud OpenShift from Ambientia. We hire a couple of consultants from Lotto Company. We picked a technology we'd never worked with before. And we had a hard deadline because this was a GDPR compliant service. So it came into effect in May. So our hard deadline was, I think, in March. So no room for error. I mean, what could go wrong, right? Well, as it turns out, OpenShift made it easier to get everything together, actually. The reasons being was, first of all, the CICD pipeline, we got that out of the box. Like I mentioned, we had the Node.js. So there was the Ready Source to Image tool for that and so on and so forth. We had no issues getting it running in a test environment. And setting up multiple environments was pretty easy as well. When you get the one running, you can just replicate it for specific testing needs. And also it was inherently portable, so we could move it anywhere if we wanted to pretty easily. So there was no risk to getting stuck in a single environment either. So what happened was, well, here it is. It's in production, there's a screenshot of it. On time, on budget, customers happy and so on and so forth. Here's a screenshot of the OpenShift site. The whole thing runs on 12 deployments with the front and application running on two bots, so it's a total of 13 pods. We had about 10 updates since rollout with no downtime at all. Plus a slow summer, we would have done a couple of more deployments, but yeah, holidays. Rolling deployments, like I mentioned, no downtime needed. Just had to make sure the database changes were backwards compatible. And we're going to actually scale to Sweden later this year probably. And we're going to make a parallel one and it's going to be pretty easy. Because we have the templates ready and so on. By this time, we decided to get our own OpenShift cluster as well. So at the end of the spring, this spring, we rolled it out in-house. But at this point, we only had the one service actually published running on production on OpenShift. So what are we going to do with the rest of the 200 or so services we have is the question. So the question is how to eat an elephant, right? Well, we're going to do it with one container at a time. Most of our stuff runs on EAP, so that's something we're getting out of the box, so that's good, right? Enterprise application platform, so it's the Red Hat Jboss release, yeah. All right. So we decided we're going to pick a few candidates to migrate on to OpenShift. And we actually decided to focus on Oma Tieto, which we did on the proof of concept project a year ago. So porting the Oma Tieto was the first time we're porting something. So there were all these little things we had to take into account because it wasn't really designed to run in containers. So well, this is going to be a slightly technical, I hope you don't mind. But first of all, Oma Tieto generates some Java classes out of web service description language files. And those classes pertain to HTTP sessions that are stored on the server side. So in order to persist the session during a rolling update, those classes need to be serializable. So basically we had to write some binding files and make all the necessary files serializable. Oma Tieto had this little assumption that in some environments there's going to be a service that generates PDF reports. And it's going to be running on local host. Well, that's not the case in OpenShift at all. So that's something we had to take into account. And one of the big things I think is the sideways compatibility thing, because you're not going to want to have separate code bases for the old environment and the OpenShift environment. You're going to have to have your code in one place. So that's something we have to take into account. And actually that's why we have to see the bigger picture here. We can't reinvent the wheel because there's stuff that's been working for years and years. And if you want to actually roll this out in a large scale, we're going to have to have some things we're going to have to take into account here. So first of all, I think we have to integrate into existing CI CD, not to mess everything up. Our old Jenkins is full of stuff and we can't just throw it away. We're never going to recover from that. So this is the old way we were building and deploying stuff. Basically, the developer, we're starting from the top left here. The developer commits some code into GitLab. This triggers a bill in Jenkins. After that, Jenkins deploys the artifact into a testing environment. And also copies the year or the war file or whatever on an FTP server. And afterwards, if we want to put something into production, we're going to fill out some forms and someone's going to approve it. And then a guy from Ops is going to manually install it on one of the EAPs. Also, if you want to roll back from a production, it's a bit of a pain because we're going to have to copy the old artifact, the year file or war file or whatever. And we're going to have a special name for it so we know when it's been in production and so on and so forth. It's pretty complicated. So how does OpenShift affect things? Well, the box on the top is the old way of doing things. And we didn't really change anything, didn't have to, because my philosophy was we're just going to add a couple of things. So in the old jobs, we're only going to add two things. We're going to publish the artifact, the year file into Nexus, and we're going to trigger a build in our new Jenkins. The new Jenkins has the source to image tool installed. And it's going to build a Docker image that it'll push into the Docker repository of our OpenShift. And then it's going to deploy the relevant deployment config. There's also separate Jenkins jobs for releasing whatever in the testing environment to pre-prod and release whatever in the pre-prod to production whenever we want to roll. And we're also tagging the image streams with say 1.0 so we can always have the full backlog of everything that's ever been in production so we can roll back to whichever version we want. Also, we all hate big banks, so I think we should provide an incremental transition path to every service we have so we can get it on OpenShift. Luckily we have the uniform architecture, so this is kind of straightforward. Since our application architecture is multi-tier, we have to think about how they can be migrated. So are we going to migrate a whole chain of applications? Or can we just move the services one at a time? This is how our backend basically looks like. So we have a set number of EAPs with a bunch of deployed years inside them doing EJB calls within the very same application server. And the question is how are we going to migrate this on OpenShift? I guess one way would be we could just take all the separate services, make them run in a single EAP each. I guess this would conform pretty well to the whole micro service architecture thing. We could also scale all of these applications and not have to replicate the whole server with everything inside. Although in our experience running one deployment per EAP takes a bunch of resources, but I guess this might be just a case of not configuring them to contain whichever only the features we need. It might very well be worth doing, but the problem is it's still going to be something of a big bang because we're migrating a bunch of services at once. So this is option two. We could just migrate one application and have it connect to the old backend as is. There's a couple of question marks with this as well, though. There's probably a firewall between the left and the right side of the picture. So it would require some configuration. Also, well, the real question, I guess, is whether we want to go to the old environment and reconfigure all the EAPs manually to allow for these kind of connections. So I'm not sure if you want to do this or not. So the question is what do? We've identified viable options, but we haven't made any big decisions regarding the backend yet. I guess the most important thing is we know we can do this because I've tried this and it's worked so far. The front end is... I'm sorry. The front end, however, is pretty straightforward and has high value. So we're going to... Wait a second. Yeah, so we're going to pick the low-hanging fruits of the front and first then decide on the backend later. And that's kind of my point here. You need to identify the opportunities with the biggest impact. So we're running a business after all, so we always have to mind return on investment. And it might be some services will actually never be migrated in an open shift. They might live out their lives right where they are. They might just gracefully ride off into the sunset, you know, like this. Yeah. So in all seriousness, though, there's plenty of things to consider with the whole migration to containers. And by this point I can definitely hear the business people asking, where's the beef? Why should we do this and is it worth it? Well, surprise, I think it's definitely worth it to us. Otherwise I wouldn't be here talking about it. So the reasons it's worth it for us is we're moving towards 24-7 services. And like I said, we can do approaches incrementally by migrating specific application chains first. Two we can deploy whenever. Sometimes we deploy on Sunday mornings, you know. And I'm hoping we can eventually leave that stuff behind because I don't want to wake up early on a Sunday. Have you ever needed a new environment based on, say, a feature branch? Or maybe when you're developing a new version, you need to hot-fix something in production and there's going to be a lot of shuffling with environments and what you're going to install and where. This will definitely help because when you get your templates ready, you can just spin up a new environment in a couple of minutes and have a specific, say, good branch compiled and deployed in there. And remember how I mentioned it's been hard to try new things? Well, this kind of helps that. For example, deploying the Node.js application, the GDPR compliance service I mentioned earlier. I don't think we could have ever done it because it would have been like a special snowflake in our current environment. It would have been really difficult to get a production environment for it. What's more, real-time horizontal scaling. So in our current model where applications are under designated servers and hardware scaling means we have to build identical servers and install all sorts of stuff. And we're actually doing most of this manually still. In the OpenShift world it's a bit easier because you just have to provide OpenShift with the necessary hardware and it'll just work. There's also a couple of scenarios we've identified where we could need some extra juice during some special days of the year like Black Friday, where we get a lot of credit queries for when people are buying stuff they can afford really and have to take a consumer credit. But wait, there's more. Remember the UC merger I mentioned before? There's this thing called synergies that were promised to our shareholders. So it turns out UC have plenty of stuff running on mainframe and getting rid of that expensive stuff is coming eventually. And it just happens we have this thing called OpenShift now. So that might get fun. Also we got some big Nordic projects now that we tripled in size. So there's been a lot of talk even on the Swedish side about OpenShift and we're going to start some big stuff this fall, this winter. And that's all folks. This is where we are with everything. Yeah, if you guys want to get in touch, this code will take you to my LinkedIn page. And yeah, any questions? We can take one question because there's a user panel coming up. We can take more questions then. All right, you're finished, I know. You can save your questions for the AMA panel but you have to ask questions during the AMA panel. We've got one back in the back here. Well, you do for the recording. For all those people out there on Facebook live. Oh, the one person following at home? Yeah, the one person asking the question is Irish, right? And not Finnish. He doesn't count. So the question is about the cultural challenges that you faced. Can you talk about some of those? Because it was quite technical. I'd be interested to know. Right, the cultural challenges. Well, I mean, since we did the GDPR service, I think I won over a few of the business people as well. I mean, it's been pretty easy to sell it to the tech guys because they know what it's about. But the business guys, we had the product owner of the GDPR compliance service and others have been now asking how it went and I don't know if this is an expression in English or not, but he said it was like the toilet of a train. So it means that it just works. So this is why everything, everyone in house is pretty excited about migrating. That it's not going to translate. No, that's not going to translate. Toilet, train, I don't know. Yeah, go ahead. But yeah, we're winning the business people over definitely by actually delivering results.