Clean up case study images.
@@ -12,7 +12,7 @@ quote: >
|
||||
Kubernetes enabled the self-healing and immutable infrastructure. We can do faster releases, so our developers are really happy. They can ship our features faster than before, and that makes our clients happier.
|
||||
---
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_adform_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/adform/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/adform_logo.png" style="width:15%;margin-bottom:0%" class="header_logo"><br> <div class="subhead">Improving Performance and Morale with Cloud Native
|
||||
|
||||
</div></h1>
|
||||
@@ -66,7 +66,7 @@ The company has a large infrastructure: <a href="https://www.openstack.org/">Ope
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_adform_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/adform/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"The fact that Cloud Native Computing Foundation incubated Kubernetes was a really big point for us because it was vendor neutral. And we can see that a community really gathers around it. Everyone shares their experiences, their knowledge, and the fact that it’s open source, you can contribute."<span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase;line-height:14px"><br><br>— Edgaras Apšega, IT Systems Engineer, Adform</span>
|
||||
</div>
|
||||
@@ -83,7 +83,7 @@ The first production cluster was launched in the spring of 2018, and is now up t
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_adform_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/adform/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"Releases are really nice for them, because they just push their code to Git and that’s it. They don’t have to worry about their virtual machines anymore." <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase;line-height:14px"><br><br>— Andrius Cibulskis, IT Systems Engineer, Adform</span>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@ featured: false
|
||||
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/Adidas1.png')">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/adidas/banner1.png')">
|
||||
<h1> CASE STUDY: adidas</h1>
|
||||
<div class="subhead">Staying True to Its Culture, adidas Got 40% of Its Most Impactful Systems Running on Kubernetes in a Year</div>
|
||||
</div>
|
||||
@@ -33,7 +33,7 @@ featured: false
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="article image overlay" style="background-image: url('/images/Adidas2.png');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/adidas/banner2.png');">
|
||||
<div class="quotetext">
|
||||
"For me, Kubernetes is a platform made by engineers for engineers. It’s relieving the development team from tasks that they don’t want to do, but at the same time giving the visibility of what is behind the curtain, so they can also control it."
|
||||
<p><div class="quoteauthortext">- FERNANDO CORNAGO, SENIOR DIRECTOR OF PLATFORM ENGINEERING AT ADIDAS</div></p>
|
||||
@@ -74,7 +74,7 @@ featured: false
|
||||
</section>
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/Adidas3.png');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/adidas/banner3.png');">
|
||||
<div class="quotetext">
|
||||
“There is no competitive edge over our competitors like Puma or Nike in running and operating a Kubernetes cluster. Our competitive edge is that we teach our internal engineers how to build cool e-comm stores that are fast, that are resilient, that are running perfectly.” <p><div class="quoteauthortext">- DANIEL EICHTEN, SENIOR DIRECTOR OF PLATFORM ENGINEERING AT ADIDAS</div></p>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_antfinancial_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/antfinancial/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/antfinancial_logo.png" class="header_logo" style="width:20%;margin-bottom:-2.5%"><br> <div class="subhead" style="margin-top:1%">Ant Financial’s Hypergrowth Strategy Using Kubernetes
|
||||
|
||||
</div></h1>
|
||||
@@ -50,7 +50,7 @@ featured: false
|
||||
To address those challenges and provide reliable and consistent services to its customers, Ant Financial embraced <a href="https://www.docker.com/">Docker</a> containerization in 2014. But they soon realized that they needed an orchestration solution for some tens-of-thousands-of-node clusters in the company’s data centers.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_antfinancial_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/antfinancial/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"On Double 11 this year, we had plenty of nodes on Kubernetes, but compared to the whole scale of our infrastructure, this is still in progress."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- RANGER YU, GLOBAL TECHNOLOGY PARTNERSHIP & DEVELOPMENT, ANT FINANCIAL</span>
|
||||
|
||||
@@ -65,7 +65,7 @@ featured: false
|
||||
All core financial systems were containerized by November 2017, and the migration to Kubernetes is ongoing. Ant’s platform also leverages a number of other CNCF projects, including <a href="https://prometheus.io/">Prometheus</a>, <a href="https://opentracing.io/">OpenTracing</a>, <a href="https://coreos.com/etcd/">etcd</a> and <a href="https://coredns.io/">CoreDNS</a>. “On Double 11 this year, we had plenty of nodes on Kubernetes, but compared to the whole scale of our infrastructure, this is still in progress,” says Ranger Yu, Global Technology Partnership & Development.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_antfinancial_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/antfinancial/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"We’re very grateful for CNCF and this amazing technology, which we need as we continue to scale globally. We’re definitely embracing the community and open source more in the future." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- HAOJIE HANG, PRODUCT MANAGEMENT, ANT FINANCIAL</span>
|
||||
</div>
|
||||
|
||||
@@ -12,7 +12,7 @@ quote: >
|
||||
We made the right decisions at the right time. Kubernetes and the cloud native technologies are now seen as the de facto ecosystem.
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_appdirect_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/appdirect/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/appdirect_logo.png" class="header_logo" style="margin-bottom:-2%"><br> <div class="subhead" style="margin-top:1%;font-size:0.5em">AppDirect: How AppDirect Supported the 10x Growth of Its Engineering Staff with Kubernetess
|
||||
</div></h1>
|
||||
|
||||
@@ -53,7 +53,7 @@ quote: >
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_appdirect_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/appdirect/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We made the right decisions at the right time. Kubernetes and the cloud native technologies are now seen as the de facto ecosystem. We know where to focus our efforts in order to tackle the new wave of challenges we face as we scale out. The community is so active and vibrant, which is a great complement to our awesome internal team."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Alexandre Gervais, Staff Software Developer, AppDirect
|
||||
</span>
|
||||
@@ -69,7 +69,7 @@ quote: >
|
||||
Lacerte’s strategy ultimately worked because of the very real impact the Kubernetes platform has had to deployment time. Due to less dependency on custom-made, brittle shell scripts with SCP commands, time to deploy a new version has shrunk from 4 hours to a few minutes. Additionally, the company invested a lot of effort to make things self-service for developers. "Onboarding a new service doesn’t require <a href="https://www.atlassian.com/software/jira">Jira</a> tickets or meeting with three different teams," says Lacerte. Today, the company sees 1,600 deployments per week, compared to 1-30 before.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_appdirect_banner4.jpg');width:100%;">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/appdirect/banner4.jpg');width:100%;">
|
||||
<div class="banner4text">
|
||||
"I think our velocity would have slowed down a lot if we didn’t have this new infrastructure."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Pierre-Alexandre Lacerte, Director of Software Development, AppDirect</span>
|
||||
</div>
|
||||
|
||||
@@ -12,7 +12,7 @@ quote: >
|
||||
---
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/babylon4.jpg')">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/babylon/banner4.jpg')">
|
||||
<h1> CASE STUDY: Babylon</h1>
|
||||
<div class="subhead">How Cloud Native Is Enabling Babylon’s Medical AI Innovations</div>
|
||||
</div>
|
||||
@@ -36,7 +36,7 @@ quote: >
|
||||
Instead of waiting hours or days to be able to compute, teams can get access instantaneously. Clinical validations used to take 10 hours; now they are done in under 20 minutes. The portability of the cloud native platform has also enabled Babylon to expand into other countries.</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="article image overlay" style="background-image: url('/images/babylon1.jpg');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/babylon/banner1.jpg');">
|
||||
<div class="quotetext">
|
||||
“Kubernetes is a great platform for machine learning because it comes with all the scheduling and scalability that you need.”
|
||||
<p><div class="quoteauthortext">- JÉRÉMIE VALLÉE, AI INFRASTRUCTURE LEAD AT BABYLON</div></p>
|
||||
@@ -84,7 +84,7 @@ quote: >
|
||||
</section>
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/babylon2.jpg');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/babylon/banner2.jpg');">
|
||||
<div class="quotetext">
|
||||
“Giving a Kubernetes-based platform to our data scientists has meant increased security, increased innovation through empowerment, and a more affordable health service as our cloud engineers are building an experience that is used by hundreds on a daily basis, rather than supporting specific bespoke use cases.” <p><div class="quoteauthortext">- JEAN MARIE FERDEGUE, DIRECTOR OF PLATFORM OPERATIONS AT BABYLON</div></p>
|
||||
</div>
|
||||
|
||||
@@ -14,7 +14,7 @@ quote: >
|
||||
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/booking1.jpg')">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/booking/banner1.jpg')">
|
||||
<h1> CASE STUDY: Booking.com</h1>
|
||||
<div class="subhead">After Learning the Ropes with a Kubernetes Distribution, Booking.com Built a Platform of Its Own</div>
|
||||
</div>
|
||||
@@ -40,7 +40,7 @@ quote: >
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="article image overlay" style="background-image: url('/images/booking2.JPG');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/booking/banner2.jpg');">
|
||||
<div class="quotetext">
|
||||
“As our users learn Kubernetes and become more sophisticated Kubernetes users, they put pressure on us to provide a better, more native Kubernetes experience, which is great. It’s a super healthy dynamic.”
|
||||
<p><div class="quoteauthortext">- BEN TYLER, PRINCIPAL DEVELOPER, B PLATFORM TRACK AT BOOKING.COM</div></p>
|
||||
@@ -91,7 +91,7 @@ quote: >
|
||||
</section>
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/booking3.jpg');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/booking/banner3.jpg');">
|
||||
<div class="quotetext">
|
||||
“We have a tutorial. You follow the tutorial. Your code is running. Then, it’s business-logic time. The time to gain access to resources is decreased enormously.” <p><div class="quoteauthortext">- BEN TYLER, PRINCIPAL DEVELOPER, B PLATFORM TRACK AT BOOKING.COM</div></p>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,7 @@ quote: >
|
||||
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/BoozAllen4.jpg')">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/booz-allen/banner4.jpg')">
|
||||
<h1> CASE STUDY: Booz Allen Hamilton</h1>
|
||||
<div class="subhead">How Booz Allen Hamilton Is Helping Modernize the Federal Government with Kubernetes</div>
|
||||
</div>
|
||||
@@ -38,7 +38,7 @@ quote: >
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="article image overlay" style="background-image: url('/images/BoozAllen2.jpg');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/booz-allen/banner2.jpg');">
|
||||
<div class="quotetext">
|
||||
"When there’s a regulatory change in an agency, or a legislative change in Congress, or an executive order that changes the way you do business, how do I deploy that and get that out to the people who need it rapidly? At the end of the day, that’s the problem we’re trying to help the government solve with tools like Kubernetes."
|
||||
<p><div class="quoteauthortext">- JOSH BOYD, CHIEF TECHNOLOGIST AT BOOZ ALLEN HAMILTON</div></p>
|
||||
@@ -75,7 +75,7 @@ quote: >
|
||||
</section>
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/BoozAllen1.png');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/booz-allen/banner1.png');">
|
||||
<div class="quotetext">
|
||||
"Kubernetes alone enables a dramatic reduction in cost as resources are prioritized to the day’s event" <p><div class="quoteauthortext">- MARTIN FOLKOFF, SENIOR LEAD TECHNOLOGIST AT BOOZ ALLEN HAMILTON</div></p>
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@ quote: >
|
||||
The CNCF Landscape quickly explains what’s going on in all the different areas from storage to cloud providers to automation and so forth. This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles.
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_bose_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/bose/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/bose_logo.png" class="header_logo" style="width:20%;margin-bottom:-1.2%"><br> <div class="subhead" style="margin-top:1%">Bose: Supporting Rapid Development for Millions of IoT Products With Kubernetes
|
||||
|
||||
</div></h1>
|
||||
@@ -56,7 +56,7 @@ From the beginning, the team knew it wanted a microservices architecture and pla
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_bose_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/bose/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Everybody on the team thinks in terms of automation, leaning out the processes, getting things done as quickly as possible. When you step back and look at what it means for a 50-plus-year-old speaker company to have that sort of culture, it really is quite incredible, and I think the tools that we use and the foundation that we’ve built with them is a huge piece of that."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Dylan O’Mahony, Cloud Architecture Manager, Bose</span>
|
||||
|
||||
@@ -70,7 +70,7 @@ From the beginning, the team knew it wanted a microservices architecture and pla
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_bose_banner4.jpg');width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/bose/banner4.jpg');width:100%">
|
||||
<div class="banner4text">
|
||||
"The CNCF Landscape quickly explains what’s going on in all the different areas from storage to cloud providers to automation and so forth. This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Josh West, Lead Cloud Engineer, Bose</span>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@ cid: caseStudies
|
||||
css: /css/style_case_studies.css
|
||||
---
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_capitalone_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/capitalone/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/capitalone-logo.png" style="margin-bottom:-2%" class="header_logo"><br> <div class="subhead">Supporting Fast Decisioning Applications with Kubernetes
|
||||
|
||||
</div></h1>
|
||||
@@ -55,7 +55,7 @@ css: /css/style_case_studies.css
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_capitalone_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/capitalone/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We want to provide the tools in the same ecosystem, in a consistent way, rather than have a large custom snowflake ecosystem where every tool needs its own custom deployment. Kubernetes gives us the ability to bring all of these together, so the richness of the open source and even the license community dealing with big data can be corralled."
|
||||
|
||||
@@ -69,7 +69,7 @@ css: /css/style_case_studies.css
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_capitalone_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/capitalone/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
With Kubernetes, "a team can come to us and we can have them up and running with a basic decisioning app in a fortnight, which before would have taken a whole quarter, if not longer. Kubernetes is a manifold productivity multiplier."
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
logo: cern_featured_logo.png
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_cern_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/cern/banner1.jpg')">
|
||||
<h1> CASE STUDY: CERN<br> <div class="subhead" style="margin-top:1%">CERN: Processing Petabytes of Data More Efficiently with Kubernetes
|
||||
|
||||
</div></h1>
|
||||
@@ -52,7 +52,7 @@ logo: cern_featured_logo.png
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_cern_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/cern/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Before, the tendency was always: ‘I need this, I get a couple of developers, and I implement it.’ Right now it’s ‘I need this, I’m sure other people also need this, so I’ll go and ask around.’ The CNCF is a good source because there’s a very large catalog of applications available. It’s very hard right now to justify developing a new product in-house. There is really no real reason to keep doing that. It’s much easier for us to try it out, and if we see it’s a good solution, we try to reach out to the community and start working with that community." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Ricardo Rocha, Software Engineer, CERN</span>
|
||||
|
||||
@@ -66,7 +66,7 @@ logo: cern_featured_logo.png
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_cern_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/cern/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"With Kubernetes, there’s a well-established technology and a big community that we can contribute to. It allows us to do our physics analysis without having to focus so much on the lower level software. This is just exciting. We are looking forward to keep contributing to the community and collaborating with everyone."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Ricardo Rocha, Software Engineer, CERN</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_chinaunicom_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/chinaunicom/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/chinaunicom_logo.png" class="header_logo" style="width:25%;margin-bottom:-1%"><br> <div class="subhead" style="margin-top:1%;line-height:1.4em">China Unicom: How China Unicom Leveraged Kubernetes to Boost Efficiency<br>and Lower IT Costs
|
||||
|
||||
</div></h1>
|
||||
@@ -51,7 +51,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_chinaunicom_banner3.jpg');width:100%;padding-left:0;">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/chinaunicom/banner3.jpg');width:100%;padding-left:0;">
|
||||
<div class="banner3text">
|
||||
"We could never imagine we can achieve this scalability in such a short time."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Chengyu Zhang, Group Leader of Platform Technology R&D, China Unicom</span>
|
||||
|
||||
@@ -65,7 +65,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_chinaunicom_banner4.jpg');width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/chinaunicom/banner4.jpg');width:100%">
|
||||
<div class="banner4text">
|
||||
"This technology is relatively complicated, but as long as developers get used to it, they can enjoy all the benefits." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Jie Jia, Member of Platform Technology R&D, China Unicom</span>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_montreal_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/montreal/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/montreal_logo.png" class="header_logo" style="width:20%;margin-bottom:-1.2%"><br> <div class="subhead" style="margin-top:1%">City of Montréal - How the City of Montréal Is Modernizing Its 30-Year-Old, Siloed Architecture with Kubernetes
|
||||
|
||||
</div></h1>
|
||||
@@ -50,7 +50,7 @@ featured: false
|
||||
The first step to modernize the architecture was containerization. “We based our effort on the new trends; we understood the benefits of immutability and deployments without downtime and such things,” says Solutions Architect Marc Khouzam. The team started with a small Docker farm with four or five servers, with Rancher for providing access to the Docker containers and their logs and Jenkins for deployment.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_montreal_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/montreal/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Getting a project running in Kubernetes is entirely dependent on how long you need to program the actual software. It’s no longer dependent on deployment. Deployment is so fast that it’s negligible."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- MARC KHOUZAM, SOLUTIONS ARCHITECT, CITY OF MONTRÉAL</span>
|
||||
|
||||
@@ -65,7 +65,7 @@ featured: false
|
||||
Another important factor in the decision was vendor neutrality. “As a government entity, it is essential for us to be neutral in our selection of products and providers,” says Thibault. “The independence of the Cloud Native Computing Foundation from any company provides this.”
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_montreal_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/montreal/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"Kubernetes has been great. It’s been stable, and it provides us with elasticity, resilience, and robustness. While re-architecting for Kubernetes, we also benefited from the monitoring and logging aspects, with centralized logging, Prometheus logging, and Grafana dashboards. We have enhanced visibility of what’s being deployed." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- MORGAN MARTINET, ENTERPRISE ARCHITECT, CITY OF MONTRÉAL</span>
|
||||
</div>
|
||||
|
||||
@@ -12,7 +12,7 @@ quote: >
|
||||
---
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/Denso2.jpg')">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/denso/banner2.jpg')">
|
||||
<h1> CASE STUDY: Denso</h1>
|
||||
<div class="subhead">How DENSO Is Fueling Development on the Vehicle Edge with Kubernetes</div>
|
||||
</div>
|
||||
@@ -36,7 +36,7 @@ quote: >
|
||||
Critical layer features can take 2-3 years to implement in the traditional, waterfall model of development at DENSO. With the Kubernetes platform and agile methods, there’s a 2-month development cycle for non-critical software. Now, ten new applications are released a year, and a new prototype is introduced every week. "By utilizing Kubernetes managed services, such as GKE/EKS/AKS, we can unify the environment and simplify our maintenance operation," says Koizumi.
|
||||
</div>
|
||||
</section>
|
||||
<div class="article image overlay" style="background-image: url('/images/Denso1.png');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/denso/banner1.png');">
|
||||
<div class="quotetext">
|
||||
"Another disruptive innovation is coming, so to survive in this situation, we need to change our culture."
|
||||
<p><div class="quoteauthortext">- SEIICHI KOIZUMI, R&D PRODUCT MANAGER, DIGITAL INNOVATION DEPARTMENT AT DENSO</div></p>
|
||||
@@ -79,7 +79,7 @@ quote: >
|
||||
</section>
|
||||
|
||||
|
||||
<div class="article image overlay" style="background-image: url('/images/Denso4.jpg');">
|
||||
<div class="article image overlay" style="background-image: url('/images/case-studies/denso/banner4.jpg');">
|
||||
<div class="quotetext">
|
||||
"By utilizing Kubernetes managed services, such as GKE/EKS/AKS, we can unify the environment and simplify our maintenance operation." <p><div class="quoteauthortext">- SEIICHI KOIZUMI, R&D PRODUCT MANAGER, DIGITAL INNOVATION DEPARTMENT AT DENSO</div></p>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@ logo: ibm_featured_logo.svg
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_ibm_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/ibm/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/ibm_logo.png" class="header_logo" style="width:10%"><br> <div class="subhead">Building an Image Trust Service on Kubernetes with Notary and TUF</div></h1>
|
||||
|
||||
</div>
|
||||
@@ -58,7 +58,7 @@ The availability of image signing "is a huge benefit to security-conscious custo
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_ibm_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/ibm/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Image signing is one key part of our Kubernetes container service offering, and our container registry team saw Notary as the de facto way to implement that capability in the current Docker and container ecosystem"<span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br><br>- Michael Hough, a software developer with the IBM Cloud Container Registry team</span>
|
||||
</div>
|
||||
@@ -75,7 +75,7 @@ The availability of image signing "is a huge benefit to security-conscious custo
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_ibm_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/ibm/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"With our IBM Cloud Kubernetes as-a-service offering and the admission controller we have made available, it allows both IBM services as well as customers of the IBM public cloud to use security policies to control service deployment."<span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br><br>- Michael Hough, a software developer with the IBM Cloud Container Registry team</span>
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@ quote: >
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_ing_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/ing/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/ing_logo.png" style="margin-bottom:-1.5%;" class="header_logo"><br> <div class="subhead"> Driving Banking Innovation with Cloud Native
|
||||
</div></h1>
|
||||
|
||||
@@ -58,7 +58,7 @@ quote: >
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_ing_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/ing/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We decided to standardize ING on a Kubernetes framework." Everything is run on premise due to banking regulations, he adds, but "we will be building an internal public cloud. We are trying to get on par with what public clouds are doing. That’s one of the reasons we got Kubernetes."
|
||||
<span style="font-size:16px;text-transform:uppercase;letter-spacing:0.1em;"><br><br>— Thijs Ebbers, Infrastructure Architect, ING</span>
|
||||
@@ -72,7 +72,7 @@ quote: >
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_ing_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/ing/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"We have to run the complete platform of services we need, many routing from different places. We need this Kubernetes framework for deploying the containers, with all those components, monitoring, logging. It’s complex." <span style="font-size:16px;text-transform:uppercase;letter-spacing:0.1em;"><br><br>— Onno Van der Voort, Infrastructure Architect, ING</span>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_jdcom_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/jdcom/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/jdcom_logo.png" class="header_logo" style="width:17%;margin-bottom:-1%"><br> <div class="subhead" style="margin-top:1%">JD.com: How JD.com Pioneered Kubernetes for E-Commerce at Hyperscale
|
||||
|
||||
</div></h1>
|
||||
@@ -51,7 +51,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_jdcom_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/jdcom/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We customized Kubernetes and built a modern system on top of it. This entire ecosystem of Kubernetes plus our own optimizations have helped us save costs and time."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- HAIFENG LIU, CHIEF ARCHITECT, JD.com</span>
|
||||
|
||||
@@ -67,7 +67,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_jdcom_banner4.jpg');width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/jdcom/banner4.jpg');width:100%">
|
||||
<div class="banner4text">
|
||||
"My advice is first you need to combine this technology with your own businesses, and the second is you need clear goals. You cannot just use the technology because others are using it. You need to consider your own objectives." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- HAIFENG LIU, CHIEF ARCHITECT, JD.com</span>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@ logo: naic_featured_logo.png
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_naic_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/naic/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/naic_logo.png" class="header_logo" style="width:18%"><br> <div class="subhead" style="margin-top:1%">A Culture and Technology Transition Enabled by Kubernetes</div></h1>
|
||||
|
||||
</div>
|
||||
@@ -59,7 +59,7 @@ In addition, NAIC is onboarding teams to the new platform, and those teams have
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_naic_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/naic/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"In our experience, vendor lock-in and tooling that is highly specific results in less resilient technology with fewer minds working to solve problems and grow the community." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Dan Barker, Chief Enterprise Architect, NAIC</span>
|
||||
</div>
|
||||
@@ -77,7 +77,7 @@ As for other CNCF projects, NAIC is using Prometheus on a small scale and hopes
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_naic_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/naic/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"We knew that Kubernetes had become the de facto standard for container orchestration. Two major factors for selecting this were the three major cloud vendors hosting their own versions and having it hosted in a neutral party as fully open source."<span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br><br>- Dan Barker, Chief Enterprise Architect, NAIC</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_nav_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/nav/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/nav_logo.png" class="header_logo" style="width:15%"><br> <div class="subhead" style="margin-top:1%">How A Startup Reduced Its Infrastructure Costs by 50% With Kubernetes
|
||||
</div></h1>
|
||||
|
||||
@@ -52,7 +52,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_nav_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/nav/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"The community is absolutely vital: being able to pass ideas around, talk about a lot of the similar challenges that we’re all facing, and just get help. I like that we’re able to tackle the same problems for different reasons but help each other along the way."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Travis Jeppson, Director of Engineering, Nav</span>
|
||||
|
||||
@@ -65,7 +65,7 @@ featured: false
|
||||
Jeppson’s four-person Engineering Services team got Kubernetes up and running in six months (they decided to use <a href="http://kubespray.io/">Kubespray</a> to spin up clusters), and the full migration of Nav’s 25 microservices and one primary monolith was completed in another six months. “We couldn’t rewrite everything; we couldn’t stop,” he says. “We had to stay up, we had to stay available, and we had to have minimal amount of downtime. So we got really comfortable around our building pipeline, our metrics and logging, and then around Kubernetes itself: how to launch it, how to upgrade it, how to service it. And we moved little by little.”
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_nav_banner4.jpg')" style="width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/nav/banner4.jpg')" style="width:100%">
|
||||
<div class="banner4text">
|
||||
“Kubernetes has brought so much value to Nav by allowing all of these new freedoms that we had just never had before.” <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Travis Jeppson, Director of Engineering, Nav</span>
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@ cid: caseStudies
|
||||
css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_nerdalize_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/nerdalize/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/nerdalize_logo.png" class="header_logo" style="width:25%;margin-bottom:-1%"><br> <div class="subhead" style="margin-top:1%">Nerdalize: Providing Affordable and Sustainable Cloud Hosting with Kubernetes
|
||||
</div></h1>
|
||||
|
||||
@@ -47,7 +47,7 @@ featured: false
|
||||
After trying to develop its own scheduling system using another open source tool, Nerdalize found Kubernetes. “Kubernetes provided us with more functionality out of the gate,” says van der Veer.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_nerdalize_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/nerdalize/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
“We always try to get a working version online first, like minimal viable products, and then move to stabilize that,” says van der Veer. “And I think that these kinds of day-two problems are now immediately solved. The rapid prototyping we saw internally is a very valuable aspect of Kubernetes.”<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>— AD VAN DER VEER, PRODUCT ENGINEER, NERDALIZE</span>
|
||||
|
||||
@@ -62,7 +62,7 @@ featured: false
|
||||
Not to mention the 40% cost savings. “Every euro that we have to invest for licensing of software that’s not open source comes from that 40%,” says van der Veer. If Nerdalize had used a non-open source orchestration platform instead of Kubernetes, “that would reduce our cost savings proposition to like 30%. Kubernetes directly allows us to have this business model and this strategic advantage.”
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_nerdalize_banner4.jpg')" style="width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/nerdalize/banner4.jpg')" style="width:100%">
|
||||
<div class="banner4text">
|
||||
“One of our customers used to spend up to a day setting up the virtual machines, network and software every time they wanted to run a project in the cloud. On our platform, with Docker and Kubernetes, customers can have their projects running in a couple of minutes.”
|
||||
<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- MAAIKE STOOPS, CUSTOMER EXPERIENCE QUEEN, NERDALIZE</span>
|
||||
|
||||
@@ -9,7 +9,7 @@ featured: false
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_netease_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/netease/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/netease_logo.png" class="header_logo" style="width:22%;margin-bottom:-1%"><br> <div class="subhead" style="margin-top:1%"> How NetEase Leverages Kubernetes to Support Internet Business Worldwide</div></h1>
|
||||
|
||||
</div>
|
||||
@@ -47,7 +47,7 @@ featured: false
|
||||
After considering building its own orchestration solution, NetEase decided to base its private cloud platform on <a href="https://kubernetes.io/">Kubernetes</a>. The fact that the technology came out of Google gave the team confidence that it could keep up with NetEase’s scale. “After our 2-to-3-month evaluation, we believed it could satisfy our needs,” says Feng.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_netease_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/netease/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We leveraged the programmability of Kubernetes so that we can build a platform to satisfy the needs of our internal customers for upgrades and deployment."
|
||||
<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Feng Changjian, Architect for NetEase Cloud and Container Service, NetEase</span>
|
||||
@@ -60,7 +60,7 @@ featured: false
|
||||
And the team is continuing to make improvements. For example, the e-commerce part of the business needs to leverage mixed deployments, which in the past required using two separate platforms: the infrastructure-as-a-service platform and the Kubernetes platform. More recently, NetEase has created a cross-platform application that enables using both with one-command deployment.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_netease_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/netease/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"As long as a company has a mature team and enough developers, I think Kubernetes is a very good technology that can help them."
|
||||
<span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br><br>- Li Lanqing, Kubernetes Developer, NetEase</span>
|
||||
|
||||
@@ -5,7 +5,7 @@ cid: caseStudies
|
||||
css: /css/style_case_studies.css
|
||||
---
|
||||
|
||||
<div class="banner1" style="padding-left:8% !important;background-image: url('/images/CaseStudy_newyorktimes_banner1.jpg')">
|
||||
<div class="banner1" style="padding-left:8% !important;background-image: url('/images/case-studies/newyorktimes/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/newyorktimes_logo.png" class="header_logo"><br> <div class="subhead">The New York Times: From Print to the Web to Cloud Native
|
||||
|
||||
</div></h1>
|
||||
@@ -64,7 +64,7 @@ css: /css/style_case_studies.css
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_newyorktimes_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/newyorktimes/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We had some internal tooling that attempted to do what Kubernetes does for containers, but for VMs. We asked why are we building and maintaining these tools ourselves?"
|
||||
</div>
|
||||
@@ -79,7 +79,7 @@ css: /css/style_case_studies.css
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_newyorktimes_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/newyorktimes/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"Right now, every team is running a small Kubernetes cluster, but it would be nice if we could all live in a larger ecosystem," says Kapadia. "Then we can harness the power of things like service mesh proxies that can actually do a lot of instrumentation between microservices, or service-to-service orchestration. Those are the new things that we want to experiment with as we go forward."
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ logo: nokia_featured_logo.png
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_nokia_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/nokia/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/nokia_logo.png" class="header_logo" style="width:20%;margin-bottom:-2.2%"><br> <div class="subhead" style="margin-top:1%">Nokia: Enabling 5G and DevOps at a Telecom Company with Kubernetes
|
||||
|
||||
</div></h1>
|
||||
@@ -51,7 +51,7 @@ logo: nokia_featured_logo.png
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_nokia_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/nokia/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Having the community and CNCF around Kubernetes is not only important for having a connection to other companies who are using Kubernetes and a forum where you can ask or discuss features of Kubernetes. But as a company who would like to contribute to Kubernetes, it was very important to have a CLA (Contributors License Agreement) which is connected to the CNCF and not to a particular company. That was a critical step for us to start contributing to Kubernetes and Helm."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Gergely Csatari, Senior Open Source Engineer, Nokia</span>
|
||||
|
||||
@@ -65,7 +65,7 @@ logo: nokia_featured_logo.png
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_nokia_banner4.jpg')" style="width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/nokia/banner4.jpg')" style="width:100%">
|
||||
<div class="banner4text">
|
||||
"Kubernetes opened the window to all of these open source projects instead of implementing everything in house. Our engineers can focus more on the application level, which is actually the thing what we are selling, and not on the infrastructure level. For us, the most important thing about Kubernetes is it allows us to focus on value creation of our business." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Gergely Csatari, Senior Open Source Engineer, Nokia</span>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@ cid: caseStudies
|
||||
css: /css/style_case_studies.css
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_nordstrom_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/nordstrom/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/nordstrom_logo.png" class="header_logo" style="margin-bottom:-1.5% !important;width:20% !important;"><br> <div class="subhead">Finding Millions in Potential Savings in a Tough Retail Climate
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ css: /css/style_case_studies.css
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_nordstrom_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/nordstrom/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We made a bet that Kubernetes was going to take off, informed by early indicators of community support and project velocity, so we rebuilt our system with Kubernetes at the core,"
|
||||
</div>
|
||||
@@ -77,7 +77,7 @@ The benefits were immediate for the teams that came on board. "Teams running on
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_nordstrom_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/nordstrom/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"Teams running on our Kubernetes cluster loved the fact that they had fewer issues to worry about. They didn’t need to manage infrastructure or operating systems," says Grigoriu. "Early adopters loved the declarative nature of Kubernetes. They loved the reduced surface area they had to deal with."
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@ cid: caseStudies
|
||||
css: /css/style_case_studies.css
|
||||
---
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_northwestern_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/northwestern/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/northwestern_logo.png" style="margin-bottom:-1%" class="header_logo"><br> <div class="subhead">Cloud Native at Northwestern Mutual
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ css: /css/style_case_studies.css
|
||||
<div class="cols">
|
||||
<div class="col1">
|
||||
<h2>Challenge</h2>
|
||||
In the spring of 2015, Northwestern Mutual acquired a fintech startup, LearnVest, and decided to take "Northwestern Mutual’s leading products and services and meld it with LearnVest’s digital experience and innovative financial planning platform," says Brad Williams, Director of Engineering for Client Experience, Northwestern Mutual. The company’s existing infrastructure had been optimized for batch workflows hosted on on-prem networks; deployments were very traditional, focused on following a process instead of providing deployment agility. "We had to build a platform that was elastically scalable, but also much more responsive, so we could quickly get data to the client website so our end-customers have the experience they expect," says Williams.
|
||||
In the spring of 2015, Northwestern Mutual acquired a fintech startup, LearnVest, and decided to take "Northwestern Mutual’s leading products and services and meld it with LearnVest’s digital experience and innovative financial planning platform," says Brad Williams, Director of Engineering for Client Experience, Northwestern Mutual. The company’s existing infrastructure had been optimized for batch workflows hosted on on-prem networks; deployments were very traditional, focused on following a process instead of providing deployment agility. "We had to build a platform that was elastically scalable, but also much more responsive, so we could quickly get data to the client website so our end-customers have the experience they expect," says Williams.
|
||||
<br>
|
||||
<h2>Solution</h2>
|
||||
The platform team came up with a plan for using the public cloud (AWS), Docker containers, and Kubernetes for orchestration. "Kubernetes gave us that base framework so teams can be very autonomous in what they’re building and deliver very quickly and frequently," says Northwestern Mutual Cloud Native Engineer Frank Greco Jr. The team also built and open-sourced <a href="https://github.com/northwesternmutual/kanali">Kanali</a>, a Kubernetes-native API management tool that uses OpenTracing, Jaeger, and gRPC.
|
||||
@@ -53,7 +53,7 @@ In order to give the company’s 4.5 million clients the digital experience they
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_northwestern_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/northwestern/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Kubernetes has definitely been the right choice for us. It gave us that base framework so teams can be autonomous in what they’re building and deliver very quickly and frequently."
|
||||
|
||||
@@ -63,12 +63,12 @@ In order to give the company’s 4.5 million clients the digital experience they
|
||||
<div class="fullcol">
|
||||
Williams and the rest of the platform team decided that the first step would be to start moving from private data centers to AWS. With a new microservice architecture in mind—and the freedom to implement what was best for the organization—they began using Docker containers. After looking into the various container orchestration options, they went with Kubernetes, even though it was still in beta at the time. "There was some debate whether we should build something ourselves, or just leverage that product and evolve with it," says Northwestern Mutual Cloud Native Engineer Frank Greco Jr. "Kubernetes has definitely been the right choice for us. It gave us that base framework so teams can be autonomous in what they’re building and deliver very quickly and frequently."<br><br>
|
||||
As early adopters, the team had to do a lot of work with Ansible scripts to stand up the cluster. "We had a lot of hard security requirements given the nature of our business," explains Bryan Pfremmer, App Platform Teams Manager, Northwestern Mutual. "We found ourselves running a configuration that very few other people ever tried." The client experience group was the first to use the new platform; today, a few hundred of the company’s 1,500 engineers are using it and more are eager to get on board.
|
||||
The results have been dramatic. Before, infrastructure deployments could take two weeks; now, it is done in a matter of minutes. Now with a focus on Infrastructure automation, and self-service, "You can take an app to production in that same day if you want to," says Pfremmer.
|
||||
The results have been dramatic. Before, infrastructure deployments could take two weeks; now, it is done in a matter of minutes. Now with a focus on Infrastructure automation, and self-service, "You can take an app to production in that same day if you want to," says Pfremmer.
|
||||
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_northwestern_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/northwestern/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"Now, developers have autonomy, they can use this whenever they want, however they want. It becomes more valuable the more instrumentation downstream that happens, as we mature in it."
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@ weight: 4
|
||||
quote: >
|
||||
People at Ocado Technology have been quite amazed. They ask, ‘Can we do this on a Dev cluster?’ and 10 minutes later we have rolled out something that is deployed across the cluster. The speed from idea to implementation to deployment is amazing.
|
||||
---
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_ocado_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/ocado/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/ocado_logo.png" class="header_logo"><br> <div class="subhead">Ocado: Running Grocery Warehouses with a Cloud Native Platform</div></h1>
|
||||
|
||||
</div>
|
||||
@@ -32,7 +32,7 @@ quote: >
|
||||
</div>
|
||||
|
||||
<div class="col2">
|
||||
|
||||
|
||||
|
||||
<h2>Impact</h2>
|
||||
With Kubernetes, "the speed from idea to implementation to deployment is amazing," says Bryant. "I’ve seen features go from development to production inside of a week now. In the old world, a new application deployment could easily take over a month." And because there are no longer restrictive deployment windows in the warehouses, the rate of deployments has gone from as few as two per week to dozens per week. Ocado has also achieved cost savings because Kubernetes gives the team the ability to have more fine-grained resource allocation. Says DevOps Team Leader Kevin McCormack: "We have more confidence in the resource allocation/separation features of Kubernetes, so we have been able to migrate from around 10 fleet clusters to one Kubernetes cluster." The team also uses <a href="https://prometheus.io/">Prometheus</a> and <a href="https://grafana.com/">Grafana</a> to visualize resource allocation, and makes the data available to developers. "The increased visibility offered by Prometheus means developers are more aware of what they are using and how their use impacts others, especially since we now have one shared cluster," says McCormack. "I’d estimate that we use about 15-25% less hardware resources to host the same applications in Kubernetes in our test environments."
|
||||
@@ -54,7 +54,7 @@ Bryant had already been using Kubernetes with <a href="https://www.codeforlife.e
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_ocado_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/ocado/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We were looking for a platform with wide adoption, and that was where the momentum was, the two paths converged, and we didn’t even go through any proof-of-concept stage. The Code for Life work served that purpose," <span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br><br>- Kevin McCormack, DevOps Team Leader, Ocado</span>
|
||||
</div>
|
||||
@@ -68,7 +68,7 @@ Bryant had already been using Kubernetes with <a href="https://www.codeforlife.e
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_ocado_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/ocado/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"The unified API of Kubernetes means this is all in one place, and it’s one flow for approval and rollout. I’ve seen features go from development to production inside of a week now. In the old world, a new application deployment could easily take over a month." <span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br><br>- Mike Bryant, Platform Engineer, Ocado</span>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@ cid: caseStudies
|
||||
css: /css/style_case_studies.css
|
||||
---
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_openAI_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/openAI/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/openAI_logo.png" style="margin-bottom:-1%" class="header_logo"><br> <div class="subhead">Launching and Scaling Up Experiments, Made Simple
|
||||
|
||||
</div></h1>
|
||||
@@ -56,7 +56,7 @@ css: /css/style_case_studies.css
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_openAI_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/openAI/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
OpenAI’s experiments take advantage of Kubernetes’ benefits, including portability. "Because Kubernetes provides a consistent API, we can move our research experiments very easily between clusters..."
|
||||
|
||||
@@ -69,7 +69,7 @@ css: /css/style_case_studies.css
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_openAI_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/openAI/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"One of our researchers who is working on a new distributed training system has been able to get his experiment running in two or three days," says Berner. "In a week or two he scaled it out to hundreds of GPUs. Previously, that would have easily been a couple of months of work."
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@ featured: false
|
||||
quote: >
|
||||
We’re already seeing tremendous benefits with Kubernetes—improved engineering productivity, faster delivery of applications and a simplified infrastructure. But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online.
|
||||
---
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_pearson_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/pearson/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/pearson_logo.png" style="margin-bottom:-1.5%;" class="header_logo"><br> <div class="subhead">Reinventing the World’s Largest Education Company With Kubernetes
|
||||
</div></h1>
|
||||
</div>
|
||||
@@ -47,7 +47,7 @@ quote: >
|
||||
The team adopted Kubernetes when it was still version 1.2 and are still going strong now on 1.7; they use Terraform and Ansible to deploy it on to basic AWS primitives. "We were trying to understand how we can create value for Pearson from this technology," says Ben Somogyi, Principal Architect for the Cloud Platforms. "It turned out that Kubernetes’ benefits are huge. We’re trying to help our applications development teams that use our platform go faster, so we filled that gap with a CI/CD pipeline that builds their images for them, standardizes them, patches everything up, allows them to deploy their different environments onto the cluster, and obfuscating the details of how difficult the work underneath the covers is."
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_pearson_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/pearson/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Your internal customers need to feel like they are choosing the very best option for them. We are experiencing this first hand in the growth of adoption. We are seeing triple-digit, year-on-year growth of the service."<span style="font-size:16px;text-transform:uppercase;letter-spacing:0.1em;"><br><br>— Chris Jackson, Director for Cloud Platforms & SRE at Pearson</span>
|
||||
</div>
|
||||
@@ -60,7 +60,7 @@ quote: >
|
||||
Jackson estimates they’ve achieved a 15-20% boost in productivity for developer teams who adopt the platform. They also see a reduction in the number of customer-impacting incidents. Plus, says Jackson, "Teams who were previously limited to 1-2 releases per academic year can now ship code multiple times per day!"
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_pearson_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/pearson/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"Teams who were previously limited to 1-2 releases per academic year can now ship code multiple times per day!" <span style="font-size:16px;text-transform:uppercase;letter-spacing:0.1em;"><br><br>— Chris Jackson, Director for Cloud Platforms & SRE at Pearson</span>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_pingcap_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/pingcap/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/pingcap_logo.png" class="header_logo" style="width:20%;margin-bottom:-1.5%"><br> <div class="subhead" style="margin-top:1%">PingCAP Bets on Cloud Native for Its TiDB Database Platform
|
||||
|
||||
</div></h1>
|
||||
@@ -52,7 +52,7 @@ featured: false
|
||||
Knowing that using a distributed system isn’t easy, the PingCAP team began looking for the right orchestration layer to help reduce some of that complexity for end users. Kubernetes had been on their radar for quite some time. "We knew Kubernetes had the promise of helping us solve our problems," says Xu. "We were just waiting for it to mature."
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_pingcap_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/pingcap/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"With the governance process being so open, it’s not hard to find out what’s the latest development in the technology and community, or figure out who to reach out to if we have problems or issues."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- KEVIN XU, GENERAL MANAGER OF GLOBAL STRATEGY AND OPERATIONS, PINGCAP</span>
|
||||
|
||||
@@ -65,7 +65,7 @@ featured: false
|
||||
TiDB’s cloud native architecture consists of a stateless SQL layer (also called TiDB) and a persistent key-value storage layer that supports distributed transactions (<a href="https://github.com/tikv/tikv">TiKV</a>, which is now in the CNCF Sandbox), which are loosely coupled. "You can scale both out or in depending on your computation and storage needs, and the two scaling processes can happen independent of each other," says Xu. The PingCAP team also built the <a href="https://github.com/pingcap/tidb-operator">TiDB Operator</a> based on Kubernetes, which helps bootstrap a TiDB cluster on any cloud environment and simplifies and automates deployment, scaling, scheduling, upgrades, and maintenance. The company also recently previewed its fully-managed <a href="https://www.pingcap.com/blog/announcing-tidb-cloud-managed-as-a-service-and-in-the-marketplace/">TiDB Cloud</a> offering.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_pingcap_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/pingcap/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"A cloud native infrastructure will not only save you money and allow you to be more in control of the infrastructure resources you consume, but also empower new product innovation, new experience for your users, and new business possibilities. It’s both a cost reducer and a money maker." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- KEVIN XU, GENERAL MANAGER OF GLOBAL STRATEGY AND OPERATIONS, PINGCAP</span>
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@ quote: >
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_pinterest_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/pinterest/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/pinterest_logo.png" style="margin-bottom:-1%" class="header_logo"><br> <div class="subhead">Pinning Its Past, Present, and Future on Cloud Native
|
||||
|
||||
</div></h1>
|
||||
@@ -60,7 +60,7 @@ The first phase involved moving to Docker. "Pinterest has been heavily running o
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_pinterest_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/pinterest/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Though Kubernetes lacked certain things we wanted, we realized that by the time we get to productionizing many of those things, we’ll be able to leverage what the community is doing." <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase;line-height:14px"><br><br>— MICHEAL BENEDICT, PRODUCT MANAGER FOR THE CLOUD AND THE DATA INFRASTRUCTURE GROUP AT PINTEREST</span>
|
||||
</div>
|
||||
@@ -75,7 +75,7 @@ At the beginning of 2018, the team began onboarding its first use case into the
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_pinterest_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/pinterest/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"So far it’s been good, especially the elasticity around how we can configure our Jenkins workloads on Kubernetes shared cluster. That is the win we were pushing for." <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase;line-height:14px"><br><br>— MICHEAL BENEDICT, PRODUCT MANAGER FOR THE CLOUD AND THE DATA INFRASTRUCTURE GROUP AT PINTEREST</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@ featured: false
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_prowise_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/prowise/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/prowise_logo.png" class="header_logo" style="width:25%;margin-bottom:-1%"><br> <div class="subhead" style="margin-top:1%">Prowise: How Kubernetes is Enabling the Edtech Solution’s Global Expansion
|
||||
</div></h1>
|
||||
|
||||
@@ -50,7 +50,7 @@ featured: false
|
||||
The company’s existing infrastructure on Microsoft Azure Cloud was all on virtual machines, “a pretty traditional setup,” van den Bosch says. “We decided that we want some features in our software that requires being able to scale quickly, being able to deploy new applications and versions on different versions of different programming languages quickly. And we didn’t really want the hassle of trying to keep those servers in a particular state.”
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_prowise_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/prowise/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"You don’t have to go all-in immediately. You can just take a few projects, a service, run it alongside your more traditional stack, and build it up from there. Kubernetes scales, so as you add applications and services to it, it will scale with you. You don’t have to do it all at once, and that’s really a secret to everything, but especially true to Kubernetes."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>— VICTOR VAN DEN BOSCH, SENIOR DEVOPS ENGINEER, PROWISE</span>
|
||||
|
||||
@@ -67,7 +67,7 @@ featured: false
|
||||
With its first web-based applications now running in beta on Prowise’s Kubernetes platform, the team is seeing the benefits of rapid and smooth deployments. “The old way of deploying took half an hour of preparations and half an hour deploying it. With Kubernetes, it’s a couple of seconds,” says Senior Developer Bart Haalstra. As a result, adds van den Bosch, “We’ve gone from quarterly releases to a release every month in production. We’re pretty much deploying every hour or just when we find that a feature is ready for production. Before, our releases were mostly done on off-hours, where it couldn’t impact our customers, as our confidence the process itself was relatively low. With Kubernetes, we dare to deploy in the middle of a busy day with high confidence the deployment will succeed.”
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_prowise_banner4.jpg')" style="width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/prowise/banner4.jpg')" style="width:100%">
|
||||
<div class="banner4text">
|
||||
"Kubernetes allows us to really consider the best tools for a problem. Want to have a full-fledged analytics application developed by a third party that is just right for your use case? Run it. Dabbling in machine learning and AI algorithms but getting tired of waiting days for training to complete? It takes only seconds to scale it. Got a stubborn developer that wants to use a programming language no one has heard of? Let him, if it runs in a container, of course. And all of that while your operations team/DevOps get to sleep at night." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- VICTOR VAN DEN BOSCH, SENIOR DEVOPS ENGINEER, PROWISE</span>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_ricardoch_banner1.png')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/ricardoch/banner1.png')">
|
||||
<h1> CASE STUDY:<img src="/images/ricardoch_logo.png" class="/images/header_logo" style="width:25%;margin-bottom:-1%"><br> <div class="subhead" style="margin-top:1%">ricardo.ch: How Kubernetes Improved Velocity and DevOps Harmony
|
||||
</div></h1>
|
||||
|
||||
@@ -48,7 +48,7 @@ featured: false
|
||||
To address the velocity issue, ricardo.ch CTO Jeremy Seitz established a new software factory called EPD, which consists of 65 engineers, 7 product managers and 2 designers. "We brought these three departments together so that they can kind of streamline this and talk to each other much more closely," says Meury.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_ricardoch_banner3.png')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/ricardoch/banner3.png')">
|
||||
<div class="banner3text">
|
||||
"Being in the End User Community demonstrates that we stand behind these technologies. In Switzerland, if all the companies see that ricardo.ch’s using it, I think that will help adoption. I also like that we’re connected to the other end users, so if there is a really heavy problem, I could go to the Slack channel, and say, ‘Hey, you guys…’ Like Reddit, Github and New York Times or whoever can give a recommendation on what to use here or how to solve that. So that’s kind of a superpower."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>— CEDRIC MEURY, HEAD OF PLATFORM ENGINEERING, RICARDO.CH</span>
|
||||
|
||||
@@ -64,7 +64,7 @@ featured: false
|
||||
Meury estimates that half of the application has been migrated to Kubernetes. And the plan is to move everything to the Google Cloud Platform by the end of 2018. "We are still running some servers in our own data centers, but all of the containerization efforts and describing our services as Kubernetes manifests will allow us to quite easily make that shift," says Meury.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_ricardoch_banner4.png')" style="width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/ricardoch/banner4.png')" style="width:100%">
|
||||
<div class="banner4text">
|
||||
"One of the core moments was when a front-end developer asked me how to do a port forward from his laptop to a front-end application to debug, and I told him the command. And he was like, ‘Wow, that’s all I need to do?’ He was super excited and happy about it. That showed me that this power in the right hands can just accelerate development."
|
||||
<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- CEDRIC MEURY, HEAD OF PLATFORM ENGINEERING, RICARDO.CH</span>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_slamtec_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/slamtec/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/slamtec_logo.png" class="header_logo" style="width:17%;margin-bottom:%"><br> </h1>
|
||||
<br><br>
|
||||
</div>
|
||||
@@ -47,7 +47,7 @@ featured: false
|
||||
After an evaluation of existing technologies, Ji’s team chose <a href="https://kubernetes.io/">Kubernetes</a> for orchestration. "CNCF brings quality assurance and a complete ecosystem for Kubernetes, which is very important for the wide application of Kubernetes," says Ji. Plus, "avoiding binding to an infrastructure technology or provider can help us ensure that our business is deployed and migrated in cross-regional environments, and can serve users all over the world."
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_slamtec_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/slamtec/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"CNCF brings quality assurance and a complete ecosystem for Kubernetes, which is very important for the wide application of Kubernetes."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- BENNIU JI, DIRECTOR OF CLOUD COMPUTING BUSINESS DIVISION</span>
|
||||
|
||||
@@ -60,7 +60,7 @@ featured: false
|
||||
The company uses <a href="https://goharbor.io/">Harbor</a> as a container image repository. "Harbor’s replication function helps us implement CI/CD on both private and public clouds," says Ji. "In addition, multi-project support, certification and policy configuration, and integration with Kubernetes are also excellent functions." <a href="https://helm.sh/">Helm</a> is also being used as a package manager, and the team is evaluating the Istio framework. "We’re very pleased that Kubernetes and these frameworks can be seamlessly integrated," Ji adds.
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_slamtec_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/slamtec/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"Cloud native is suitable for microservice architecture, it’s suitable for fast iteration and agile development, and it has a relatively perfect ecosystem and active community." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- BENNIU JI, DIRECTOR OF CLOUD COMPUTING BUSINESS DIVISION</span>
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@ quote: >
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_slingtv_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/slingtv/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/slingtv_logo.png" style="margin-bottom:-1.5%;width:15% !important" class="header_logo"><br> <div class="subhead" style="padding-top:1% !important">Sling TV: Marrying Kubernetes and AI to Enable Proper Web Scale
|
||||
|
||||
</div></h1>
|
||||
@@ -62,7 +62,7 @@ Led by the belief that “the cloud native architectures and patterns really giv
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_slingtv_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/slingtv/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
“We needed the flexibility to enable our use case versus just a simple orchestrater. Enabling our future in a way that did not give us vendor lock-in was also a key part of our strategy. I think that is part of the Rancher value proposition.” <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase;line-height:14px"><br><br>— Brad Linder, Cloud Native & Big Data Evangelist for Sling TV</span>
|
||||
</div>
|
||||
@@ -75,7 +75,7 @@ With the emphasis on common tooling, “We are getting to the place where we can
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_slingtv_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/slingtv/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
“We have to be able to react to changes and hiccups in the matrix. It is the foundation for our ability to deliver a high-quality service for our customers." <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase;line-height:14px"><br><br>— Brad Linder, Cloud Native & Big Data Evangelist for Sling TV</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@ logo: sos_featured_logo.png
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_sos_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/sos/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/sos_logo.png" class="header_logo" style="width:20%;margin-bottom:-1.2%"><br> <div class="subhead" style="margin-top:1%">SOS International: Using Kubernetes to Provide Emergency Assistance in a Connected World
|
||||
|
||||
</div></h1>
|
||||
@@ -56,7 +56,7 @@ logo: sos_featured_logo.png
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_sos_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/sos/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"We have to deliver new digital services, but we also have to migrate the old stuff, and we have to transform our core systems into new systems built on top of this platform. One of the reasons why we chose this technology is that we could build new digital services while changing the old one."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Martin Ahrentsen, Head of Enterprise Architecture, SOS International</span>
|
||||
|
||||
@@ -70,7 +70,7 @@ logo: sos_featured_logo.png
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_sos_banner4.jpg');width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/sos/banner4.jpg');width:100%">
|
||||
<div class="banner4text">
|
||||
"During our onboarding, we could see that we were chosen by IT professionals because we provided the new technologies." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Martin Ahrentsen, Head of Enterprise Architecture, SOS International</span>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_spotify_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/spotify/banner1.jpg')">
|
||||
<h1> CASE STUDY: Spotify<br> <div class="subhead" style="margin-top:1%">Spotify: An Early Adopter of Containers, Spotify Is Migrating from Homegrown Orchestration to Kubernetes
|
||||
|
||||
</div></h1>
|
||||
@@ -52,7 +52,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_spotify_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/spotify/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"The community has been extremely helpful in getting us to work through all the technology much faster and much easier. And it’s helped us validate all the things we’re doing." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Dave Zolotusky, Software Engineer, Infrastructure and Operations, Spotify</span>
|
||||
|
||||
@@ -67,7 +67,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_spotify_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/spotify/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"We were able to use a lot of the Kubernetes APIs and extensibility features to support and interface with our legacy infrastructure, so the integration was straightforward and easy."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- James Wen, Site Reliability Engineer, Spotify</span>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@ cid: caseStudies
|
||||
css: /css/style_case_studies.css
|
||||
---
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_squarespace_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/squarespace/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/squarespace_logo.png" class="header_logo"><br> <div class="subhead">Squarespace: Gaining Productivity and Resilience with Kubernetes
|
||||
</div></h1>
|
||||
|
||||
@@ -51,7 +51,7 @@ Since Squarespace moved to Kubernetes, in conjunction with modernizing its netwo
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_squarespace_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/squarespace/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
After experimenting with another container orchestration platform and "breaking it in very painful ways," Lynch says, the team began experimenting with Kubernetes in mid-2016 and found that it "answered all the questions that we had."
|
||||
|
||||
@@ -68,7 +68,7 @@ Since Squarespace moved to Kubernetes, in conjunction with modernizing its netwo
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_squarespace_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/squarespace/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"We switched to Kubernetes, a new world....It allowed us to streamline our process, so we can now easily create an entire microservice project from templates," Lynch says. And the whole process takes only five minutes, an almost 85% reduction in time compared to their VM deployment.
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_thredup_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/thredup/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/thredup_logo.png" class="header_logo" style="width:17%;margin-bottom:%"><br> </h1>
|
||||
<br><br>
|
||||
</div>
|
||||
@@ -49,7 +49,7 @@ featured: false
|
||||
"We wanted to make sure that our engineers could embrace the DevOps mindset as they built software," Homer says. "It was really important to us that they could own the life cycle from end to end, from conception at design, through shipping it and running it in production, from marketing to ecommerce, the user experience and our internal distribution center operations."
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_thredup_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/thredup/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Kubernetes enabled auto scaling in a seamless and easily manageable way on days like Black Friday. We no longer have to sit there adding instances, monitoring the traffic, doing a lot of manual work."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- CHRIS HOMER, COFOUNDER/CTO, THREDUP</span>
|
||||
|
||||
@@ -62,7 +62,7 @@ featured: false
|
||||
According to the infrastructure team, the key improvement was the consistent experience Kubernetes enabled for developers. "It lets developers work in the same environment that their application will be running in production," says Infrastructure Engineer Oleksandr Snagovskyi. Plus, "It became easier to test, easier to refine, and easier to deploy, because everything’s done automatically," says Infrastructure Engineer Oleksii Asiutin. "One of the main goals of our team is to make developers’ lives more comfortable, and we are achieving this with Kubernetes. They can experiment with existing applications and create new services, and do it all blazingly fast."
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_thredup_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/thredup/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"One of the main goals of our team is to make developers’ lives more comfortable, and we are achieving this with Kubernetes. They can experiment with existing applications and create new services, and do it all blazingly fast." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- OLEKSII ASIUTIN, INFRASTRUCTURE ENGINEER, THREDUP</span>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@ css: /css/style_case_studies.css
|
||||
featured: false
|
||||
---
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_vsco_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/vsco/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/vsco_logo.png" class="header_logo" style="width:17%;margin-bottom:-2%"><br> <div class="subhead" style="margin-top:1%">VSCO: How a Mobile App Saved 70% on Its EC2 Bill with Cloud Native
|
||||
</div></h1>
|
||||
|
||||
@@ -48,7 +48,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_vsco_banner2.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/vsco/banner2.jpg')">
|
||||
<div class="banner3text">
|
||||
"Kubernetes seemed to have the strongest open source community around it, plus, we had started to standardize on a lot of the Google stack, with Go as a language, and gRPC for almost all communication between our own services inside the data center. So it seemed pretty natural for us to choose Kubernetes."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- MELINDA LU, ENGINEERING MANAGER FOR VSCO'S MACHINE LEARNING TEAM</span>
|
||||
|
||||
@@ -64,7 +64,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_vsco_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/vsco/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"I've been really impressed seeing how our engineers have come up with really creative solutions to things by just combining a lot of Kubernetes primitives, exposing Kubernetes constructs as a service to our engineers as opposed to exposing higher order constructs has worked well for us. It lets you get familiar with the technology and do more interesting things with it." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- MELINDA LU, ENGINEERING MANAGER FOR VSCO’S MACHINE LEARNING TEAM</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@ featured: false
|
||||
---
|
||||
|
||||
|
||||
<div class="banner1" style="background-image: url('/images/CaseStudy_woorank_banner1.jpg')">
|
||||
<div class="banner1" style="background-image: url('/images/case-studies/woorank/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/woorank_logo.png" class="header_logo" style="width:25%;margin-bottom:-1%"><br> <div class="subhead" style="margin-top:1%">Woorank: How Kubernetes Helped a Startup Manage 50 Microservices with<br>12 Engineers—At 30% Less Cost
|
||||
</div></h1>
|
||||
|
||||
@@ -50,7 +50,7 @@ featured: false
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_woorank_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/woorank/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"Cloud native technologies have brought to us a transparency on everything going on in our system, from the code to the server. It has brought huge cost savings and a better way of dealing with those costs and keeping them under control. And performance-wise, it has helped our team understand how we can make our code work better on the cloud native infrastructure."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>— NILS DE MOOR, CTO/COFOUNDER, WOORANK</span>
|
||||
|
||||
@@ -66,7 +66,7 @@ featured: false
|
||||
The company’s number one concern was immediately erased: Maintaining Kubernetes is the responsibility of just one person on staff, and it’s not his fulltime job. Updating the old infrastructure “was always a pain,” says De Moor: It used to take two active working days, “and it was always a bit scary when we did that.” With Kubernetes, it’s just a matter of “a few hours of passively following the process.”
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_woorank_banner4.jpg')" style="width:100%">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/woorank/banner4.jpg')" style="width:100%">
|
||||
<div class="banner4text">
|
||||
"When things fail and errors pop up, the system tries to heal itself, and that’s really, for us, the key reason to work with Kubernetes. It allowed us to set up certain testing frameworks to just be alerted when things go wrong, instead of having to look at whether everything went right. It’s made people’s lives much easier. It’s quite a big mindset change." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- NILS DE MOOR, CTO/COFOUNDER, WOORANK</span>
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@ quote: >
|
||||
With OpenTracing, my team was able to look at a trace and make optimization suggestions to another team without ever looking at their code.
|
||||
---
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_workiva_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/workiva/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/workiva_logo.png" style="margin-bottom:0%" class="header_logo"><br> <div class="subhead">Using OpenTracing to Help Pinpoint the Bottlenecks
|
||||
|
||||
</div></h1>
|
||||
@@ -30,12 +30,12 @@ quote: >
|
||||
<a href="https://www.workiva.com/">Workiva</a> offers a cloud-based platform for managing and reporting business data. This SaaS product, Wdesk, is used by more than 70 percent of the Fortune 500 companies. As the company made the shift from a monolith to a more distributed, microservice-based system, "We had a number of people working on this, all on different teams, so we needed to identify what the issues were and where the bottlenecks were," says Senior Software Architect MacLeod Broad. With back-end code running on Google App Engine, Google Compute Engine, as well as Amazon Web Services, Workiva needed a tracing system that was agnostic of platform. While preparing one of the company’s first products utilizing AWS, which involved a "sync and link" feature that linked data from spreadsheets built in the new application with documents created in the old application on Workiva’s existing system, Broad’s team found an ideal use case for tracing: There were circular dependencies, and optimizations often turned out to be micro-optimizations that didn’t impact overall speed.
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col2">
|
||||
<h2>Solution</h2>
|
||||
Broad’s team introduced the platform-agnostic distributed tracing system OpenTracing to help them pinpoint the bottlenecks.
|
||||
Broad’s team introduced the platform-agnostic distributed tracing system OpenTracing to help them pinpoint the bottlenecks.
|
||||
<br>
|
||||
<h2>Impact</h2>
|
||||
Now used throughout the company, OpenTracing produced immediate results. Software Engineer Michael Davis reports: "Tracing has given us immediate, actionable insight into how to improve our service. Through a combination of seeing where each call spends its time, as well as which calls are most often used, we were able to reduce our average response time by 95 percent (from 600ms to 30ms) in a single fix."
|
||||
@@ -61,14 +61,14 @@ The challenges faced by Broad’s team may sound familiar to other companies tha
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_workiva_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/workiva/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"A tracing system can at a glance explain an architecture, narrow down a performance bottleneck and zero in on it, and generally just help direct an investigation at a high level. Being able to do that at a glance is much faster than at a meeting or with three days of debugging, and it’s a lot faster than never figuring out the problem and just moving on."<span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase"><br>— MACLEOD BROAD, SENIOR SOFTWARE ARCHITECT AT WORKIVA</span>
|
||||
</div>
|
||||
</div>
|
||||
<section class="section3">
|
||||
<div class="fullcol">
|
||||
|
||||
|
||||
Simply put, it was an ideal use case for tracing. "A tracing system can at a glance explain an architecture, narrow down a performance bottleneck and zero in on it, and generally just help direct an investigation at a high level," says Broad. "Being able to do that at a glance is much faster than at a meeting or with three days of debugging, and it’s a lot faster than never figuring out the problem and just moving on."<br><br>
|
||||
With Workiva’s back-end code running on <a href="https://cloud.google.com/compute/">Google Compute Engine</a> as well as App Engine and AWS, Broad knew that he needed a tracing system that was platform agnostic. "We were looking at different tracing solutions," he says, "and we decided that because it seemed to be a very evolving market, we didn’t want to get stuck with one vendor. So OpenTracing seemed like the cleanest way to avoid vendor lock-in on what backend we actually had to use."<br><br>
|
||||
Once they introduced OpenTracing into this first use case, Broad says, "The trace made it super obvious where the bottlenecks were." Even though everyone had assumed it was Workiva’s existing code that was slowing things down, that wasn’t exactly the case. "It looked like the existing code was slow only because it was reaching out to our next-generation services, and they were taking a very long time to service all those requests," says Broad. "On the waterfall graph you can see the exact same work being done on every request when it was calling back in. So every service request would look the exact same for every response being paged out. And then it was just a no-brainer of, ‘Why is it doing all this work again?’"<br><br>
|
||||
@@ -78,7 +78,7 @@ Using the insight OpenTracing gave them, "My team was able to look at a trace an
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_workiva_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/workiva/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"We were looking at different tracing solutions and we decided that because it seemed to be a very evolving market, we didn’t want to get stuck with one vendor. So OpenTracing seemed like the cleanest way to avoid vendor lock-in on what backend we actually had to use." <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase"><br>— MACLEOD BROAD, SENIOR SOFTWARE ARCHITECT AT WORKIVA</span>
|
||||
</div>
|
||||
@@ -90,7 +90,7 @@ Using the insight OpenTracing gave them, "My team was able to look at a trace an
|
||||
Some teams were won over quickly. "Tracing has given us immediate, actionable insight into how to improve our [Workspaces] service," says Software Engineer Michael Davis. "Through a combination of seeing where each call spends its time, as well as which calls are most often used, we were able to reduce our average response time by 95 percent (from 600ms to 30ms) in a single fix." <br><br>
|
||||
Most of Workiva’s major products are now traced using OpenTracing, with data pushed into <a href="https://cloud.google.com/stackdriver/">Google StackDriver</a>. Even the products that aren’t fully traced have some components and libraries that are. <br><br>
|
||||
Broad points out that because some of the engineers were working on App Engine and already had experience with the platform’s Appstats library for profiling performance, it didn’t take much to get them used to using OpenTracing. But others were a little more reluctant. "The biggest hindrance to adoption I think has been the concern about how much latency is introducing tracing [and StackDriver] going to cost," he says. "People are also very concerned about adding middleware to whatever they’re working on. Questions about passing the context around and how that’s done were common. A lot of our Go developers were fine with it, because they were already doing that in one form or another. Our Java developers were not super keen on doing that because they’d used other systems that didn’t require that."<br><br>
|
||||
But the benefits clearly outweighed the concerns, and today, Workiva’s official policy is to use tracing."
|
||||
But the benefits clearly outweighed the concerns, and today, Workiva’s official policy is to use tracing."
|
||||
In fact, Broad believes that tracing naturally fits in with Workiva’s existing logging and metrics systems. "This was the way we presented it internally, and also the way we designed our use," he says. "Our traces are logged in the exact same mechanism as our app metric and logging data, and they get pushed the exact same way. So we treat all that data exactly the same when it’s being created and when it’s being recorded. We have one internal library that we use for logging, telemetry, analytics and tracing."
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ In fact, Broad believes that tracing naturally fits in with Workiva’s existing
|
||||
|
||||
<div class="banner5">
|
||||
<div class="banner5text">
|
||||
"Tracing has given us immediate, actionable insight into how to improve our [Workspaces] service. Through a combination of seeing where each call spends its time, as well as which calls are most often used, we were able to reduce our average response time by 95 percent (from 600ms to 30ms) in a single fix." <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase"><br>— Michael Davis, Software Engineer, Workiva </span>
|
||||
"Tracing has given us immediate, actionable insight into how to improve our [Workspaces] service. Through a combination of seeing where each call spends its time, as well as which calls are most often used, we were able to reduce our average response time by 95 percent (from 600ms to 30ms) in a single fix." <span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase"><br>— Michael Davis, Software Engineer, Workiva </span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ quote: >
|
||||
We had to change some practices and code, and the way things were built, but we were able to get our main systems onto Kubernetes in a month or so, and then into production within two months. That’s very fast for a finance company.
|
||||
---
|
||||
|
||||
<div class="banner1 desktop" style="background-image: url('/images/CaseStudy_ygrene_banner1.jpg')">
|
||||
<div class="banner1 desktop" style="background-image: url('/images/case-studies/ygrene/banner1.jpg')">
|
||||
<h1> CASE STUDY:<img src="/images/ygrene_logo.png" style="margin-bottom:-1%" class="header_logo"><br> <div class="subhead">Ygrene: Using Cloud Native to Bring Security and Scalability to the Finance Industry
|
||||
|
||||
</div></h1>
|
||||
@@ -61,7 +61,7 @@ By 2017, deployments and scalability had become pain points. The company was uti
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner3" style="background-image: url('/images/CaseStudy_ygrene_banner3.jpg')">
|
||||
<div class="banner3" style="background-image: url('/images/case-studies/ygrene/banner3.jpg')">
|
||||
<div class="banner3text">
|
||||
"CNCF has been an amazing incubator for so many projects. Now we look at its webpage regularly to find out if there are any new, awesome, high-quality projects we can implement into our stack. It’s actually become a hub for us for knowing what software we need to be looking at to make our systems more secure or more scalable."<span style="font-size:14px;letter-spacing:0.12em;padding-top:20px;text-transform:uppercase;line-height:14px"><br><br>— Austin Adams, Development Manager, Ygrene Energy Fund</span>
|
||||
</div>
|
||||
@@ -78,7 +78,7 @@ Notary, in particular, "has been a godsend," says Adams. "We need to know that o
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<div class="banner4" style="background-image: url('/images/CaseStudy_ygrene_banner4.jpg')">
|
||||
<div class="banner4" style="background-image: url('/images/case-studies/ygrene/banner4.jpg')">
|
||||
<div class="banner4text">
|
||||
"We had to change some practices and code, and the way things were built," Adams says, "but we were able to get our main systems onto Kubernetes in a month or so, and then into production within two months. That’s very fast for a finance company."</span>
|
||||
</div>
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
{{ with site.Params.language_alternatives }}
|
||||
{{ range . }}
|
||||
{{ with (where $.Translations ".Lang" . ) }}
|
||||
{{ $p := index . 0 }}
|
||||
{{ $p := index . 0 }}
|
||||
{{ $pages = $pages | lang.Merge $p.Pages }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ $featured := (where $pages "Params.featured" true).ByWeight | first 4 }}
|
||||
<section id="mainContent">
|
||||
<div class="main-section">
|
||||
@@ -59,7 +59,7 @@
|
||||
{{ end }}
|
||||
</a>
|
||||
{{ end }}
|
||||
<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform" class="tell-your-story"><img height="127px"src="/images/case_studies/story.svg" alt="{{ T "layouts_case_studies_list_tell" }}"></a>
|
||||
<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform" class="tell-your-story"><img height="127px"src="/images/case-studies/story.svg" alt="{{ T "layouts_case_studies_list_tell" }}"></a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -50,7 +50,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_amadeus_banner1.jpg');
|
||||
background: url('/images/case-studies/amadeus/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -82,7 +82,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_amadeus_banner3.jpg');
|
||||
background: url('/images/case-studies/amadeus/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_amadeus_banner4.jpg');
|
||||
background: url('/images/case-studies/amadeus/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -276,7 +276,7 @@ h4 {
|
||||
.logo {
|
||||
width:8%;
|
||||
}
|
||||
|
||||
|
||||
.col1 {
|
||||
width: 95%;
|
||||
padding-right:8%;
|
||||
@@ -310,7 +310,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_amadeus_banner1.jpg');
|
||||
background: url('/images/case-studies/amadeus/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -340,7 +340,7 @@ h4 {
|
||||
line-height:23px;
|
||||
width:90%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_amadeus_banner3.jpg');
|
||||
background: url('/images/case-studies/amadeus/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -354,7 +354,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_amadeus_banner4.jpg');
|
||||
background: url('/images/case-studies/amadeus/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
@@ -439,7 +439,7 @@ h4 {
|
||||
} /* End Media 910px */
|
||||
|
||||
@media screen and (max-width: 580px){
|
||||
|
||||
|
||||
.header_logo {
|
||||
width:60%;
|
||||
margin-bottom:1%;
|
||||
@@ -448,6 +448,6 @@ h4 {
|
||||
}
|
||||
|
||||
.banner1 {
|
||||
background: url('/images/CaseStudy_amadeus_banner_mobile.jpg');
|
||||
background: url('/images/case-studies/amadeus/banner_mobile.jpg');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10.9%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_ancestry_banner1.jpg');
|
||||
background: url('/images/case-studies/ancestry/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -74,7 +74,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_ancestry_banner3.jpg');
|
||||
background: url('/images/case-studies/ancestry/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_ancestry_banner4.jpg');
|
||||
background: url('/images/case-studies/ancestry/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ h4 {
|
||||
.logo {
|
||||
width:8%;
|
||||
}
|
||||
|
||||
|
||||
.col1 {
|
||||
width: 90%;
|
||||
padding-left:5%;
|
||||
|
||||
@@ -47,7 +47,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:34px;
|
||||
background: url('/images/CaseStudy_blablacar_banner1.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_blablacar_banner3.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ h1 {
|
||||
font-size:25px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_blablacar_banner4.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_blablacar_banner1.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -334,7 +334,7 @@ h4 {
|
||||
line-height:23px;
|
||||
width:90%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_blablacar_banner3.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -348,7 +348,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_blablacar_banner4.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
@@ -441,6 +441,6 @@ h4 {
|
||||
}
|
||||
|
||||
.banner1 {
|
||||
background: url('/images/CaseStudy_blablacar_banner1_mobile.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner1_mobile.jpg');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_blackrock_banner1.jpg');
|
||||
background: url('/images/case-studies/blackrock/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_blackrock_banner3.jpg');
|
||||
background: url('/images/case-studies/blackrock/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_blackrock_banner4.jpg');
|
||||
background: url('/images/case-studies/blackrock/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_blackrock_banner1.jpg');
|
||||
background: url('/images/case-studies/blackrock/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ h4 {
|
||||
line-height:23px;
|
||||
width:90%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_blackrock_banner3.jpg');
|
||||
background: url('/images/case-studies/blackrock/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -346,7 +346,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_blackrock_banner4.jpg');
|
||||
background: url('/images/case-studies/blackrock/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
@@ -431,7 +431,7 @@ h4 {
|
||||
} /* End Media 910px */
|
||||
|
||||
@media screen and (max-width: 580px){
|
||||
|
||||
|
||||
.header_logo {
|
||||
width:60%;
|
||||
margin-bottom:1%;
|
||||
|
||||
@@ -44,7 +44,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:9.9%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_box_banner1.jpg');
|
||||
background: url('/images/case-studies/box/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -72,7 +72,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_box_banner3.jpg');
|
||||
background: url('/images/case-studies/box/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_box_banner4.jpg');
|
||||
background: url('/images/case-studies/box/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ h4 {
|
||||
.logo {
|
||||
width:8%;
|
||||
}
|
||||
|
||||
|
||||
.col1 {
|
||||
width: 100%;
|
||||
padding-left:5%;
|
||||
@@ -292,7 +292,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_box_banner1.jpg');
|
||||
background: url('/images/case-studies/box/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_box_banner3.jpg');
|
||||
background: url('/images/case-studies/box/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -337,7 +337,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_box_banner4.jpg');
|
||||
background: url('/images/case-studies/box/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
|
||||
@@ -45,7 +45,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:9.9%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_buffer_banner3.jpg');
|
||||
background: url('/images/case-studies/buffer/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -75,7 +75,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_buffer_banner1.jpg');
|
||||
background: url('/images/case-studies/buffer/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_buffer_banner4.jpg');
|
||||
background: url('/images/case-studies/buffer/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -259,7 +259,7 @@ h4 {
|
||||
.logo {
|
||||
width:8%;
|
||||
}
|
||||
|
||||
|
||||
.col1 {
|
||||
width: 100%;
|
||||
padding-left:5%;
|
||||
@@ -295,7 +295,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_buffer_banner3.jpg');
|
||||
background: url('/images/case-studies/buffer/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -328,7 +328,7 @@ h4 {
|
||||
padding-left:15%;
|
||||
padding-right:10%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_buffer_banner1.jpg');
|
||||
background: url('/images/case-studies/buffer/banner1.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -342,7 +342,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_buffer_banner4.jpg');
|
||||
background: url('/images/case-studies/buffer/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
|
||||
@@ -47,7 +47,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_crowdfire_banner1.jpg');
|
||||
background: url('/images/case-studies/crowdfire/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_crowdfire_banner3.jpg');
|
||||
background: url('/images/case-studies/crowdfire/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_crowdfire_banner4.jpg');
|
||||
background: url('/images/case-studies/crowdfire/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ h4 {
|
||||
.logo {
|
||||
width:8%;
|
||||
}
|
||||
|
||||
|
||||
.col1 {
|
||||
width: 95%;
|
||||
padding-right:8%;
|
||||
@@ -302,7 +302,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_crowdfire_banner1.jpg');
|
||||
background: url('/images/case-studies/crowdfire/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ h4 {
|
||||
line-height:23px;
|
||||
width:90%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_crowdfire_banner3.jpg');
|
||||
background: url('/images/case-studies/crowdfire/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -346,7 +346,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_crowdfire_banner4.jpg');
|
||||
background: url('/images/case-studies/crowdfire/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
@@ -441,6 +441,6 @@ h4 {
|
||||
}
|
||||
|
||||
.banner1 {
|
||||
background: url('/images/CaseStudy_crowdfire_banner1.jpg');
|
||||
background: url('/images/case-studies/crowdfire/banner1.jpg');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ body {
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color:#ffffff !important;
|
||||
background-color:#ffffff !important;
|
||||
}
|
||||
|
||||
h1 {
|
||||
@@ -44,7 +44,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:9.9%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_golfnow_banner1.jpg');
|
||||
background: url('/images/case-studies/golfnow/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -74,7 +74,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_golfnow_banner3.jpg');
|
||||
background: url('/images/case-studies/golfnow/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_golfnow_banner4.jpg');
|
||||
background: url('/images/case-studies/golfnow/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_golfnow_banner1.jpg');
|
||||
background: url('/images/case-studies/golfnow/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ h4 {
|
||||
padding-left:15%;
|
||||
padding-right:10%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_golfnow_banner3.jpg');
|
||||
background: url('/images/case-studies/golfnow/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -341,7 +341,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_golfnow_banner4.jpg');
|
||||
background: url('/images/case-studies/golfnow/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
@@ -402,7 +402,7 @@ h4 {
|
||||
text-align:center;
|
||||
color:#ffffff;
|
||||
}
|
||||
|
||||
|
||||
.fullcol {
|
||||
margin-top:6%;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_haufegroup_banner1.jpg');
|
||||
background: url('/images/case-studies/haufegroup/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_haufegroup_banner3.jpg');
|
||||
background: url('/images/case-studies/haufegroup/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_haufegroup_banner4.jpg');
|
||||
background: url('/images/case-studies/haufegroup/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_haufegroup_banner1.jpg');
|
||||
background: url('/images/case-studies/haufegroup/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ h4 {
|
||||
line-height:23px;
|
||||
width:90%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_haufegroup_banner3.jpg');
|
||||
background: url('/images/case-studies/haufegroup/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -346,7 +346,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_haufegroup_banner4.jpg');
|
||||
background: url('/images/case-studies/haufegroup/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
@@ -439,6 +439,6 @@ h4 {
|
||||
}
|
||||
|
||||
.banner1 {
|
||||
background: url('/images/CaseStudy_haufegroup_banner1.jpg');
|
||||
background: url('/images/case-studies/haufegroup/banner1.jpg');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_huawei_banner1.jpg');
|
||||
background: url('/images/case-studies/huawei/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_huawei_banner3.jpg');
|
||||
background: url('/images/case-studies/huawei/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_huawei_banner4.jpg');
|
||||
background: url('/images/case-studies/huawei/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_huawei_banner1.jpg');
|
||||
background: url('/images/case-studies/huawei/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ h4 {
|
||||
line-height:23px;
|
||||
width:90%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_huawei_banner3.jpg');
|
||||
background: url('/images/case-studies/huawei/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -346,7 +346,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_huawei_banner4.jpg');
|
||||
background: url('/images/case-studies/huawei/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
@@ -439,6 +439,6 @@ h4 {
|
||||
}
|
||||
|
||||
.banner1 {
|
||||
background: url('/images/CaseStudy_blablacar_banner1_mobile.jpg');
|
||||
background: url('/images/case-studies/blablacar/banner1_mobile.jpg');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_peardeck_banner3.jpg');
|
||||
background: url('/images/case-studies/peardeck/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -74,7 +74,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_peardeck_banner1.jpg');
|
||||
background: url('/images/case-studies/peardeck/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_peardeck_banner2.jpg');
|
||||
background: url('/images/case-studies/peardeck/banner2.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_peardeck_banner1.jpg');
|
||||
background: url('/images/case-studies/peardeck/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ h4 {
|
||||
padding-left:15%;
|
||||
padding-right:10%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_peardeck_banner3.jpg');
|
||||
background: url('/images/case-studies/peardeck/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -341,7 +341,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_peardeck_banner2.jpg');
|
||||
background: url('/images/case-studies/peardeck/banner2.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
|
||||
@@ -40,7 +40,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:9.9%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_wink_banner1.jpg');
|
||||
background: url('/images/case-studies/wink/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -70,7 +70,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_wink_banner3.jpg');
|
||||
background: url('/images/case-studies/wink/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ h1 {
|
||||
font-size:21px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:32px;
|
||||
background: url('/images/CaseStudy_wink_banner4.jpg');
|
||||
background: url('/images/case-studies/wink/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -290,7 +290,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_wink_banner1.jpg');
|
||||
background: url('/images/case-studies/wink/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ h4 {
|
||||
padding-left:15%;
|
||||
padding-right:10%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_wink_banner3.jpg');
|
||||
background: url('/images/case-studies/wink/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -337,7 +337,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_wink_banner4.jpg');
|
||||
background: url('/images/case-studies/wink/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
|
||||
@@ -47,7 +47,7 @@ h1 {
|
||||
padding-bottom:0.5%;
|
||||
padding-left:10%;
|
||||
font-size:32px;
|
||||
background: url('/images/CaseStudy_zalando_banner1.jpg');
|
||||
background: url('/images/case-studies/zalando/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_zalando_banner3.jpg');
|
||||
background: url('/images/case-studies/zalando/banner3.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ h1 {
|
||||
font-size:24px;
|
||||
letter-spacing:0.03em;
|
||||
line-height:34px;
|
||||
background: url('/images/CaseStudy_zalando_banner4.jpg');
|
||||
background: url('/images/case-studies/zalando/banner4.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ h4 {
|
||||
padding-bottom:2%;
|
||||
padding-left:10%;
|
||||
font-size:18px;
|
||||
background: url('/images/CaseStudy_zalando_banner1.jpg');
|
||||
background: url('/images/case-studies/zalando/banner1.jpg');
|
||||
background-size:100% auto;
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ h4 {
|
||||
line-height:23px;
|
||||
width:90%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_zalando_banner3.jpg');
|
||||
background: url('/images/case-studies/zalando/banner3.jpg');
|
||||
}
|
||||
|
||||
.banner4 {
|
||||
@@ -346,7 +346,7 @@ h4 {
|
||||
line-height:24px;
|
||||
width:100%;
|
||||
float:left;
|
||||
background: url('/images/CaseStudy_zalando_banner4.jpg');
|
||||
background: url('/images/case-studies/zalando/banner4.jpg');
|
||||
}
|
||||
|
||||
.banner5 {
|
||||
|
||||
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 479 KiB After Width: | Height: | Size: 479 KiB |
|
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 251 KiB |
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 296 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 232 KiB After Width: | Height: | Size: 232 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 498 KiB After Width: | Height: | Size: 498 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 269 KiB |
|
Before Width: | Height: | Size: 457 KiB After Width: | Height: | Size: 457 KiB |
|
Before Width: | Height: | Size: 452 KiB After Width: | Height: | Size: 452 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 295 KiB After Width: | Height: | Size: 295 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |