Platform Engineering (Plattformsingenjörskap) är vetenskapen och konsten att skapa robusta, skalbara och flexibla mjukvaruarkitekturer. Det handlar inte bara om att bygga mjukvara; det handlar om att konstruera själva plattformen som låter din mjukvara växa, anpassa sig och frodas. Vill du veta mer om “Vad är plattformsingenjörskap?” i detalj, fortsätt läsa. Eller läs på engelska What is Platform Engineering?
Platform Engineering är ett relativt nytt område, och det är inte klart vem som uppfann det. Dock finns det många som har bidragit till dess utveckling. Några av de tidiga pionjärerna inom plattformsingenjörskap inkluderar:
- Paul Delory, en forsknings-VP vid Gartner, som skrivit utförligt om plattformsingenjörskap.
- Luca Galante, en huvudingengör på Google, som definierat plattformsingenjörskap som “disciplinen att designa och bygga verktygskedjor och arbetsflöden som möjliggör självbetjäningskapaciteter för mjukvaruorgan på den molnnativa eran.“
- Evan Bottcher, en huvudarkitekt på Thoughtworks, som beskrivit plattformar som “en grund av självbetjänings-APIer, verktyg, tjänster, kunskap och support, ordnat som en lockande intern produkt.”
Vad är en Plattform?
Begreppet “Ingenjörskap” har en bred och allestädes närvarande innebörd, men vad är exakt den “Plattform” som kräver ingenjörskap? I kontexten av plattformsingenjörskap hänvisar en “Plattform” vanligtvis till en grundläggande arkitektur eller ramverk som fungerar som en grund där applikationer, tjänster och tekniker byggs och drivs. Det kan vara en kombination av hårdvara och mjukvaruresurser som ger de väsentliga tjänster som används av applikationer för att leverera funktionalitet till slutanvändare. När denna plattform utvecklas, leder det ofta till uppkomsten av en IDP, eller Intern Developer Platform. Denna IDP fungerar som en självbetjäningsportal för mjukvaruutvecklare inom en organisation.
Valet av en plattform inom plattformsingenjörskap (Platform Engineering) baseras på olika faktorer som din organisations specifika behov, krav och budgetbegränsningar. Plattformsingenjörsspecialister samlar vanligtvis en skräddarsydd blandning av plattformar för att maximera robusthet, skalbarhet, flexibilitet och utvecklarupplevelse, allt inom din budget. Denna skräddarsydda uppsättning plattformar blir din organisations plattformsgrund. Vanliga plattformar som ofta används inom detta område inkluderar:
- Infrastrukturplattformar: Dessa plattformar tillhandahåller den underliggande infrastrukturen för applikationer, såsom beräkning, lagring och nätverk. De tillhandahålls vanligtvis av molnleverantörer som Amazon Web Services (AWS), Microsoft Azure och Google Cloud Platform.
- Mjukvaruplattformar: Dessa plattformar tillhandahåller operativsystemet, mellanprogrammet och utvecklingsverktyg som behövs för att bygga och distribuera applikationer. De kan vara antingen öppen källkod eller kommersiella. Exempel på mjukvaruplattformar inkluderar Linux, Windows, Java och .NET.
- Middleware plattformar: Dessa plattformar tillhandahåller tjänster som används för att koppla ihop olika delar av en applikation, såsom meddelanden, dataintegration och säkerhet. De används vanligtvis för att förbättra applikationers prestanda, skalbarhet och pålitlighet. Exempel på Middleware plattformar inkluderar Apache Kafka, RabbitMQ och MuleSoft Anypoint Platform.
- Utvecklingsplattformar: Dessa plattformar tillhandahåller verktyg och tjänster som används för att utveckla och testa applikationer. De inkluderar vanligtvis IDEs, versionkontrollsystem och byggverktyg. Exempel på utvecklingsplattformar inkluderar Eclipse, IntelliJ IDEA och Visual Studio.
- Testplattformar: Dessa plattformar tillhandahåller verktyg och tjänster som används för att testa applikationer. De inkluderar vanligtvis ramverk för enhetstestning, integrationstestning och lasttestning. Exempel på testplattformar inkluderar JUnit, Selenium och Gatling.
- Övervakningsplattformar: Dessa plattformar tillhandahåller verktyg och tjänster för att samla in och analysera data från flera källor för att ge insikter i prestanda och hälsa av en IT-infrastruktur. De kan användas för att övervaka servrar, nätverk, applikationer och andra IT-tillgångar.
- Dataplattformar: Dessa plattformar tillhandahåller verktyg och tjänster för att hantera, lagra och analysera data. De används vanligtvis för att stödja affärsintelligens, maskininlärning och andra datadrivna applikationer. Exempel på dataplattformar inkluderar Hadoop, Spark och Snowflake.
- Säkerhetsplattformar: Dessa plattformar tillhandahåller verktyg och tjänster för att säkra applikationer och data. De används vanligtvis för att skydda mot cyberattacker, databrott och andra säkerhetshot. Exempel på säkerhetsplattformar inkluderar Palo Alto Networks, Check Point Software Technologies och Symantec.
- Infrastruktur som kod (IaC) plattformar: Dessa plattformar tillhandahåller verktyg och tjänster för att hantera infrastruktur med hjälp av kod. De används vanligtvis för att förbättra konsistensen, skalbarheten och pålitligheten av infrastrukturen. Exempel på IaC-plattformar inkluderar Terraform, Ansible och Chef.
- Fortsatt integration/kontinuerlig leverans (CI/CD) plattformar: Dessa plattformar tillhandahåller verktyg och tjänster för att automatisera byggande, testning och distribution av applikationer. De används vanligtvis för att förbättra hastigheten, effektiviteten och pålitligheten i mjukvaruleverans. Exempel på CI/CD-plattformar inkluderar Jenkins, Spinnaker och GitHub.
Plattformsingenjörernas Roll
Plattformsingenjörer (Platform Engineerings) är arkitekterna, designerna och byggarna av dessa plattformar. Deras ansvarsområden sträcker sig bortom bara mjukvaruutveckling eller systemadministration. De tar ofta på sig många roller, och hanterar komplexa uppgifter som involverar flera discipliner, inklusive arkitekturdesign, säkerhetsåtgärder, datamodellering, skalbarhetsproblem och även utvecklarupplevelsen.
- Arkitekturdesign: En av de främsta rollerna är att designa en robust och flexibel arkitektur som kan rymma framtida tillväxt och förändringar. En gedigen arkitektonisk design minimerar teknisk skuld och gör det lättare för andra utvecklare att förstå och arbeta med systemet.
- Infrastrukturhantering: Plattformsingenjörer är ansvariga för att sätta upp, underhålla och optimera infrastrukturen där applikationerna körs. Detta kan inkludera serverkonfigurationer, databashantering och nätverksproblem.
- Automation: Effektivitet och snabbhet är avgörande i dagens snabba teknikvärld. Plattformsingenjörer skriver ofta skript och använder verktyg för att automatisera rutinmässiga uppgifter, vare sig det är serverprovisionering, applikationsdistributioner eller databasbackuper.
- Säkerhet: Detta är en kritisk aspekt som plattformsingenjörer måste hantera. Detta inkluderar att implementera brandväggar, hantera datakryptering och se till att alla komponenter interagerar med varandra på ett säkert sätt.
- Övervakning och Observabilitet: Plattformsingenjörer sätter upp system för att övervaka hälsan och prestandan för applikationer, databaser och infrastruktur. Den insamlade informationen hjälper till med proaktiv felsökning och optimering av systemprestanda.
- utvecklaraktivering: En bra plattform stärker utvecklarna. Den bör vara utformad för att göra det enklare för utvecklare att fokusera på att skriva kod, utan att oroa sig över hur den kommer att distribueras eller skalas.
- Efterlevnad och Styrning: Att säkerställa att plattformen följer olika efterlevnadsnormer och förordningar, särskilt inom sektorer som finans och hälsovård, är ofta en del av en plattformsingenjörs arbetsuppgifter.
Nödvändiga Färdigheter
Platform Engineering är ett tvärvetenskapligt område, och ingenjörerna behöver ofta besitta en bred uppsättning av färdigheter. Dessa kan inkludera:
- Programmeringsfärdigheter: Att behärska ett eller flera programmeringsspråk är ett måste. Språk som JavaScript, TypeScript, Python eller Go är ofta föredragna.
- Molntjänster: Bekantskap med molntjänster som AWS, Azure eller Google Cloud är nödvändigt eftersom de flesta plattformar är molnbaserade idag.
- Containerisering: Kunskap om containeriseringstekniker som Docker och orkestreringsverktyg som Kubernetes är absolut nödvändigt.
- Databashantering: Förståelse för både SQL och NoSQL-databaser är nödvändigt för uppgifter rörande datalagring och manipulation.
- Nätverk: En bra förståelse för nätverkskoncept som DNS, Load Balancing och VPN kan vara ovärderlig.
- DevOps-praktiker: Förståelse för DevOps-principer och verktyg för CI/CD, konfigurationshantering och IaC.
- Mjuka Färdigheter: Goda kommunikationsfärdigheter, problemlösningsförmåga och en benägenhet för kontinuerligt lärande.
Slutsats
Plattformsingenjörskap (Platform Engineering) är ett dynamiskt och utvecklande fält som spelar en avgörande roll i dagens mjukvaruutvecklingslandskap. Det tjänar som ryggraden, vilket gör att mjukvaruapplikationer kan prestera sitt bästa samtidigt som kraven på skalbarhet, säkerhet och robusthet uppfylls. Insatserna är höga, men belöningarna, i form av organisatorisk effektivitet och effektivitet, gör det till en central funktion i varje modern tech-driven organisation.
Tack för att du läste “Vad betyder Platform Engineering (Plattformsingenjörskap)”. För mer insikter om Platform Engineering, håll ögonen på vår svenksa blogg eller kontakta oss på PlatformEngr.com.
Vi är ett företag etablerade i Stockholm och en av pionjärerna inom Platform Engineering i skandinaviska länder. Vårt mål är att sprida kunskapen och hjälpa organisationer, oavsett storlek, att dra nytta av plattformsingenjörskap. Vänligen kontakta oss för att boka en kostnadsfri konsultationssession med en av våra experter, och låt oss tillsammans lyfta din strategi för Platform Engineering.